一、简要介绍
在生产环境中为一个Oracle数据库增加DG节点,以只读的方式打开,采用实时同步的方式同步数据。数据的迁移没有采用在线复制,主要的原因是数据量比较大,而是采用的RMAN恢复,一切进行的很顺利,standby节点与主库也可以进行数据同步,但是在日志中发现这样的信息——RFS[6]: No standby redo logfiles created for thread 1 ,所以我判断在同步的过程并没有使用 standby redo logfile ,经查询在恢复数据之前创建的4个 standby redo logifle都是 unassigned 状态,正常的应该是有一个是 active状态,经过查找资料需要重新创建 standby redo logfile,重新创建后数据同步使用了 standby redo logfile文件,下面是我的操作过程。
二、操作过程
1、首先在 primary 节点停止第3个日志传输位置
- SQL> alter system set log_archive_dest_state_3 = defer scope = memory;
2、停止 standby 节点的数据同步
- SYS@ORCL> alter database recover managed standby database cancel;
- Database altered.
3、检查 standby 节点中最大的日志号是否与 primary节点一致
- select thread#,max(sequence#) from v$archived_log group by thread#;
4、删除 standby 节点中的 4 个 standby redo logifle
- SYS@ORCL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 4;
-
- Database altered.
-
- SYS@ORCL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 5;
-
- Database altered.
-
- SYS@ORCL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 6;
-
- Database altered.
-
- SYS@ORCL> ALTER DATABASE DROP STANDBY LOGFILE GROUP 7;
-
- Database altered.
5、检查数据文件目录中的文件是否删除,如果没有删除则在操作系统中删除。在删除文件时仔细检查文件名,防止出现误删除。
6、 在 standby 节点重新创建 standby redo logfile
- SYS@ORCL> alter database add standby logfile THREAD 1 group 4 ('/data/oracle_data/ORCL/REDO04.LOG') size 50m;
- Database altered.
- SYS@ORCL> alter database add standby logfile THREAD 1 group 5 ('/data/oracle_data/ORCL/REDO05.LOG') size 50m;
- Database altered.
- SYS@ORCL> alter database add standby logfile THREAD 1 group 6 ('/data/oracle_data/ORCL/REDO06.LOG') size 50m;
- Database altered.
- SYS@ORCL> alter database add standby logfile THREAD 1 group 7 ('/data/oracle_data/ORCL/REDO07.LOG') size 50m;
- Database altered.
7、开启 primary 节点的 第 3 个日志传输地址
- SQL> alter system set log_archive_dest_state_3 = enable scope = both;
- System altered.
8、开启 standby 节点数据库同步服务
- SYS@ORCL> alter database recover managed standby database using current logfile disconnect from session;
-
- Database altered.
9、检查 standby redo logifle状态
- SQL> select GROUP#,BYTES/1024/1024/1024 , STATUS, FIRST_TIME,NEXT_TIME from v$standby_log;
如果有 standby redo logfile 的状态是 active 那么表示 standby redo logfile重新创建成功
10、检查DG同步状态
- select process,status,thread#,sequence#,block#,blocks from V$managed_standby order by 1,4;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/2317695/viewspace-2134888/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/2317695/viewspace-2134888/