DG中主庫與備庫角色的交換

skyin_1603發表於2016-10-20
在實際的生成當中,當主庫需要對主庫進行一些修正,或者主庫遇到故障時候,主要呼叫備庫頂替主庫運用到生成當中,
因為一般情況下只能對主庫進行更改等操作(讀寫狀態),備庫是隻讀狀態。所以要運用備庫作為讀寫庫時,需要用
switchover或者failover切換主庫與備庫的狀態。failover切換一般是在主庫故障的時候,使用它把備庫切換成為主庫使用。

--主庫切換成備庫:
--檢視主庫的切換狀態:
SQL>  SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO STANDBY

--做切換動作:
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
Database altered.

--報錯:
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 4673
Session ID: 1 Serial number: 5
是因為關閉了資料庫。

--用SQL> SHUTDOWN ABORT強行關庫在啟動到mount狀態:
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size                  2257840 bytes
Variable Size             679480400 bytes
Database Buffers          150994944 bytes
Redo Buffers                2371584 bytes
Database mounted.
SQL> 

--檢視原主庫PROD目前的狀態:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
RECOVERY NEEDED

--檢視備庫ENMO現在的切換狀態:
SQL>  SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
則將要切換到主庫角色。


--在原來備庫ENMO做切換到主庫的動作:
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
Database altered.
已經切換成功。

--開啟切換後新的主庫:
SQL>  ALTER DATABASE OPEN;
Database altered.
新的主庫已經開啟。

--檢視新主庫的切換狀態:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO STANDBY

--在新的備庫開啟使用用日誌功能:
SQL>  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
Database altered.

--在備庫檢視歸檔日誌使用情況:
SQL> select SEQUENCE#,APPLIED from v$archived_log;
 SEQUENCE# APPLIED
---------- ---------
        67 YES
        68 YES
        69 YES
        70 YES
        71 YES
        72 YES
        73 YES
        74 YES
        75 YES
        76 YES
        77 YES

--檢視新的備庫的切換狀態:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
NOT ALLOWED

--看看新備庫的資料庫狀態:
SQL> select status from v$instance;
STATUS
------------
MOUNTED

--開啟備庫:
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-10456: cannot open standby database; media recovery session may be in
progress
備庫在開啟使用歸檔日誌程式。

--在備庫操作關閉使用日誌程式:
SQL> alter database recover managed standby database cancel;
Database altered.

--再次嘗試開啟備庫:
SQL> alter database open;
Database altered.
備庫已經開啟。

備庫可以在開啟資料數之後,再開啟使用日誌功能,也可以在mount下啟用。
一般情況下是在mount狀態下啟用,在open狀態下啟用日誌,是oracle 11G的個性,生成當中oracle公司是需要收費的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2126842/,如需轉載,請註明出處,否則將追究法律責任。

相關文章