首页 > 数据库 > Oracle > DG架构下扩大备库的在线日志大小
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;
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.
而且自动重建了临时文件
此时备库的在线日志已经改过来了
启动实时应用日志
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
现象:
修改步骤:
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';
........
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/61604/viewspace-2024036/ ,如需转载,请注明出处,否则将追究法律责任。