Oracle adg环境下调整redo日志组以及standby日志组大小

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;

相关推荐
ClouGence9 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
ClouGence15 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
曹牧16 天前
Oracle EXPLAIN PLAN
数据库·oracle
贤时间16 天前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心16 天前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle
Curvatureflight16 天前
MySQL 深分页越来越慢?从 LIMIT OFFSET 改成游标分页
数据库·oracle
XZ-07000116 天前
MySQL事务
数据库·mysql·oracle
tiancaijiben16 天前
阿里云函数计算FC如何实现网站的定时任务与自动化
数据库·oracle·dba
xfhuangfu16 天前
Oracle 19c 多租户体系架构介绍
数据库·oracle·架构
杨云龙UP17 天前
Spotlight 接入 Oracle 数据库监控操作指南 2026-06-16
数据库·oracle·性能监控·预警·阈值·spotlight·瓶颈分析