天天看点

Oracle Dg 重建,oracle dg备库重建redolog:ora-00313,ora-00312

trace文件:

Errors in file /crbank/dbs/app/product/diag/rdbms/rdbs/dbs/trace/dbs_mrp0_24445130.trc:

ORA-00313: open failed for members of log group 8 of thread 1

ORA-00312: online log 8 thread 1: '/crbank/dbs/data/oradata/dbs/redo08.log'

ORA-27037: unable to obtain file status

IBM AIX RISC System/6000 Error: 2: No such file or directory

从trace文件可以看到备库跟主库路径不一样,备库设置了convert参数,这个参数对以后的文件传输路径有效,但是对于已存在的文件就需要手动修改了,包括数据文件,日志文件,临时文件等。

下面介绍 备库redolog重建步骤:

SQL> alter system set standby_file_management=manual;

System altered.

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter database drop logfile group 8;

alter database drop logfile group 8

*

ERROR at line 1:

ORA-01156: recovery or flashback in progress may need access to files

SQL> select group#,status,bytes/1024/1024 from v$log;

GROUP# STATUS           BYTES/1024/1024

---------- ---------------- ---------------

1 UNUSED                       256

2 UNUSED                       256

3 UNUSED                       256

8 CURRENT                      256

5 UNUSED                       256

6 UNUSED                       256

4 UNUSED                       256

SQL> alter database clear unarchived logfile  '/crbank/dbs/data/oradata/dbs/redolog07.log';

alter database clear unarchived logfile  '/crbank/dbs/data/oradata/dbs/redolog07.log'

*

ERROR at line 1:

ORA-01156: recovery or flashback in progress may need access to files

redolog 8 是当前正在使用的日志 所以不能直接删除,由于是备库 也不能切换日志,所以可以修改日志路径:

SQL> alter database rename file '/crbank/dbs/oradata/dbs/redo12.log' to '/crbank/dbs/data/oradata/dbs/redolog12.log';  --跟换路径

SQL> alter database add logfile group 1 '/crbank/dbs/data/oradata/dbs/redolog01.log' size 256m;  --新增另外一组日志

Database altered.

alter system set standby_file_management=auto;

alter database recover managed standby database using current logfile disconnect;

select process,status,thread#,sequence#,block#,blocks from v$managed_standby where process!='ARCH';