
1.在adg环境中,调整redo日志组大小以及standby日志组大小主要思路如下:
a、先备库增加standby redo 删除老standby redo,
b、然后主库增加redo删除老redo,
c、备库增加新redo删除老redo,
d、最后主库增加standby redo。
#主库
oracle@DB196 \~\]$ sql / as sysdba SQL\> SET SQLFORMAT ansiconsole select group#,thread#,sequence#,bytes/1024/1024 mb,members,archived,status from v$log; GROUP# THREAD# SEQUENCE# MB MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ---------------- 15 1 100 100 1 YES INACTIVE 16 1 101 100 1 YES INACTIVE 17 1 102 100 1 NO CURRENT 18 1 98 100 1 YES INACTIVE select group#,thread#,sequence#,bytes/1024/1024 mb,archived,status from V$STANDBY_LOG; GROUP# THREAD# SEQUENCE# MB ARC STATUS ---------- ---------- ---------- ---------- --- ---------- 20 1 0 100 YES UNASSIGNED 21 1 0 100 YES UNASSIGNED 22 1 0 100 YES UNASSIGNED 23 1 0 100 YES UNASSIGNED 24 1 0 100 YES UNASSIGNED select group#,status,type,member from v$logfile; GROUP# STATUS TYPE MEMBER ---------- ------- ------- ------------------------------------------------------------ 20 STANDBY /u01/app/oracle/oradata/PROD/redo20.log 21 STANDBY /u01/app/oracle/oradata/PROD/redo21.log 22 STANDBY /u01/app/oracle/oradata/PROD/redo22.log 23 STANDBY /u01/app/oracle/oradata/PROD/redo23.log 24 STANDBY /u01/app/oracle/oradata/PROD/redo24.log 15 ONLINE /u01/app/oracle/oradata/onlinelogredo05.log 16 ONLINE /u01/app/oracle/oradata/onlinelogredo06.log 17 ONLINE /u01/app/oracle/oradata/onlinelogredo07.log 18 ONLINE /u01/app/oracle/oradata/onlinelogredo08.log #备库 \[oracle@DB197 \~\]$ sql / as sysdba SQL\> SET SQLFORMAT ansiconsole select group#,thread#,sequence#,bytes/1024/1024 mb,members,archived,status from v$log; GROUP# THREAD# SEQUENCE# MB MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ---------------- 15 1 100 100 1 YES CLEARING 16 1 101 100 1 YES CLEARING 17 1 102 100 1 YES CURRENT 18 1 0 100 1 YES UNUSED select group#,thread#,sequence#,bytes/1024/1024 mb,archived,status from V$STANDBY_LOG; GROUP# THREAD# SEQUENCE# MB ARC STATUS ---------- ---------- ---------- ---------- --- ---------- 20 1 102 100 YES ACTIVE 21 1 0 100 YES UNASSIGNED 22 1 0 100 YES UNASSIGNED 23 1 0 100 YES UNASSIGNED 24 1 0 100 YES UNASSIGNED select group#,status,type,member from v$logfile; GROUP# STATUS TYPE MEMBER ---------- ------- ------- ----------------------------------------------------------------- 20 STANDBY /u01/app/oracle/oradata/PROD/redo20.log 21 STANDBY /u01/app/oracle/oradata/PROD/redo21.log 22 STANDBY /u01/app/oracle/oradata/PROD/redo22.log 23 STANDBY /u01/app/oracle/oradata/PROD/redo23.log 24 STANDBY /u01/app/oracle/oradata/PROD/redo24.log 15 ONLINE /u01/app/oracle/oradata/onlinelogredo05.log 16 ONLINE /u01/app/oracle/oradata/onlinelogredo06.log 17 ONLINE /u01/app/oracle/oradata/onlinelogredo07.log 18 ONLINE /u01/app/oracle/oradata/onlinelogredo08.log 2.备库取消同步 alter database recover managed standby database cancel; DGMGRL\> show configuration; Configuration - ADGbroker Protection Mode: MaxAvailability Members: MPCDB196 - Primary database MPCDB197 - Physical standby database Error: ORA-16810: multiple errors or warnings detected for the member Fast-Start Failover: DISABLED Configuration Status: ERROR (status updated 7 seconds ago) 3.备库standby添加 alter database add standby logfile group 10 '/u01/app/oracle/oradata/PROD/stdredo10.log' size 50m reuse; alter database add standby logfile group 11 '/u01/app/oracle/oradata/PROD/stdredo11.log' size 50m reuse; alter database add standby logfile group 12 '/u01/app/oracle/oradata/PROD/stdredo12.log' size 50m reuse; alter database add standby logfile group 13 '/u01/app/oracle/oradata/PROD/stdredo13.log' size 50m reuse; alter database add standby logfile group 14 '/u01/app/oracle/oradata/PROD/stdredo14.log' size 50m reuse; 4.备库standby删除 alter database drop logfile group 20; alter database drop logfile group 21; alter database drop logfile group 22; alter database drop logfile group 23; alter database drop logfile group 24; SQL\> alter database drop logfile group 4; ERROR at line 1: ORA-00261: log 4 of thread 1 is being archived or modified ORA-00312: online log 4 thread 1: '/u01/app/oradata/orcl/stredo02.log' --如在清除standby redo log组时出现上面出错信息执行下面的命令清理 alter database clear logfile group 20; #到操作系统删除组4、5、6、7 \[oracle@DB197 MPCDB\]$ ls stdredo0\* stdredo01.log stdredo02.log stdredo03.log stdredo04.log \[oracle@DB197 MPCDB\]$ rm stdredo0\* 5.主库redo添加 alter database add logfile group 1 '/u01/app/oracle/oradata/PROD/redo01.log' size 50m reuse; alter database add logfile group 2 '/u01/app/oracle/oradata/PROD/redo02.log' size 50m reuse; alter database add logfile group 3 '/u01/app/oracle/oradata/PROD/redo03.log' size 50m reuse; alter database add logfile group 4 '/u01/app/oracle/oradata/PROD/redo04.log' size 50m reuse; 6.主库redo 删除 select group#,thread#,sequence#,bytes/1024/1024 mb,members,archived,status from v$log; alter system switch logfile; alter system switch logfile; alter system switch logfile; alter database drop logfile group 15; alter database drop logfile group 16; alter database drop logfile group 17; alter database drop logfile group 18; 到操作系统删除组1、2、3 \[oracle@DB196 MPCDB\]$ ls redo0\* redo01.log redo02.log redo03.log \[oracle@DB196 MPCDB\]$ rm redo0\* 7.备库redo添加 alter system set standby_file_management='manual'; alter database add logfile group 1 '/u01/app/oracle/oradata/PROD/redo01.log' size 50m reuse; alter database add logfile group 2 '/u01/app/oracle/oradata/PROD/redo02.log' size 50m reuse; alter database add logfile group 3 '/u01/app/oracle/oradata/PROD/redo03.log' size 50m reuse; alter database add logfile group 4 '/u01/app/oracle/oradata/PROD/redo04.log' size 50m reuse; 8.备库redo删除 show parameter NAME_CONVERT NAME TYPE VALUE --------------------- ------ -------------------------------------------------------------- db_file_name_convert string /u01/app/oracle/oradata/MPCDB/, /u01/app/oracle/oradata/MPCDB/ log_file_name_convert string /u01/app/oracle/oradata/MPCDB/, /u01/app/oracle/oradata/MPCDB/ pdb_file_name_convert string #A 如 db_file_name_convert 、log_file_name_convert 为空则如下 SQL\> alter system set log_file_name_convert='/u01/app/oracle/oradata/MPCDB/','/u01/app/oracle/oradata/MPCDB/' scope=spfile; SQL\> alter system set db_file_name_convert='/u01/app/oracle/oradata/MPCDB/','/u01/app/oracle/oradata/MPCDB/' scope=spfile; 备库的 log_file_name_convert 参数要设置,否则无法运行 alter database clear logfile group xxx; 语句 SQL\> shutdown immediate SQL\> startup SQL\> select open_mode,database_role from v$database; OPEN_MODE DATABASE_ROLE -------------------- ---------------- READ ONLY PHYSICAL STANDBY SQL\> select group#,status from v$log; SQL\> show parameter file_name_convert #B 否则如下语句则包错 SQL\> alter database drop logfile group 1; ERROR at line 1: ORA-01624: log 1 needed for crash recovery of instance wasudb (thread 1) ORA-00312: online log 1 thread 1: '/data/oradata/wasudb/redo01.log' SQL\> ALTER DATABASE CLEAR LOGFILE GROUP 1; ERROR at line 1: ORA-19527: physical standby redo log must be renamed ORA-00312: online log 1 thread 1: '/data/oradata/wasudb/redo01.log' alter database clear logfile group 15; alter database clear logfile group 16; alter database clear logfile group 17; alter database clear logfile group 18; alter database drop logfile group 15; alter database drop logfile group 16; alter database drop logfile group 17; alter database drop logfile group 18; select group#,status,type,member from v$logfile; #到操作系统删除组1、2、3 \[oracle@DB197 MPCDB\]$ ls redo0\* redo01.log redo02.log redo03.log \[oracle@DB197 MPCDB\]$ rm redo0\* 9.主库standby 删除 select group#,thread#,sequence#,bytes/1024/1024 mb,archived,status from V$STANDBY_LOG; alter database drop logfile group 20; alter database drop logfile group 21; alter database drop logfile group 22; alter database drop logfile group 23; alter database drop logfile group 24; #到操作系统删除组4、5、6、7 \[oracle@DB196 MPCDB\]$ ls stdredo0\* stdredo01.log stdredo02.log stdredo03.log stdredo04.log \[oracle@DB196 MPCDB\]$ rm stdredo0\* 10.主库standby 添加 alter database add standby logfile group 10 '/u01/app/oracle/oradata/PROD/stdredo10.log' size 50m reuse; alter database add standby logfile group 11 '/u01/app/oracle/oradata/PROD/stdredo11.log' size 50m reuse; alter database add standby logfile group 12 '/u01/app/oracle/oradata/PROD/stdredo12.log' size 50m reuse; alter database add standby logfile group 13 '/u01/app/oracle/oradata/PROD/stdredo13.log' size 50m reuse; alter database add standby logfile group 14 '/u01/app/oracle/oradata/PROD/stdredo14.log' size 50m reuse; select group#,thread#,sequence#,bytes/1024/1024 mb,archived,status from V$STANDBY_LOG; 11.恢复同步和备库文件自动管理(备库执行) alter system set standby_file_management='AUTO'; alter database recover managed standby database using current logfile disconnect; DGMGRL\> show configuration; Configuration - ADGbroker Protection Mode: MaxAvailability Members: MPCDB196 - Primary database MPCDB197 - Physical standby database Fast-Start Failover: DISABLED Configuration Status: SUCCESS (status updated 6 seconds ago) 12.验证同步是否恢复 #主库 select open_mode from v$database; OPEN_MODE READ WRITE select group#,thread#,sequence#,bytes/1024/1024 mb,members,archived,status from v$log; GROUP# THREAD# SEQUENCE# MB MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ---------------- 1 1 108 50 1 YES INACTIVE 2 1 109 50 1 YES INACTIVE 3 1 110 50 1 YES INACTIVE 4 1 111 50 1 NO CURRENT select group#,thread#,sequence#,bytes/1024/1024 mb,archived,status from V$STANDBY_LOG order by 1; GROUP# THREAD# SEQUENCE# MB ARC STATUS ---------- ---------- ---------- ---------- --- ---------- 10 0 0 50 YES UNASSIGNED 11 0 0 50 YES UNASSIGNED 12 0 0 50 YES UNASSIGNED 13 0 0 50 YES UNASSIGNED 14 0 0 50 YES UNASSIGNED select group#,status,type,member from v$logfile order by 1; GROUP# STATUS TYPE MEMBER ---------- ------- ------- ------------------------------------------------------------ 1 ONLINE /u01/app/oracle/oradata/PROD/redo01.log 2 ONLINE /u01/app/oracle/oradata/PROD/redo02.log 3 ONLINE /u01/app/oracle/oradata/PROD/redo03.log 4 ONLINE /u01/app/oracle/oradata/PROD/redo04.log 10 STANDBY /u01/app/oracle/oradata/PROD/stdredo10.log 11 STANDBY /u01/app/oracle/oradata/PROD/stdredo11.log 12 STANDBY /u01/app/oracle/oradata/PROD/stdredo12.log 13 STANDBY /u01/app/oracle/oradata/PROD/stdredo13.log 14 STANDBY /u01/app/oracle/oradata/PROD/stdredo14.log #备库 select open_mode from v$database; OPEN_MODE READ ONLY WITH APPLY select group#,thread#,sequence#,bytes/1024/1024 mb,members,archived,status from v$log order by 1; GROUP# THREAD# SEQUENCE# MB MEMBERS ARC STATUS ---------- ---------- ---------- ---------- ---------- --- ---------------- 1 1 0 50 1 YES UNUSED 2 1 0 50 1 YES UNUSED 3 1 110 50 1 YES CLEARING 4 1 111 50 1 YES CURRENT select group#,thread#,sequence#,bytes/1024/1024 mb,archived,status from V$STANDBY_LOG order by 1; GROUP# THREAD# SEQUENCE# MB ARC STATUS ---------- ---------- ---------- ---------- --- ---------- 10 1 111 50 YES ACTIVE 11 1 0 50 NO UNASSIGNED 12 0 0 50 YES UNASSIGNED 13 0 0 50 YES UNASSIGNED 14 0 0 50 YES UNASSIGNED select group#,status,type,member from v$logfile order by 1; GROUP# STATUS TYPE MEMBER ---------- ------- ------- ----------------------------------------------------------------- 1 ONLINE /u01/app/oracle/oradata/PROD/redo01.log 2 ONLINE /u01/app/oracle/oradata/PROD/redo02.log 3 ONLINE /u01/app/oracle/oradata/PROD/redo03.log 4 ONLINE /u01/app/oracle/oradata/PROD/redo04.log 10 STANDBY /u01/app/oracle/oradata/PROD/stdredo10.log 11 STANDBY /u01/app/oracle/oradata/PROD/stdredo11.log 12 STANDBY /u01/app/oracle/oradata/PROD/stdredo12.log 13 STANDBY /u01/app/oracle/oradata/PROD/stdredo13.log 14 STANDBY /u01/app/oracle/oradata/PROD/stdredo14.log -- 检查备库角色 select database_role,open_mode from v$database; select db_unique_name,open_mode,switchover_status,database_role from v$database; 查看进程 主库主要看 LNS 进程,此进程负责将主数据库的重做日志条目传输到备用数据库。备库主要看 MRP0 进程,此进程负责将接收到的归档日志应用到备用数据库上,以维持与主数据库的同步。MRP进程是ADG中的关键组件,它确保备用数据库的数据与主数据库保持一致。 select process ,status , sequence# from v$managed_standby;