一.原DG主备库需开启flashback database
1.查看是否开启flashback
主:
SQL> select flashback_on from v$database LASHBACK_ON - ----------------- NO
备:
SQL> select flashback_on from v$database; LASHBACK_ON ------------------ NO
没有开启!
2.开启flashback(主,备)
SQL> shutdown immediate SQL> Startup mount SQL> Alter database flashback on SQL> Alter database open
二.Failover DG
原备库成为主库,原主库脱离DG。成为两个单实例。
1.备库的failover
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 709836800 bytes
Fixed Size 2256632 bytes
Variable Size 486539528 bytes
Database Buffers 218103808 bytes
Redo Buffers 2936832 bytes
Database mounted.
SQL> alter system flush redo to 'zds_s';
System altered.
2.failover操作
这里省略了failover的操作步骤。
步骤:
alter system flush redo to alter database recover managed standby database finish force; alter database commit to switchover to primary with session shutdown; alter database open;
[root@dg-s opt]# python zx.py dgfo_st zds TRUE|1
检查源备库:
SQL> select name,log_mode ,open_mode ,database_role ,protection_mode ,switchover_status from v$database; NAME LOG_MODE OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS --------- ------------ -------------------- ---------------- -------------------- -------------------- ZDS ARCHIVELOG READ WRITE PRIMARY MAXIMUM PERFORMANCE FAILED DESTINATION SQL> select open_mode from v$database; OPEN_MODE -------------------- READ WRITE
Failover成功!
2.恢复原主库成备库。
---新主库查看scn
SQL> SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE; TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) ---------------------------------------- 1269588
---旧主库
SQL> shutdown immediate SQL> startup mount; ORACLE instance started. Total System Global Area 709836800 bytes Fixed Size 2256632 bytes Variable Size 486539528 bytes Database Buffers 218103808 bytes Redo Buffers 2936832 bytes Database mounted.
---闪回到上面查出scn
SQL> flashback database to scn 1269588; Flashback complete.
----切换到PHYSICAL STANDBY
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY; Database altered. SQL> SHUTDOWN IMMEDIATE; ORA-01507: database not mounted ORACLE instance shut down. SQL> startup; ORACLE instance started. Total System Global Area 709836800 bytes Fixed Size 2256632 bytes Variable Size 486539528 bytes Database Buffers 218103808 bytes Redo Buffers 2936832 bytes Database mounted. Database opened.
---启动MRP
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT; Database altered. SQL>
查看进程
SQL> select process,status from v$managed_standby; PROCESS STATUS --------- ------------ ARCH CONNECTED ARCH CONNECTED ARCH CONNECTED ARCH CLOSING RFS IDLE RFS IDLE RFS IDLE MRP0 APPLYING_LOG 8 rows selected.
至此,原主库已经恢复成备库
三.检查新加入DG的状态
SQL> select name,log_mode ,open_mode ,database_role ,protection_mode ,switchover_status from v$database; NAME LOG_MODE OPEN_MODE DATABASE_ROLE PROTECTION_MODE SWITCHOVER_STATUS --------- ------------ -------------------- ---------------- -------------------- -------------------- ZDS ARCHIVELOG READ WRITE PRIMARY MAXIMUM PERFORMANCE TO STANDBY SQL> select DEST_NAME,STATUS,PROCESS,ERROR,TRANSMIT_MODE from v$archive_dest WHERE TARGET='STANDBY'; DEST_NAME STATUS PROCESS ERROR TRANSMIT_MOD ------------------------------ --------- ---------- ------------------------------ ------------ LOG_ARCHIVE_DEST_2 VALID LGWR ASYNCHRONOUS
新主库:
SQL> select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 48 SQL> alter system switch logfile; System altered. SQL> select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 49
新备库:
SQL> select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 48 SQL> select max(sequence#) from v$archived_log; MAX(SEQUENCE#) -------------- 49
版权声明:本文为博主原创文章,未经博主允许不得转载。