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

資訊專欄INFORMATION COLUMN

物理備庫failover切換的3種方法

IT那活兒 / 1063人閱讀
物理備庫failover切換的3種方法

點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!??!


  

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

在使用過程嚴禁混合使用新舊兩種用法。除非在切換過程中有明確的提示。

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


failover前準備工作

1. 檢查主備庫dataguard參數是否正常,如果主庫還可用。
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. 檢查主備庫同步是否正常,如果主庫還可用。
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. 檢查主備庫alert日志是否有異常輸出。
4. 檢查主備庫的監聽狀態、listener.ora、tnsnames.ora文件。
5. 執行切換前,備庫最好是處于mounted狀態,提高切換速度。
6. 確認主備庫的補丁一致,以免切換到備庫以后,遇到不可遇知的BUG。
7. 與業務側溝通好操作時間。

8. 確認備庫的硬件(CPU、內存、IO)性能能夠支撐切換后的應用連接。

使用舊語法執行failover到Physical Standby Database

1. 如果主庫可以mounted,則將主庫中所有未到備庫的歸檔日志和redo刷新到備庫。
SQL> ALTER SYSTEM FLUSH REDO TO target_db_name;
確保在目標備庫上啟用了redo apply。
  • 如果主庫不能mounted,則轉到步驟2
  • 如果此步驟沒報錯,請轉至步驟5。
  • 如果時間緊急,不能等待完成,請繼續步驟2。

2. 查詢備庫上的v$archivd_log視圖,以獲取redo的最大sequence號。

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

SQL>ALTER DATABASE REGISTER PHYSICAL LOGFILE filespec1;
4. 重復執行第2、3步驟,直至沒有gap,如果此問題不能解決,則在failover期間可能會丟失一些數據。
5. 在目標備庫上執行以下SQL語句,取消redo apply。
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
6. 在目標備庫執行如下SQL語句應用完成所有接收到的歸檔日志。
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
  • 如果此步驟完成并且沒有任何錯誤,請繼續執行步驟7。
  • 如果發生錯誤,如某些歸檔日志未應用。請嘗試解決錯誤并重新執行該步驟語句。然后再繼續執行一步。
  • 如果存在步驟2、步驟3和步驟4中未解決的gap。則會報錯。
  • 如果無法解決錯誤。則仍可以通過在目標備庫上執行以下SQL語句來執行故障轉移(會丟失一些數據):
SQL> ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;
7. 確認目標備庫已經準備好切換成主庫。
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS
-----------------
TO PRIMARY
1 row selected
TO PRIMARY SESSIONS ACTIVE 的值均表示目標備庫已準備好切換到主庫。如果返回結果不是這兩個值,請確認redo apply是否已經取消。
8. 在目標備庫上執行以下SQL語句將物理備庫切換成主庫。
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
  • 如果步驟7中返回結果是"TO PRIMARY",則SQL語句中可以不寫“WITH SESSION SHUTDOWN”;
  • 如果命令執行不成功,請轉到步驟9。

9. open新主庫:

SQL> ALTER DATABASE OPEN;
10. 建議立即對新主庫執行完整備份。
11. 如果redo apply在dataguard配置中的其它物理備庫上停止,請重新啟動它。
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

12. FAILOVER后,有3種方法將原主庫轉換為備庫:

A、FLASHBACK DATABSE
B、RMAN備份
C、重新搭建備庫

原主庫轉換為備庫后,可以執行switchover將其恢復成主庫。

使用新語法執行failover到Physical Standby Database

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

SQL> ALTER SYSTEM FLUSH REDO TO target_db_name;

  • 如果此步驟沒報錯,請轉至步驟5;
  • 如果時間緊急,不能等待完成,請繼續步驟2。

2. 查詢備庫上的v$archivd_log視圖,以獲取redo的最大sequence號。

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

8. 忽略與原主庫交互時遇到的任何故障,并在可能的情況下繼續進行failover。

SQL>ALTER DATABASE FAILOVER TO targe_db_name FORCE;
  • 如果命令執行成功,請轉到步驟10;
  • 如果命令執行不成功,請轉到步驟9。

9. 執行數據丟失故障轉移:

  • 如果無法解決報錯,則仍可以通過在備庫上執行以下SQL語句來執行故障轉移(并丟失一些數據。)
SQL>ALTER DATABASE ACTIVATE PHYSICAL STANDBY DATABASE;
10. 打開新主庫:
SQL>ALTER DATABASE OPEN;
11. 建議立即對新主庫執行完整備份。
12. 如果redo apply在dataguard配置中的其它物理備庫上停止,請重新啟動它。
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

13. FAILOVER后,有3種方法將原主庫轉換為備庫:

A、FLASHBACK DATABSE
B、RMAN備份
C、重新搭建備庫

原主庫轉換為備庫后,可以執行switchover將其恢復成主庫。

使用data guard broker執行failover到Physical Standby Database

1. 使用dg broker檢查主備庫的同步狀態是否正常

show database verbose 目標主庫;
show database verbose 目標備庫;
show configuration verbose;
返回結果中有報錯,一定要處理完成才能繼續下面的切換步驟。
2. 使用dg broker執行failover(主備庫皆可執行)
failover to 備庫名稱。


本文作者:聶文峰(上海新炬王翦團隊)

本文來源:“IT那活兒”公眾號

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129267.html

相關文章

  • 19C?DG?Broker配置和測試

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

    IT那活兒 評論0 收藏2941
  • OceanBase遷移服務:向分布式架構升級直接路徑

    摘要:年月日,遷移服務解決方案在城市峰會中正式發布。遷移服務向分布式架構升級的直接路徑基于上述問題和挑戰,同時經過螞蟻十年數據庫架構升級的先進經驗,螞蟻金服為客戶打造了這款一站式數據遷移解決方案遷移服務,簡稱。 2019年1月4日,OceanBase遷移服務解決方案在ATEC城市峰會中正式發布。螞蟻金服資深技術專家師文匯和技術專家韓谷悅共同分享了OceanBase遷移服務的重要特性和業務實踐...

    KaltZK 評論0 收藏0
  • OceanBase遷移服務:向分布式架構升級直接路徑

    摘要:年月日,遷移服務解決方案在城市峰會中正式發布。遷移服務向分布式架構升級的直接路徑基于上述問題和挑戰,同時經過螞蟻十年數據庫架構升級的先進經驗,螞蟻金服為客戶打造了這款一站式數據遷移解決方案遷移服務,簡稱。 2019年1月4日,OceanBase遷移服務解決方案在ATEC城市峰會中正式發布。螞蟻金服資深技術專家師文匯和技術專家韓谷悅共同分享了OceanBase遷移服務的重要特性和業務實踐...

    gnehc 評論0 收藏0
  • DG備庫讀寫測試方案

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

    IT那活兒 評論0 收藏856

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<