更改数据库的归档模式需要重新启动数据库,在mount模式下修改,以下是一个简要的步骤说明:
n 修改必要的初始化参数
n 以immediate方式关闭数据库
n 启动实例到mount状态
n 更改运行模式并打开数据库
以下简单介绍如何启用和关闭数据库德归档模式
(1)、修改初始化参数。和归档相关的几个主要参数如下:
n Log_archive_start:用于定义是否启动自动归档
n Log_archive_format:用于定义归档文件格式,可以采用缺省值
n Log_archive_dest:用于定义归档路径,需要确保归档路径有足够的可用空间。此处要注意,Oracle 10g以后Log_archive_dest不能和db_recovery_file_dest共同使用,默认使用db_recovery_file_dest作为归档路径。
如果数据库使用的是pfile文件,则可以直接修改,如果用的是spfile文件,则可以通过命令行修改:
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string E:\ORACLE\PRODUCT\10.2.0\DB_1\
DBS\SPFILEACF.ORA
SQL> alter system set log_archive_dest='E:\oracle\product\10.2.0\oradata\archive';
系统已更改
SQL> alter system set log_archive_start=true scope=spfile;
系统已更改。
注意:在Oracle 10g之前,更改数据库为归档模式,还有一个重要的初始化参数需要修改,这个参数就是log_archive_start,用于限制Oracle可否自动归档,如果该参数设置为false,数据库即使在归档模式下也不会自动归档,当日志写满后,Oracle会等待用户进行手工处理,如果所有日志全部写满,那么数据库的所有DML操作将会全部挂起,数据库会经历服务中断。不幸的是这个参数的缺省值是false,这曾经一度导致了大量数据库故障的发生。
从Oracle 10g开始,这个参数失去了作用,即使该参数为false,数据库在归档模式下也会自动归档。
(2)、关闭数据库。以shutdown normal或shutdown immediate方式关闭数据库:
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
(3)、启动数据库到mount状态:
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 1719664640 bytes
Fixed Size 1251896 bytes
Variable Size 310379976 bytes
Database Buffers 1400897536 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
(4)、启用或停止归档模式。如果要启用归档模式,此处使用alter database archivelog命令:
SQL> alter database archivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 25
下一个存档日志序列 27
当前日志序列 27
如果需要停止归档模式,此处使用alter database noarchivelog命令:
SQL> alter database noarchivelog;
数据库已更改。
SQL> alter database open;
数据库已更改。