Handling ORL and SRL (Resize) on Primary and Physical Standby in Dataguard Environment (文档 ID 1532566.1)
Mos给出的方案在实际备库切换在线日志的时候碰到了bug
SQL> alter system switch logfile; <---切换发现报告ora-600错误
ERROR at line 1:
ORA-00600: internal error code, arguments: [2713], [], [], [], [], [], [], [],
[], [], [], []
思路: 决定扩大主库的在线日志,后备份主库控制文件到备库的方式来扩充备库在线日志大小
现象:
当前备库在线日志才50M,需要修改成跟主库一致500M
SQL> select group#,thread#,bytes/1024/1024 MB ,status from v$log;
GROUP# THREAD# MB STATUS
---------- ---------- ---------- ----------------
1 1 50 CLEARING
2 1 50 CLEARING
3 2 50 CLEARING
4 2 50 CLEARING
当前主库
SQL> select group#,thread#,bytes/1024/1024 MB ,status from v$log;
GROUP# THREAD# MB STATUS
---------- ---------- ---------- ----------------
17 1 500 CURRENT
18 2 500 CURRENT
19 1 500 INACTIVE
20 2 500 INACTIVE
当前备库archive log list也是跟主库不一致
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +DATA2 备库:
Oldest online log sequence 11437 10888
Next log sequence to archive 11438 0
Current log sequence 11438 10888
修改步骤:
1>主库关闭日志传送
alter system switch logfile;
alter system set log_archive_dest_state_2=defer;
2>备库停日志应用
alter database recover managed standby database cancel;
3>主库创建新的控制文件
alter database create standby controlfile as '/home/oracle/standby.ctl';
4>备库停库恢复控制文件
SQL> shutdown immediate;
SQL> startup nomount;
RMAN> restore standby controlfile from '/home/oracle/standby.ctl';5>因为备库的文件路径跟主库不一致,需要修改
alter system set standby_file_management=MANUAL;
ALTER DATABASE RENAME FILE '+DATA2/bbtech/datafile/system.291.870459433' TO '+DATA2/bbtech/datafile/system.256.870200689';
........
alter system set standby_file_management=AUTO;
SQL> alter database open;
ERROR at line 1:
ORA-10458: standby database requires recovery
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '+DATA2/bbtech/datafile/system.256.870200689'
需要主库先启动日志应用,因为控制文件是从主库过来的,需要同步最新的主库日志
同步日志,数据文件scn和控制文件scn就自动一致了
alter system set log_archive_dest_state_2=enable;
备库先应用下日志
alter database recover managed standby database disconnect from session;
备库会有删除不存在的在线日志的记录
而后再取消应用,再次打开ok了
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database open;
Database altered.
而且自动重建了临时文件
此时备库的在线日志已经改过来了
7>启动实时应用日志
SQL> alter database recover managed standby database using current logfile disconnect from session;
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +DATA2
Oldest online log sequence 11440
Next log sequence to archive 0
Current log sequence 11441
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY WITH APPLY
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/61604/viewspace-2024036/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/61604/viewspace-2024036/