环境:

Oracle 11.2.0.4.0 RAC+DG
其中DG主库和备库均为两节点RAC

调整:

调整redo/standby log file大小,由1G调大2G。

操作如下:

一、主库CJC数据库(节点1)

1、检查ASM磁盘组空间是否足够

调整redo/standby log file 
su - grid
sqlplus / as sysasm
select name,free_mb,total_mb from v$asm_diskgroup;
su – oracle
sqlplus / as sysdba

2、先为两个实例分别新增两组(每组两个)redolog文件

alter database add logfile thread 1 group 35 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 36 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 1 group 37 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 38 ('+CJC_DATA','+CJC_ARCH') size 2g;

3、查询当前redo所在组,手动切换日志到新增redolog文件上

select * from v$log;
在两个节点执行,直至到达新增log上
alter system switch logfile;
手动生成检查点:
alter system checkpoint;

4、查询log信息,删除非活动日志

select thread#,group#,members,bytes/1024/1024 mb,status from v$log order by thread#,2;
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
alter database drop logfile group 4;
alter database drop logfile group 5;
alter database drop logfile group 6;
alter database drop logfile group 7;
alter database drop logfile group 8;
alter database drop logfile group 9;
alter database drop logfile group 10;
alter database drop logfile group 11;
alter database drop logfile group 12;
alter database drop logfile group 13;
alter database drop logfile group 14;
alter database drop logfile group 15;
alter database drop logfile group 16;

5、删除asm磁盘组上旧的log group

说明:
如果在创建redo log file时,没有指定具体redo log 名称,即通过OMF管理指定生成redo log名称,在执行drop logfile时,ASM磁盘组内的redo log也会自动删除。
如果在创建redo log file时,指定了具体redo log 名称,例如redo01.log,redo02.log等,在执行drop logfile时,ASM磁盘组内的redo log不会自动删除,如果空间不足,可以考虑手动删除。
su - grid
asmcmd
cd +BJ_SY_BFESB_DATA
rm group_1到group_16
确保删除的log不在select * from v$logifle里。

6、重新添加redo,每个实例添加8组日志

alter database add logfile thread 1 group 1 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 2 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 1 group 3 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 4 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 1 group 5 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 6 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 1 group 7 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 8 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 1 group 9 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 10 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 1 group 11 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 12 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 1 group 13 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 14 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 1 group 15 ('+CJC_DATA','+CJC_ARCH') size 2g;
alter database add logfile thread 2 group 16 ('+CJC_DATA','+CJC_ARCH') size 2g;

7、删除临时添加的group 35,36,37,38

select * from v$logfile;
alter database drop logfile group 35;
alter database drop logfile group 36;
alter database drop logfile group 37;
alter database drop logfile group 38;
删除asm磁盘组上旧的log group
su - grid
asmcmd
cd +CJC_DATA
rm group_35到group_38
确保删除的log不在select * from v$logifle里。

8、查询standbylog信息,并删除非活动的

select * from v$standby_log;
alter database drop standby logfile group 17;
alter database drop standby logfile group 18;
alter database drop standby logfile group 19;
alter database drop standby logfile group 20;
alter database drop standby logfile group 21;
alter database drop standby logfile group 22;
alter database drop standby logfile group 23;
alter database drop standby logfile group 24;
alter database drop standby logfile group 25;
alter database drop standby logfile group 26;
alter database drop standby logfile group 27;
alter database drop standby logfile group 28;
alter database drop standby logfile group 29;
alter database drop standby logfile group 30;
alter database drop standby logfile group 31;
alter database drop standby logfile group 32;
alter database drop standby logfile group 33;
alter database drop standby logfile group 34;

9、删除asm磁盘组上旧的standby log group

su - grid
asmcmd
cd +CJC_DATA
rm standby_17到standby_34
确保删除的log不在select * from v$standby_log里。

10、添加standby log,每个实例9组

alter database add standby logfile thread 1 group 17 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 18 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 1 group 19 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 20 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 1 group 21 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 22 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 1 group 23 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 24 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 1 group 25 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 26 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 1 group 27 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 28 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 1 group 29 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 30 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 1 group 31 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 32 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 1 group 33 ('+CJC_DATA') size 2g;
alter database add standby logfile thread 2 group 34 ('+CJC_DATA') size 2g;

11、再次查询v$log日志信息

set line 200 pagesize 999
col member for a60
col dbid for a20
select * from v$log;

二、备库CJC数据库

1、调整standby_file_management

sqlplus / as sysdba
---将standby_file_management由auto调整为mamual
show parameter standby_file_management
alter system set standby_file_management=MANUAL scope=both;
show parameter standby_file_management

2、断开备库备库日志应用

select process,status,thread#,sequence#,block#,blocks from v$managed_standby;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
select process,status,thread#,sequence#,block#,blocks from v$managed_standby;

3、查询当前redo所在组,手动切换日志到新增redolog文件上

select * from v$log;

4、通过查询v$log,删除非活动日志

Current状态日志组无法删除,需要先跳过。
如果redo log file状态是active,尝试手动生成检查点。
set line 300
set pagesize 100
col member for a65
select * from v$log;
select * from v$logfile;
select thread#,group#,members,bytes/1024/1024 mb,status from v$log order by thread#,2;
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
alter database drop logfile group 4;
alter database drop logfile group 5;
alter database drop logfile group 6;
alter database drop logfile group 7;
alter database drop logfile group 8;
alter database drop logfile group 9;
alter database drop logfile group 10;
alter database drop logfile group 11;
alter database drop logfile group 12;
alter database drop logfile group 13;
alter database drop logfile group 14;
alter database drop logfile group 15;
alter database drop logfile group 16;

如果删除失败,可以先执行clear,在执行drop。

alter database clear logfile group 1;
alter database clear logfile group 2;
alter database clear logfile group 3;
alter database clear logfile group 4;
alter database clear logfile group 5;
alter database clear logfile group 6;
alter database clear logfile group 7;
alter database clear logfile group 8;
alter database clear logfile group 9;
alter database clear logfile group 10;
alter database clear logfile group 11;
alter database clear logfile group 12;
alter database clear logfile group 13;
alter database clear logfile group 14;
alter database clear logfile group 15;
alter database clear logfile group 16;
如果执行clear后仍不能drop,可以尝试调整LOG_FILE_NAME_CONVERT参数。

5、删除asm磁盘组上旧的log group

su - grid
asmcmd
cd +CCC_DATA
rm group_1到group_16
确保删除的log不在select * from v$logifle里。

6、重新添加redo,每个实例添加8组日志,每组日志包括两个日志文件

alter database add logfile thread 1 group 1 ('+CCC_DATA') size 2g;
alter database add logfile thread 2 group 2 ('+CCC_DATA') size 2g;
alter database add logfile thread 1 group 3 ('+CCC_DATA') size 2g;
alter database add logfile thread 2 group 4 ('+CCC_DATA') size 2g;
alter database add logfile thread 1 group 5 ('+CCC_DATA') size 2g;
alter database add logfile thread 2 group 6 ('+CCC_DATA') size 2g;
alter database add logfile thread 1 group 7 ('+CCC_DATA') size 2g;
alter database add logfile thread 2 group 8 ('+CCC_DATA') size 2g;
alter database add logfile thread 1 group 9 ('+CCC_DATA') size 2g;
alter database add logfile thread 2 group 10 ('+CCC_DATA') size 2g;
alter database add logfile thread 1 group 11 ('+CCC_DATA') size 2g;
alter database add logfile thread 2 group 12 ('+CCC_DATA') size 2g;
alter database add logfile thread 1 group 13 ('+CCC_DATA') size 2g;
alter database add logfile thread 2 group 14 ('+CCC_DATA') size 2g;
alter database add logfile thread 1 group 15 ('+CCC_DATA') size 2g;
alter database add logfile thread 2 group 16 ('+CCC_DATA') size 2g;

7、查询standbylog信息,并删除非活动的standby logfile

select * from v$standby_log;
alter database drop standby logfile group 17;
alter database drop standby logfile group 18;
alter database drop standby logfile group 19;
alter database drop standby logfile group 20;
alter database drop standby logfile group 21;
alter database drop standby logfile group 22;
alter database drop standby logfile group 23;
alter database drop standby logfile group 24;
alter database drop standby logfile group 25;
alter database drop standby logfile group 26;
alter database drop standby logfile group 27;
alter database drop standby logfile group 28;
alter database drop standby logfile group 29;
alter database drop standby logfile group 30;
alter database drop standby logfile group 31;
alter database drop standby logfile group 32;
alter database drop standby logfile group 33;
alter database drop standby logfile group 34;
如果有ACTIVE状态standby log无法删除,在主库主库切换一组日志后再行删除备库standby log。
如果仍然无法切换为非ACTIVE状态,需要再启停一次MRP进程,然后确认ACTIVE状态standby log转为UNASSIGNED 状态后,再行删除。
select process,status,thread#,sequence#,block#,blocks from v$managed_standby;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE  DISCONNECT FROM SESSION;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE  CANCEL;
select process,status,thread#,sequence#,block#,blocks from v$managed_standby;
select * from v$standby_log;

8、删除asm磁盘组上旧的standby log group

su - grid
asmcmd
cd +CCC_DATA
rm standby_17到group_34
确保删除的log不在select * from v$standby_log里。

9.重新添加standby log

alter database add standby logfile thread 1 group 17 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 18 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 1 group 19 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 20 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 1 group 21 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 22 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 1 group 23 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 24 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 1 group 25 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 26 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 1 group 27 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 28 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 1 group 29 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 30 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 1 group 31 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 32 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 1 group 33 ('+CCC_DATA') size 2g; 
alter database add standby logfile thread 2 group 34 ('+CCC_DATA') size 2g; 
每个实例9组standby日志

10、数据库需调整参数

show parameter standby_file_management
alter system set standby_file_management=AUTO scope=both;
show parameter standby_file_management
#启用备库日志非实时 应用
select process,status,thread#,sequence#,block#,blocks from v$managed_standby;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE  DISCONNECT FROM SESSION;
select process,status,thread#,sequence#,block#,blocks from v$managed_standby;

转载自chenoracle

最后修改:2022 年 03 月 01 日
如果觉得我的文章对你有用,请随意赞赏