国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

物理備庫(kù)failover切換的3種方法

IT那活兒 / 1054人閱讀
物理備庫(kù)failover切換的3種方法

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!


  

從oracle 12.1開始引入了新的SQL語(yǔ)法,用于物理備庫(kù)的failover切換。

在使用過(guò)程嚴(yán)禁混合使用新舊兩種用法。除非在切換過(guò)程中有明確的提示。

本文將介紹分別使用新舊SQL語(yǔ)法執(zhí)行failover切換的兩種操作步驟以及使用data guard broker的切換方法。


failover前準(zhǔn)備工作

1. 檢查主備庫(kù)dataguard參數(shù)是否正常,如果主庫(kù)還可用。
LOG_ARCHIVE_DEST_1

LOG_ARCHIVE_DEST_2

LOG_ARCHIVE_CONFIG

FAL_SERVER

STANDBY_FILE_MANAGEMENT

db_file_name_convert

log_file_name_convert

enabled_PDBs_on_standby

SQL>
select group#,thread#,bytes/1024/1024 MM from v$log;

SQL>
select member from v$logfile;

SQL>
select group#,thread#,bytes/1024/1024 MM,status from v$standby_log;
2. 檢查主備庫(kù)同步是否正常,如果主庫(kù)還可用。
select inst_id,dbid,name,db_unique_name,open_mode,PROTECTION_MODE,database_role,failover_STATUS,DATAGUARD_BROKER from gv$database;
select * from v$dataguard_stats;
SELECT PROCESS, STATUS, THREAD#, SEQUENCE#,BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;
SELECT STATUS, GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 2;
3. 檢查主備庫(kù)alert日志是否有異常輸出。
4. 檢查主備庫(kù)的監(jiān)聽狀態(tài)、listener.ora、tnsnames.ora文件。
5. 執(zhí)行切換前,備庫(kù)最好是處于mounted狀態(tài),提高切換速度。
6. 確認(rèn)主備庫(kù)的補(bǔ)丁一致,以免切換到備庫(kù)以后,遇到不可遇知的BUG。
7. 與業(yè)務(wù)側(cè)溝通好操作時(shí)間。

8. 確認(rèn)備庫(kù)的硬件(CPU、內(nèi)存、IO)性能能夠支撐切換后的應(yīng)用連接。

使用舊語(yǔ)法執(zhí)行failover到Physical Standby Database

1. 如果主庫(kù)可以mounted,則將主庫(kù)中所有未到備庫(kù)的歸檔日志和redo刷新到備庫(kù)。
SQL> ALTER SYSTEM FLUSH REDO TO target_db_name;
確保在目標(biāo)備庫(kù)上啟用了redo apply。
  • 如果主庫(kù)不能mounted,則轉(zhuǎn)到步驟2。
  • 如果此步驟沒(méi)報(bào)錯(cuò),請(qǐng)轉(zhuǎn)至步驟5。
  • 如果時(shí)間緊急,不能等待完成,請(qǐng)繼續(xù)步驟2。

2. 查詢備庫(kù)上的v$archivd_log視圖,以獲取redo的最大sequence號(hào)。

SQL>SELECT UNIQUE THREAD# AS THREAD, MAX(SEQUENCE#) OVER (PARTITION BY thread#) AS LAST from V$ARCHIVED_LOG;
然后把主庫(kù)的最新歸檔日志傳輸?shù)絺鋷?kù),然后注冊(cè)該文件。
SQL>ALTER DATABASE REGISTER PHYSICAL LOGFILE filespec1;
3. 然后備庫(kù)上的v$archived_GAP視圖,在確定備庫(kù)上是否存在gap。
SQL>SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
  • 如果有g(shù)ap,請(qǐng)將gap的歸檔日志從主庫(kù)傳輸?shù)絺鋷?kù),然后在備庫(kù)中注冊(cè)文件。

SQL>ALTER DATABASE REGISTER PHYSICAL LOGFILE filespec1;
4. 重復(fù)執(zhí)行第2、3步驟,直至沒(méi)有g(shù)ap,如果此問(wèn)題不能解決,則在failover期間可能會(huì)丟失一些數(shù)據(jù)。
5. 在目標(biāo)備庫(kù)上執(zhí)行以下SQL語(yǔ)句,取消redo apply。
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
6. 在目標(biāo)備庫(kù)執(zhí)行如下SQL語(yǔ)句應(yīng)用完成所有接收到的歸檔日志。
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
  • 如果此步驟完成并且沒(méi)有任何錯(cuò)誤,請(qǐng)繼續(xù)執(zhí)行步驟7。
  • 如果發(fā)生錯(cuò)誤,如某些歸檔日志未應(yīng)用。請(qǐng)嘗試解決錯(cuò)誤并重新執(zhí)行該步驟語(yǔ)句。然后再繼續(xù)執(zhí)行一步。
  • 如果存在步驟2、步驟3和步驟4中未解決的gap。則會(huì)報(bào)錯(cuò)。
  • 如果無(wú)法解決錯(cuò)誤。則仍可以通過(guò)在目標(biāo)備庫(kù)上執(zhí)行以下SQL語(yǔ)句來(lái)執(zhí)行故障轉(zhuǎn)移(會(huì)丟失一些數(shù)據(jù)):
SQL> ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;
7. 確認(rèn)目標(biāo)備庫(kù)已經(jīng)準(zhǔn)備好切換成主庫(kù)。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
-----------------
TO PRIMARY
1 row selected
TO PRIMARY SESSIONS ACTIVE 的值均表示目標(biāo)備庫(kù)已準(zhǔn)備好切換到主庫(kù)。如果返回結(jié)果不是這兩個(gè)值,請(qǐng)確認(rèn)redo apply是否已經(jīng)取消。
8. 在目標(biāo)備庫(kù)上執(zhí)行以下SQL語(yǔ)句將物理備庫(kù)切換成主庫(kù)。
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
  • 如果步驟7中返回結(jié)果是"TO PRIMARY",則SQL語(yǔ)句中可以不寫“WITH SESSION SHUTDOWN”;
  • 如果命令執(zhí)行不成功,請(qǐng)轉(zhuǎn)到步驟9。

9. open新主庫(kù):

SQL> ALTER DATABASE OPEN;
10. 建議立即對(duì)新主庫(kù)執(zhí)行完整備份。
11. 如果redo apply在dataguard配置中的其它物理備庫(kù)上停止,請(qǐng)重新啟動(dòng)它。
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

12. FAILOVER后,有3種方法將原主庫(kù)轉(zhuǎn)換為備庫(kù):

A、FLASHBACK DATABSE
B、RMAN備份
C、重新搭建備庫(kù)

原主庫(kù)轉(zhuǎn)換為備庫(kù)后,可以執(zhí)行switchover將其恢復(fù)成主庫(kù)。

使用新語(yǔ)法執(zhí)行failover到Physical Standby Database

1. 如果主庫(kù)可以mounted,則將主庫(kù)中所有未到備庫(kù)的歸檔日志和redo刷新到備庫(kù):

SQL> ALTER SYSTEM FLUSH REDO TO target_db_name;

  • 如果此步驟沒(méi)報(bào)錯(cuò),請(qǐng)轉(zhuǎn)至步驟5;
  • 如果時(shí)間緊急,不能等待完成,請(qǐng)繼續(xù)步驟2。

2. 查詢備庫(kù)上的v$archivd_log視圖,以獲取redo的最大sequence號(hào)。

SQL>SELECT UNIQUE THREAD# AS THREAD, MAX(SEQUENCE#) OVER (PARTITION BY thread#) AS LAST from V$ARCHIVED_LOG;
然后把主庫(kù)的最新歸檔日志傳輸?shù)絺鋷?kù),然后注冊(cè)該文件:
SQL>ALTER DATABASE REGISTER PHYSICAL LOGFILE filespec1;
3. 然后備庫(kù)上的v$archived_GAP視圖,在確定備庫(kù)上是否存在gap。
SQL>SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
  • 如果有g(shù)ap,請(qǐng)將gap的歸檔日志從主庫(kù)傳輸?shù)絺鋷?kù),然后在備庫(kù)中注冊(cè)文件。
SQL>ALTER DATABASE REGISTER PHYSICAL LOGFILE filespec1;
4. 重復(fù)執(zhí)行第2、3步驟,直至沒(méi)有g(shù)ap,如果此問(wèn)題不能解決,則在failover期間可能會(huì)丟失一些數(shù)據(jù)。
5. 在備庫(kù)上執(zhí)行以下SQL語(yǔ)句:
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
6. 在目標(biāo)備庫(kù)執(zhí)行failover
SQL>ALTER DATABASE FAILOVER TO targe_db_name;
  • 如果此步驟完成并且沒(méi)有任何錯(cuò)誤,請(qǐng)繼續(xù)執(zhí)行步驟10。
7. 如果發(fā)生錯(cuò)誤,請(qǐng)嘗試解決錯(cuò)誤的原因,然后重新執(zhí)行failover語(yǔ)句:
  • 如果成功,請(qǐng)轉(zhuǎn)到步驟10;
  • 如果仍有錯(cuò)誤,而且與原主庫(kù)有關(guān),請(qǐng)轉(zhuǎn)到步驟8;
  • 如果仍有錯(cuò)誤,但與原主庫(kù)無(wú)關(guān),請(qǐng)轉(zhuǎn)到步驟9。

8. 忽略與原主庫(kù)交互時(shí)遇到的任何故障,并在可能的情況下繼續(xù)進(jìn)行failover。

SQL>ALTER DATABASE FAILOVER TO targe_db_name FORCE;
  • 如果命令執(zhí)行成功,請(qǐng)轉(zhuǎn)到步驟10;
  • 如果命令執(zhí)行不成功,請(qǐng)轉(zhuǎn)到步驟9。

9. 執(zhí)行數(shù)據(jù)丟失故障轉(zhuǎn)移:

  • 如果無(wú)法解決報(bào)錯(cuò),則仍可以通過(guò)在備庫(kù)上執(zhí)行以下SQL語(yǔ)句來(lái)執(zhí)行故障轉(zhuǎn)移(并丟失一些數(shù)據(jù)。)
SQL>ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;
10. 打開新主庫(kù):
SQL>ALTER DATABASE OPEN;
11. 建議立即對(duì)新主庫(kù)執(zhí)行完整備份。
12. 如果redo apply在dataguard配置中的其它物理備庫(kù)上停止,請(qǐng)重新啟動(dòng)它。
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

13. FAILOVER后,有3種方法將原主庫(kù)轉(zhuǎn)換為備庫(kù):

A、FLASHBACK DATABSE
B、RMAN備份
C、重新搭建備庫(kù)

原主庫(kù)轉(zhuǎn)換為備庫(kù)后,可以執(zhí)行switchover將其恢復(fù)成主庫(kù)。

使用data guard broker執(zhí)行failover到Physical Standby Database

1. 使用dg broker檢查主備庫(kù)的同步狀態(tài)是否正常

show database verbose 目標(biāo)主庫(kù);
show database verbose 目標(biāo)備庫(kù);
show configuration verbose;
返回結(jié)果中有報(bào)錯(cuò),一定要處理完成才能繼續(xù)下面的切換步驟。
2. 使用dg broker執(zhí)行failover(主備庫(kù)皆可執(zhí)行)
failover to 備庫(kù)名稱。


本文作者:聶文峰(上海新炬王翦團(tuán)隊(duì))

本文來(lái)源:“IT那活兒”公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/129267.html

相關(guān)文章

  • 19C?DG?Broker配置和測(cè)試

    19C?DG?Broker配置和測(cè)試 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    IT那活兒 評(píng)論0 收藏2941
  • OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)直接路徑

    摘要:年月日,遷移服務(wù)解決方案在城市峰會(huì)中正式發(fā)布。遷移服務(wù)向分布式架構(gòu)升級(jí)的直接路徑基于上述問(wèn)題和挑戰(zhàn),同時(shí)經(jīng)過(guò)螞蟻十年數(shù)據(jù)庫(kù)架構(gòu)升級(jí)的先進(jìn)經(jīng)驗(yàn),螞蟻金服為客戶打造了這款一站式數(shù)據(jù)遷移解決方案遷移服務(wù),簡(jiǎn)稱。 2019年1月4日,OceanBase遷移服務(wù)解決方案在ATEC城市峰會(huì)中正式發(fā)布。螞蟻金服資深技術(shù)專家?guī)熚膮R和技術(shù)專家韓谷悅共同分享了OceanBase遷移服務(wù)的重要特性和業(yè)務(wù)實(shí)踐...

    KaltZK 評(píng)論0 收藏0
  • OceanBase遷移服務(wù):向分布式架構(gòu)升級(jí)直接路徑

    摘要:年月日,遷移服務(wù)解決方案在城市峰會(huì)中正式發(fā)布。遷移服務(wù)向分布式架構(gòu)升級(jí)的直接路徑基于上述問(wèn)題和挑戰(zhàn),同時(shí)經(jīng)過(guò)螞蟻十年數(shù)據(jù)庫(kù)架構(gòu)升級(jí)的先進(jìn)經(jīng)驗(yàn),螞蟻金服為客戶打造了這款一站式數(shù)據(jù)遷移解決方案遷移服務(wù),簡(jiǎn)稱。 2019年1月4日,OceanBase遷移服務(wù)解決方案在ATEC城市峰會(huì)中正式發(fā)布。螞蟻金服資深技術(shù)專家?guī)熚膮R和技術(shù)專家韓谷悅共同分享了OceanBase遷移服務(wù)的重要特性和業(yè)務(wù)實(shí)踐...

    gnehc 評(píng)論0 收藏0
  • DG備庫(kù)讀寫測(cè)試方案

    DG備庫(kù)讀寫測(cè)試方案 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margin:0...

    IT那活兒 評(píng)論0 收藏856

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<