[Oracle] Data Guard 之 淺析Switchover與Failover
Data Guard主從庫(kù)之間的角色切換分為以下兩種:
1)Switchover
Swithchover通常都是人為的有計(jì)劃的進(jìn)行角色互換,比如升級(jí)等。它通常都是無損的,即不會(huì)有數(shù)據(jù)丟失。其執(zhí)行主要分為兩個(gè)階段:
1.Primary轉(zhuǎn)為Standby
2.Standby(之一)轉(zhuǎn)為Primary
2)Failover
Failover是指由于Primary故障無法短時(shí)間恢復(fù),Standby不得不充當(dāng)Primay的角色,如果處于最高性能模式,這種切換很有可能導(dǎo)致數(shù)據(jù)丟失。
下面分別演示物理Standby的Switchover和Failover(邏輯Standby的切換類似)。
1. 物理Standby執(zhí)行Switchover
1) 確認(rèn)pirmary是否可以切換為standby
PRIMARY>select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO STANDBY
2) 切換primary為standby
PRIMARY>alter database commit to switchover to physical standby;
3) 啟動(dòng)原primary到mount狀態(tài)
此時(shí)原primary就是以standby身份在運(yùn)行了。
4) 確認(rèn)standby是否可以切換為primary
STANDBY>select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
5) 切換standby為primary
STANDBY>alter database commit to switchover to primary;
Database altered.
STANDBY>alter database open;
Database altered.
6) 驗(yàn)證
PRIMARY>select database_role from v$database;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
STANDBY>select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
可以看到原來的primary現(xiàn)在變成standby,原來的standby變成primary了。
檢查新的primary的log_archive_dest參數(shù)的設(shè)置是否正確:
STANDBY>show parameter log_archive_dest_2
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2 string service=O01DMS0 ARCH VALID_FOR
=(ONLINE_LOGFILES,PRIMARY_ROLE
) DB_UNIQUE_NAME=O01DMS0
STANDBY>show parameter log_archive_dest_state_2
NAME TYPE VALUE
------------------------------------ ----------- ---------------------
log_archive_dest_state_2 string ENABLE
在新primary端做log switch:
STANDBY>alter system switch logfile;
System altered.
STANDBY>select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
479
在新standby端查看:
PRIMARY>select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
479
兩邊的歸檔日志的最大序號(hào)吻合,說明switchover成功。
2. 物理Standby執(zhí)行Failover
1). 檢查standby歸檔文件是否連續(xù)
STANDBY>SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
no rows selected
這一步很重要,必須確保所有已生成的歸檔文件都已傳到standby服務(wù)器。
如果上述語(yǔ)句有返回結(jié)果,則必須把缺失的歸檔文件從primary端復(fù)制到standby端,然后通過以下命令將其加入數(shù)據(jù)庫(kù):
STANDBY>alter database register physical logfile 'filespec'
2). 檢查standby歸檔文件是否完整
STANDBY>SELECT UNIQUE THREAD# AS THREAD, MAX(SEQUENCE#) OVER (PARTITION BY threa
d#) AS LAST from V$ARCHIVED_LOG;
THREAD LAST
---------- ----------
1 479
通過上述語(yǔ)句可以查出standby目前序號(hào)最大的歸檔日志為479,如果在primary端有比479更大的歸檔日志,把它們拷貝過來,然后通過以下命令將其加入數(shù)據(jù)庫(kù):
STANDBY>alter database register physical logfile 'filespec'
3)啟動(dòng)failover
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE;4)切換為primaryTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
ALTER DATABASE OPEN;STANDBY>select database_role from v$database;DATABASE_ROLE----------------PRIMARY
相關(guān)文章
在Oracle數(shù)據(jù)庫(kù)中添加外鍵約束的方法詳解
這篇文章主要介紹了在Oracle數(shù)據(jù)庫(kù)中添加外鍵約束的方法,需要的朋友可以參考下2016-01-01如何利用Oracle命令解決函數(shù)運(yùn)行錯(cuò)誤
這篇文章主要給大家介紹了關(guān)于如何利用Oracle命令解決函數(shù)運(yùn)行錯(cuò)誤的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Oracle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Oracle中實(shí)現(xiàn)類似于Mysql中的Field()函數(shù)功能
這篇文章主要詳細(xì)介紹了在Oracle中如何實(shí)現(xiàn)類似于Mysql中的Field()函數(shù)功能,本文主要通過代碼示例介紹了Oracle中的Decode()函數(shù)和Oracle中的row_number,需要的朋友可以參考下2023-06-06淺談入門級(jí)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟
這篇文章主要介紹了淺談入門級(jí)oracle數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)入導(dǎo)出步驟,文章通過步驟解析介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Oracle如何通過執(zhí)行計(jì)劃查看查詢語(yǔ)句是否使用索引
這篇文章主要介紹了Oracle如何通過執(zhí)行計(jì)劃查看查詢語(yǔ)句是否使用索引問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07Oracle Max函數(shù)使用中出現(xiàn)的問題
在Oracle Max函數(shù)使用中,會(huì)出現(xiàn)一些問題,本文將介紹解決方法,需要的朋友可以了解下2012-11-11oracle中l(wèi)ength、lengthb、substr、substrb函數(shù)用法介紹
這篇文章主要介紹了oracle中l(wèi)ength、lengthb、substr、substrb函數(shù)用法的相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以參考下。2017-09-09