ORACLE 12C ADG 之五 (DG fail over)

#切换测试--DG做(fail over)切换测试

# fail over前创建担保还原点

#主库

[oracle@DB196 ~]$ sqlplus / as sysdba

SQL> select flashback_on from v$database;

            NO

SQL> CREATE RESTORE POINT guar_restore1 GUARANTEE FLASHBACK DATABASE;

SQL> select flashback_on from v$database;

            RESTORE POINT ONLY

SQL> exit

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

#备库

[oracle@DB197 ~]$ sqlplus / as sysdba

SQL> select open_mode from v$database;

            READ ONLY WITH APPLY



#开始(fail over)切换测试

#主库 我们通过shutdown abort方式人工模拟primary奔溃,直接关闭:

[oracle@DB196 ~]$ sqlplus / as sysdba

SQL> select open_mode from v$database;

            READ WRITE

SQL> shutdown abort

#在primary端执行如下操作(前提是能夠mount)oracle 11g中有一个新特性叫flush redo,就是说如果主库挂了,只要能mount,就可以将没传到备库的online redo log信息刷到备库去,这样就不会有数据丢失。

SQL> startup mount;

SQL> alter system flush redo to 'MPCDB197';  --这里记住名字得加上引号,并且这个名字是tnsname中的备库连接名(即備庫的db_unique_name)。

#在主库查看备库是否有gap

SQL> select thread#, low_sequence#, high_sequence# from v$archive_gap;

            no rows selected

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

#备库

#如果没有发现明显的gap现象,说明此次的failover不会有数据损失情况。在standby端,要进行关闭apply和结束应用动作。

#若存在gap,copy之后,注册 sql>alter database register physical logfile ‘/oradata/dg/1_38_925143214.dbf’

#取消和停止应用,通过下列语句暂停redo 应用

[oracle@DB197 ~]$ sqlplus / as sysdba

SQL> alter database recover managed standby database cancel;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;

#如果主库和备库之间的网络中断了,那么备库的RFS进程就会等待网络的连接,直到TCP超时。此时需要加上force关键字 sql>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH force;

SQL> select open_mode, switchover_status from v$database;

            READ ONLY     TO PRIMARY

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;   

 or  alter database activate physical standby database;

SQL> select open_mode, switchover_status from v$database;

            MOUNTED     NOT ALLOWED

#重启数据库

SQL> shutdown immediate;

            ORA-01109: database not open

SQL> startup

SQL> select open_mode, switchover_status from v$database;

            READ WRITE     FAILED DESTINATION

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

# 原主机(奔溃库)

#Failover后的还原  使用闪回还原主库:

[oracle@DB196 ~]$ sqlplus / as sysdba

SQL> shutdown immediate;

            ORA-01109: database not open

SQL> startup mount;

SQL> select flashback_on from v$database;

            RESTORE POINT ONLY

SQL> FLASHBACK database TO RESTORE POINT guar_restore1;

SQL> drop RESTORE POINT guar_restore1;

SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

SQL> SHUTDOWN IMMEDIATE;

            ORA-01109: database not open

SQL> startup

SQL> alter database recover managed standby database using current logfile disconnect from session;

SQL> select flashback_on from v$database;

            NO

#新主機(原備機)

[oracle@DB197 ~]$ sqlplus / as sysdba

SQL> select open_mode, switchover_status from v$database;

            READ WRITE            TO STANDBY

#至此完成(fail over)切换测试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容