如何利用閃回資料庫特性恢複failover 後的dataguard 環境?,failoverdataguard

來源:互聯網
上載者:User

如何利用閃回資料庫特性恢複failover 後的dataguard 環境?,failoverdataguard
11g dataguard standby 切成主庫,測試完成後恢複為原standby 環境


#######################
概述:
11204 單機對單機實施dg,因局方要求需要(讀寫入模式)開啟standby ;而這時原生產環境不能有任何影響動,依然對外服務;
採用的思路是:standby 直接failover 為primary db;這時原有dg關係被破壞,互不影響;


#######################
思路概要:
1.確認主庫歸檔日誌存放空間是否足夠?(需考慮歸檔保留刪除策略?);關閉主庫到備庫的日誌傳輸
2.備庫確認是否開啟flashback database,以及閃回日誌存放空間是否充足?
3.備庫failover to primary (切換前確認是否日誌延遲傳輸?手工註冊)
4.業務測試
5.恢複failover 備庫
6.確認dg 環境恢複是否正常(日誌自動傳輸和應用?)?



#######################
具體實施步驟:

------主庫defer 日誌傳輸
alter system set log_archive_dest_2=defer;

---enable 日誌傳輸:
alter system set log_archive_dest_2=enable;

-----備庫(mount)配置 flashback database:
STANDBY DATABASE: Stop redo apply, configure flashback retention, 
start flashback database, open the database and start redo apply (Is active DG).

---檢查備庫是否啟用flashback database:
select flashback_on from v$database;


注意這裡需要確認下備庫開啟模式: mount?readonly with apply?
在11g 環境下備庫可能啟用了 ADG 特性 備庫日誌處於即時應用,資料庫模式為 readonly with apply
這時需要重啟資料庫到mount狀態修改flashback database 模式;


如果備庫處於mount 狀態,可以先取消日誌apply ,直接開啟閃回資料庫特性;


---取消備庫日誌應用:
  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;


---需要配置一下兩個參數來開啟flashback database 特性:
  ALTER SYSTEM SET db_recover_file_dest='/lixora/lixora/lixora/';
  ALTER SYSTEM SET db_recover_file_dest_size=100G;

  ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=240;   ---4hours
  ALTER DATABASE FLASHBACK ON;
  
--手工建立還原點(該步驟沒有測試過):
Creating Restore point in Physical Standby:
CREATE RESTORE POINT before_damage GUARANTEE FLASHBACK DATABASE


-------備庫failover to primary db 應急切換步驟:
(註:類比主庫由於故障無法正常switchover,需要執行failover,強製備庫->pridb並接管業務)

1.備庫:
由於是failover,所以理解主庫這時候已經無法正常使用,只需備庫切換至pridb

【前提主庫還是可用的:可選】查詢沒有應用的日誌: 
 SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP; 

select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;
該語句取得當前資料庫各線程已歸檔檔案最大序號,如果primary 與standby 最大序號不相同,
必須將多出的序號對應的歸檔檔案複製到待轉換的standby伺服器。


Cp過來並register 
  ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1'

停止應用復原模式
alter database recover managed standby database finish;
or
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE; 

轉換standbydb為primary db
alter database commit to switchover to primary;


重啟資料庫,恢複正常業務
alter database open;


資料庫角色查看:
select open_mode,database_role from v$database;
OPEN_MODE       DATABASE_ROLE
----------      ----------------
OPEN            PRIMARY


------恢複failover 的備庫:
C. Using SQL*PLUS 
Step 1 Determine the Standby Became Primary SCN. 
Step 2 Flashback the Failed Primary Database. 
Step 3 Convert to physical standby database. 
Step 4 Restart Redo Transport. 
Step 5 Start Redo Apply. 


Step 1 Determine the SCN at which the old standby database became the primary database. 
SQL> SELECT TO_CHAR(STANDBY_BECAME_PRIMARY_SCN) FROM V$DATABASE;


Step 2 Flashback the Failed Primary Database to SCN standby_became_primary_scn.
SQL> SHUTDOWN IMMEDIATE; 
SQL> startup mount 
SQL> FLASHBACK DATABASE TO SCN <standby_became_primary_scn of step 1>;

Step 3 Convert the database to a physical standby database and Restart database in mount stage. 
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY; 
SQL> SHUTDOWN IMMEDIATE; 
SQL> STARTUP MOUNT;


Step 4 Restart Redo Transport to the New Physical Standby Database. 
1. If you have not set the remote archive destination on current primary then set remote archive destination:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = 'SERVICE=lixora VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lixora' SCOPE=BOTH;

2. Enable the destination 
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

3. Perform a log switch to ensure that standby database begins receiving redo data from the new primary database 
SQL> ALTER SYSTEM SWITCH LOGFILE; 
SQL> SELECT DEST_ID, STATUS, ERROR FROM V$ARCHIVE_DEST WHERE DEST_ID=2;


--確認日誌是否都apply了?
select applied from v$archived_log;

select message from v$dataguard_status;


Step 5 Start Redo Apply. 
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Please see also fallowing docu:


TIPS:
Oracle? Data Guard Concepts and Administration
11g Release 2 (11.2)
13.2 Converting a Failed Primary Into a Standby Database Using Flashback Database

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.