问题描述:情形是当主库真正出现异常以后,才会执行的操做,那么咱们执行过failover 以后,如何在从新构建DG,这里咱们利用flashback database来重构。模拟前主库要开启闪回区,不然要从新搭建DG了数据库
1.因为主库已经不可访问,下面全部的操做都在备库完成,先取消实时同步session
SQL> alter database recover managed standby database cancel;app
2.强制取消redo接收spa
3.确认一下备库3d
4.切换为物理主库,而后open,确认一下切换成功,由于原先的主库尚未关闭,可能会产生一些链接,因此如今的状态是GAP,至此failover操做完成,原来的备库已经切换为主库,能够给业务提供服务了blog
SQL> alter database commit to switchover to primary with session shutdown;进程
SQL> alter database open;同步
SQL> select switchover_status,database_role,open_mode from v$database;flash
5.failover恢复,在新的主库执行,查询到scn值it
SQL> select to_char(standby_became_primary_scn) from v$database;
6.在以前的主库如今的备库上执行,个人以前是startup状态,调整一下如今备库的状态
SQL> shutdown immediate
SQL> startup mount
7.恢复闪回区scn值
SQL> flashback database to scn 1388059
8.更改状态
SQL> alter database convert to physical standby;
SQL> shutdown immediate
SQL> startup
9.开启实时同步
SQL> alter database recover managed standby database using current logfile disconnect from session;
10.分别查看一下主备库的切换状态,以及数据库角色是否正常
SQL> select switchover_status,database_role,open_mode from v$database;
如今的备库:
如今的主库:已经再也不显示GAP,如今指向备库,到此failover结束
11.相关命令
中止实时同步:SQL> alter database recover managed standby database cancel;
强制停掉redo apply:SQL> alter database recover managed standby database finish force; //危险操做,一旦执行,rfs、mrp进程就会停掉
转换物理备库:SQL> alter database commit to switchover to primary with session shutdown;
查询状态角色:SQL> select switchover_status,database_role,open_mode from v$database;
查询SCN号 :SQL> select to_char(standby_became_primary_scn) from v$database;
闪回到序列号:SQL> flashback database to scn 1388059
切换主库为备库:SQL> alter database convert to physical standby;
开启实时同步:SQL> alter database recover managed standby database using current logfile disconnect from session;