--检查备库是否实时同步
select process,status from v$managed_Standby;
--检查备库日志应用是否最新(主备对比或创建一测试表)
select thread#,sequence#,applied from v$archived_log;
--主库中执行日志切换
SQL>alter system switch logifle;
--查询主库的状态
SQL> select database_role,switchover_status,open_mode from v$database;
DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE
---------------- -------------------- --------------------
PRIMARY TO STANDBY READ WRITE
--主库Failover过程
--主库shutdown abort方式,人工模拟primary奔溃。
SQL> shutdown abort
--激活备库
--standby库执行
SQL> select * from v$archive_gap;
no rows selected
--停止备库应用
SQL> alter database recover managed standby database cancel;
Database altered.
--检查备库是否已完成应用
SQL> alter database recover managed standby database finish;
Database altered.
--检查备库目前状态
SQL> select open_mode, database_role from v$database;
OPEN_MODE DATABASE_ROLE
-------------------- ----------------
READ ONLY PHYSICAL STANDBY
如果上面操作顺利进行,没有额外错误报出。说明这个过程中没有数据损失情况发生,也就意味着虽然发生了failover,但是不会有数据损失.
--将备库切成主库
SQL> alter database commit to switchover to primary with session shutdown;
Database altered.
--open数据库
SQL> alter database open;
Database altered.
|