日期:2014-05-16 浏览次数:20390 次
前段时间一朋友在生产库上误操作,本来他是打算重启一下DG环境,结果在备库命令执行错误。
本应该执行
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
结果朋友执行成了如下命令:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
中断了DG主备库的通信环境,这个finish是用来做Failover时用的。 当时让朋友在主库重新生成了一份standby controlfiles,然后copy到备库,在按正常模式启动就可以了。
因为数据库识别主备库就是通过控制文件来的,所以理论上,只需要重新生成一份standby 控制文件就可以了。 后来朋友测试了一下,正常的拉起来了。
今天看到了当时的记录,就顺便模拟一下整个操作,顺便练练手。
OS: Oracle Linux6.3
DB: 11.2.0.3
SQL> select * from v$version;
BANNER
--------------------------------------------
Oracle Database 11g Enterprise EditionRelease 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 -Production
NLSRTL Version 11.2.0.3.0 - Production
主库:
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
SQL>
SQL> set pagesize 200
SQL> select sequence#,applied fromv$archived_log order by sequence# desc;
SEQUENCE# APPLIED
---------- ---------
14 YES
14 NO
13 YES
13 NO
12 NO
12 YES
11 YES
11 NO
10 NO
10 YES
9 YES
9 NO
8 NO
8 YES
7 YES
7 NO
6 YES
6 NO
5 NO
4 NO
20 rows selected.
备库:
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED
SQL>
SQL> select sequence#,applied fromv$archived_log order by sequence# desc;
SEQUENCE# APPLIED
---------- ---------
14 YES
13 YES
12 YES
11 YES
10 YES
9 YES
8 YES
7 YES
6 YES
9 rows selected.
在备库执行如下命令:
SQL&g