您好,登錄后才能下訂單哦!
switchover
切換:主庫與備庫數據同步正常情況下的切換,主要用于
主備維護、切換演練等;
failover
切換:主庫與備庫在數據未同步情況下的強制切換,主要用
于主庫宕機、故障情況下切換;
一、switchover 切換
主庫與備庫數據同步,且正常運行,將主庫與備庫的角色互換;
切換前,務必檢查當前主庫與備庫的歸檔是否是同步的,確認同步后再執行切換
switchover 切換 主庫操作
第1步、主庫停止監聽
lsnrctl stop
(理論上是不需要停止主庫監聽的,但是實際上如果切換時數據庫繁忙,還有大量會話連接操作數據庫,在執行切換操作的時候需要等待oracle執行session shutdown,有時會很慢,這里建議直接停止監聽,停止后,還可以通過查 ps -ef | grep "LOCAL=NO",查看進行, LOCAL=NO是客戶端連接進程,并kill -9 殺掉這些沒有釋放的連接,再執行下面的切換)
ps -ef | grep "LOCAL=NO" | grep -v grep | awk '{print $2}' | xargs kill -9
第2步、主庫執行切換
主庫狀態角色確認
select switchover_status from v$database;
查詢結果分兩種情況:
第一種情況
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
如果查詢結果是SESSIONS ACTIVE:執行下面的:
SQL>alter database commit to switchover to physical standby w
ith session shutdown;
第二種情況
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO STANDBY
如果查詢結果是:TO STANDBY 執行下面的:
SQL>alter database commit to switchover to physical standby;
第3步、關閉主庫
SQL>shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
第4步、主庫啟動到mount狀態
SQL>startup mount
ORACLE instance started.
Total System Global Area 9646899200 bytes
Fixed Size 2087000 bytes
Variable Size 822085544 bytes
Database Buffers 8808038400 bytes
Redo Buffers 14688256 bytes
Database mounted.
第5步、主庫確定切換后的狀態
SQL>select open_mode,database_role,switchover_status from v$database;
OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
---------- ---------------- -------------------- ------------
------------------------
MOUNTED PHYSICAL STANDBY SESSIONS ACTIVE
數據庫角色變成了PHYSICAL STANDBY(物理備庫),完成了主庫的角色轉換;
第6步、主庫啟動監聽
lsnrctl start
switchover 切換備庫操作
備庫執行切換為主庫模式
第1步、備庫狀態角色確認
SQL>select switchover_status from v$database;
第一種情況
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
如果狀態為TO PRIMARY 則執行下面的語句:
SQL>alter database commit to switchover to primary;
第二種情況
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
---------------------------------
SESSIONS ACTIVE
如果狀態是SESSIONS ACTIVE 則執行下面的語句:
alter database commit to switchover to primary with session shutdown;
第2步、備庫打開
alter database open;
第3步、備庫狀態角色確認
SQL>select open_mode,database_role,switchover_status from v$database;
OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS
---------- ---------------- -------------------- ------------
--------------------------
READ WRITE PRIMARY
SESSIONS ACTIVE
第4步、原主庫啟動同步
在原主庫上執行:
SQL>ALTER DATABASE OPEN;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
switchover 切換完成;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。