先手动建立归档目录,在调整Oracle启动方式将oracle设为归档模式
手工在主服务器创建归档目录
$cd $ORACLE_BASE #$ORACLE_BASE 所指向的目录是/opt/oracle/,可参看ORACLE用户环境变量的具体设置
$mkdir -p oradata/szdb/archive # szdb的目录名称根据数据库的SID号进行指定,其实这个目录可以任意指定
$mkdir -p oradata/szdb/standbyarchive #假如主服务器有可能作为备用服务器,则建立该目录
[oracle@cqcncdb szdb]$ sqlplus /nolog
SQL> conn / as sysdba;
Connected.
SQL> startup mount;
SQL> alter database archivelog;
SQL> archive log start;
SQL> archive log list;
SQL> alter database open;
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/oracle/oradata/szdb/archive'; # /oracle/oradata/szdb/archive必须和前面mkdir -p oradata/szdb/archive操作建立的路径一模一样
SQL> alter system set log_archive_format='%t_%s.dbf' scope=spfile;
SQL> alter system set log_archive_start=true scope=spfile;
重新启动数据库,使修改结果生效
SQL> shutdown immediate;
察看归档模式
SQL> startup
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /oracle/oradata/szdb/archive
Oldest online log sequence 565
Next log sequence to archive 567
Current log sequence 567
以上alter system set操作会在数据库的spfile@sid.ora和init@sid.ora文件中新增以下参数
*.log_archive_dest_1='LOCATION=/oracle/oradata/szdb/archive'
*.log_archive_format='%t_%s.dbf'
*.log_archive_start=TRUE
注重:*.log_archive_dest_1定义的文件夹必须是实际存在的,并且oracle用户是有写权限的
注:@sid代表数据库的实际sid号,比如在这次实际操作中这两个文件名就是spfileszdb.ora、 initszdb.ora