由于操作系统的原因,把dataguard的主库进行重启。第二天发现归档日志不能自动传到备份库。
检查主库的归档参数设置,发现log_archive_dest_state_2竟然为DEFER
之前这个dataguard一直好好的,且在日志中没有发现有修改这个参数的记录。
SQL> SELECT NAME ,VALUE FROM v$parameter WHERE name='log_archive_dest_state_2';
NAME VALUE
------------------------- ----------
log_archive_dest_state_2 DEFER
先把log_archive_dest_state_2该为ENABLE
SQL> ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=BOTH;
SQL> SELECT NAME ,VALUE FROM v$parameter WHERE name='log_archive_dest_state_2';
NAME VALUE
------------------------- ----------
log_archive_dest_state_2 ENABLE
由于主库归档已经被删除,只能从备份中恢复归档,然后在dataguard上进行应用。
归档恢复后,利用scp将归档拷贝到dataguard的主机。
$scp 1_181*_770961807.dbf oracle@192.168.1.91:/opt/ora11g/arch01/
在dataguard上手工注册归档日志文件
SQL> alter database register physical logfile'/opt/ora11g/arch01/1_18147_770961807.dbf';
主库上手工切换归档,发现设置log_archive_dest_state_2为ENABLE后,归档已经能自动
传输到dataguard上,并且自动应用。
SQL> alter system switch logfile;