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;

相关推荐
BullSmall15 小时前
PostgreSQL 14 pg_dumpall 完整备份指南
数据库·postgresql·oracle
宇宙第一小趴菜20 小时前
三、Oracle 核心原理
数据库·oracle
龙仔72520 小时前
SQL Server OS_Core 数据库全自动备份【完整笔记·可直接复用】
数据库·笔记·oracle
Cloud云卷云舒2 天前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
段一凡-华北理工大学2 天前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh2 天前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
会编程的土豆2 天前
数据库范式
数据库·oracle
—Miss. Z—2 天前
计算机二级MySQL——简单应用题(存储过程&存储函数)
数据库·oracle·php
NineData2 天前
Oracle 卡住时先看阻塞源,ChatDBA 会先把锁链路理出来
数据库·oracle·ninedata·锁故障·锁等待·chatdba·锁阻塞
踏月的造梦星球3 天前
达梦数据库执行计划与性能分析入门:EXPLAIN、AUTOTRACE 与 ET
服务器·数据库·oracle