DataGuard日常維護

來源:互聯網
上載者:User

日常維護:

  正確的開關機順序是:

  啟動的時候,先備庫的listener,再啟動備庫,再啟動主庫的listener,再啟動主庫。

  關閉的時候,先關閉主庫,再關閉備庫。

  --為主要資料庫或備用資料庫添加/刪除日誌組  

      SQL> alter database add standby logfile group 5 '/oracle/oradata/orcl/standbyredo05.log' size 100M;
  SQL> alter database drop standby logfile group 5;

  --查詢DataGuard當前處於哪種日誌傳輸方式: 

    SQL> select process,client_process,sequence#,status from v$managed_standby;

  PROCESS列顯示進程資訊

  CLIENT_PROCESS列顯示對應的主要資料庫中的進程

  SEQUENCE#列顯示歸檔redo的序號

  STATUS列顯示的進程狀態

  --查詢standby庫中所有已被應用的歸檔檔案資訊(不論該歸檔檔案是否還存在) 

   SQL> select first_time,first_change#,next_change#,sequence# from v$log_history;

  --最後一個被應用的log  

      SQL> SELECT THREAD#, MAX(SEQUENCE#) AS "LAST_APPLIED_LOG" FROM V$LOG_HISTORY GROUP BY THREAD#;

  --在primary server上查詢有哪些日誌沒有被傳輸到Standby 

      SQL> SELECT LOCAL.THREAD#, LOCAL.SEQUENCE# FROM (SELECT THREAD#, SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=1) LOCAL WHERE LOCAL.SEQUENCE# NOT IN
  (SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND THREAD# = LOCAL.THREAD#);

  --對於troubleshooting有用

    SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS;

  m.監控恢複操作的進程  

 

 

    SELECT ARCHIVED_THREAD#, ARCHIVED_SEQ#, APPLIED_THREAD#, APPLIED_SEQ# FROM V$ARCHIVE_DEST_STATUS;

  --從正在恢複狀態唯讀開啟; 

      SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
  SQL> Alter DATABASE OPEN READ ONLY;

  --切換回到恢複狀態;  

      SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

  切換角色

  注意:Swithover時只能先從Primary切到Standby,再從Standby切到Primary.

  1、在主庫端

      select database_role,switchover_status from v$database;

  如果是to standby 表可以正常切換.

  直接執行 ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

  否則執行: ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN; 

      SQL> shutdown immediate;
  SQL> startup nomount;
  SQL> alter database mount standby database;
  SQL> select database_role from v$database;
  SQL> alter database recover managed standby database disconnect from session;

  2、在備庫端  

     select database_role,switchover_status from v$database;

  如果是to_primary 表可以正常切換.

  執行:ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

  否則執行: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;  

      shutdown immediate;
  startup;

  然後觀察主備庫日誌,如果正常的話會看到備庫會自動應用日誌.

     failover測試

  1. 備庫上檢查是否存在歸檔中斷 

      SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

                   

 

  2. 在主庫上執行語句並找出歸檔檔案   

      SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN XX AND XX;

  --如果存在拷貝相應的歸檔到STANDBY資料庫,並註冊.  

     SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'xxx';

  ***其他情況(primary資料庫無法開啟):

  --檢查歸檔檔案是否完整

  分別在primary/standby執行下列語句:  

      SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;

  把相差的歸檔複製到待轉換的standby伺服器

  3. 啟動failover  

      SQL> alter database recover managed standby database finish force;

  FORCE關鍵字將會停止當前活動的RFS進程,以便立刻執行failover。

  或 

      SQL> alter database recover managed standby database finish skip standby logfile;

  4. 切換物理standby角色為primary 

    SQL> alter database commit to switchover to primary;
  SQL> shutdown immediate
  SQL> startup

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.