测试环境:RDBMS 11.2.0.4
步骤:
1 停掉备库的MRP
2 在备库上添加standby logfile,大小100M (standby_file_management='manual';注意下这个参数)
3 在备库上删除standby logfile,删除掉50M的
4 在主库添加redo,大小为100M
5 在主库删除redo ,大小为50M
6 备库添加redo,大小为100M
7 备库删除redo ,大小为50M
8 主库添加standby ,大小为100M
9 主库删除standby,大小为50M
详细的步骤 。
1 备库上停止掉MRP ,主库上设置日志传输defer(其实这个可以不设置defer)
alter database recover managed standby database cancel;
alter system set log_archive_dest_state_2=defer; -- 不设置,因为后面drop standby log的时候,要在主库切日志
2 备库上有4组standby redo,group#,4-7 ,新添加standby redo 8-11, 大小100M
alter database add standby logfile group 8 '/u01/app/oracle/oradata/testogg_stdby/stdby_redo08.log' size 100M;
alter database add standby logfile group 9 '/u01/app/oracle/oradata/testogg_stdby/stdby_redo09.log' size 100M;
alter database add standby logfile group 10 '/u01/app/oracle/oradata/testogg_stdby/stdby_redo10.log' size 100M;
alter database add standby logfile group 11 '/u01/app/oracle/oradata/testogg_stdby/stdby_redo11.log' size 100M;
3 备库上删除50M的standby redo ,删除group# 4-7
alter database drop logfile group 4;
alter database drop logfile group 5;
alter database drop logfile group 6;
alter database drop logfile group 7; -- alter database drop standby logfile group 7; 也可以
如果出现下面的错误,则需要在主库上切换几次日志。
ERROR at line 1:
ORA-00261: log 5 of thread 1 is being archived or modified
ORA-00312: online log 5 thread 1:
'/u01/app/oracle/oradata/testogg_stdby/stdby_redo02.log' -- 在主库多次执行switch logfile 后,可以删除
4 在主库上添加redo ,大小100M ,原来有1-3 三组日志,添加4-6三组日志
alter database add logfile group 4 '/u01/app/oracle/oradata/testogg/redo04.log' size 100M ;
alter database add logfile group 5 '/u01/app/oracle/oradata/testogg/redo05.log' size 100M ;
alter database add logfile group 6 '/u01/app/oracle/oradata/testogg/redo06.log' size 100M ;
5 在主库删除日志1-3
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
6 在备库添加redo log ,备库原来的redo log 是1-3 三组,添加的组是4-6
alter database add logfile group 4 '/u01/app/oracle/oradata/testogg_stdby/redo04.log' size 100M;
alter database add logfile group 5 '/u01/app/oracle/oradata/testogg_stdby/redo05.log' size 100M;
alter database add logfile group 6 '/u01/app/oracle/oradata/testogg_stdby/redo06.log' size 100M;
7 在备库删除redo log,删除1-3 组
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
出现告警,一个原因是file_name_convert之类的参数设置有问题,我这里设置是没有问题的
SYS@testogg_stdby>alter database drop logfile group 2; -- 这个和参数name convert 没关系。我已经设置了
alter database drop logfile group 2
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance testogg_stdby (thread 1)
ORA-00312: online log 2 thread 1:
'/u01/app/oracle/oradata/testogg_stdby/redo02.log'
SYS@testogg_stdby>
清理日志后,再删除
alter database clear logfile group 1;
alter database clear logfile group 2;
alter database clear logfile group 3;
8 主库添加standby ,大小100M ,原来主库的没有设置standby log ,这里从7-10 开始 (和备库一直吧 8-11)
alter database add standby logfile group 8 '/u01/app/oracle/oradata/testogg/stdby_redo08.log' size 100M;
alter database add standby logfile group 9 '/u01/app/oracle/oradata/testogg/stdby_redo09.log' size 100M;
alter database add standby logfile group 10 '/u01/app/oracle/oradata/testogg/stdby_redo10.log' size 100M;
alter database add standby logfile group 11 '/u01/app/oracle/oradata/testogg/stdby_redo11.log' size 100M;
9 主库删除standby log ,原来就没有的,这里就不删除了 。
到这里就修改完毕了。后续修改下standby_file_management即可。
END