【翻譯自mos文章】Standby Redo Logs (SRL)的用途,益處與限制

Standby Redo Logs (SRL)的用途,益處與限制

來源於:
Usage, Benefits and Limitations of Standby Redo Logs (SRL) (文檔 ID 219344.1)

目的:
本文顯示了Standby Redo Logs (SRL)的用途,益處與限制,適用於 Oracle 9i/10g/11g中帶有SRL的dataguard環境。

範圍:
所有DBA以及希望實施9i/10g/11g (9.x-11.x) DataGuard的人

1. Standby Redo Logs (SRL) ---是什麼?在什麼時候使用SRL?
從Oracle 9i開始,你有機會爲Online Redo Log Groups添加Standby Redo Logs (SRL) Groups。
這些Standby Redo Logs (SRL) 存儲了從DG主庫接收的信息。
在failover的情況下,有Standby Redo Logs比沒有Standby Redo Logs會減少數據損失(data loss)

在Oracle9i時,僅僅Physical standby支持SRL,從10g開始,Physical standby 和  Logical standby均支持SRL。

SRL的最大優勢是:主庫上每個寫入到online redologs的 entry 都會被傳輸到備庫,同時被寫入到SRL中。
因此,在備庫上減少了數據損失的可能性。

從10g 開始,可以在Physical standby  和  Logical standby 上使用實時應用(Real-Time Apply)
使用Real-Time Apply時 ,來自SRL的redo被應用到standby database中,在不使用Real-Time Apply時,redo apply一直在等待直到歸檔日誌被建立。
因此,Real-Time Apply 需要SRL.

2. 我該怎麼建立SRL?
SRL是額外的Redo Log Groups。如果你在standby database上查詢v$logfile,輸出類似如下:


 
  1. SQL> select * from v$logfile;

  2.  
  3. GROUP# STATUS TYPE MEMBER

  4. ------ ------- ------- ------------------------------------

  5. 1 ONLINE C:\ORACLE\ORADATA\STANDBY\REDO01.LOG

  6. 2 ONLINE C:\ORACLE\ORADATA\STANDBY\REDO02.LOG

  7. 3 ONLINE C:\ORACLE\ORADATA\STANDBY\REDO03.LOG

在備庫上添加SRL之前,確認一下 the number of maximum Logfile Groups and Logfile Members
如果你沒有記住這些值,可以在 CREATE CONTROLFILE的腳本中看到。 用下面的命令來得到 CREATE CONTROLFILE腳本:

   SQL> alter database backup controlfile to trace;

上面的命令會在UDUMP目錄下建立一個trc文件。

注意下面相關的entry:


 
  1. MAXLOGFILES 8

  2. MAXLOGMEMBERS 3

在這個例子中,你最多可以建立8個logfile groups,每個groups最多可以包括3個member。

現在,我們可以給standby databae添加SRL(當然,standby databaes必須處於mount狀態)

   SQL> alter database add standby logfile group 4 ('C:\ORACLE\ORADATA\STANDBY\STBY04.LOG') SIZE 5M;

你可以爲一個group添加member:

   SQL> alter database add standby logfile member 'C:\ORACLE\ORADATA\STANDBY\STBY14.LOG' to group 4;

請記住:如果RFS進程寫入數據到SRL,SRL的文件大小必須等於 主庫上的當前的online redo log 的大小。

3. SRL的限制。
在Oracle 9i/10g的DG環境中,standby database上的RFS進程收到來自於Primary database的data,並寫入這些data到Disk(要麼是SRL,要麼是 Archived Redo Logs)

如果你考試使用SRL,你必須確保:這些SRL與online redo log有相同的大小。
如果你有不同大小的online redo log,你不得不建立相關的SRL.
如果SRL與online redo log 不同,RFS進程不會附加到SRL上。
It is recommended to have at least one more of Standby Redo Log Group as you have of Online Redo Log Groups per Thread and Size.

SRL 被填充的內容與 在主庫上online redo log被寫入的內容相同。
因此,只有LGWR進程能提供這個信息給備庫上的RFS進程,因此,只有當主庫的LOG_ARCHIVE_DEST_n 參數設置LGWR爲傳輸者時,SRL才起作用。
從10.2.0開始,arch進程可以寫入到SRL中。

The RFS-Process always tries to allocate the next available Standby RedoLog,
so it is possible that you encounter a Switch between only two Standby RedoLogs,
although you created lots more of them. There's no rota defined here like in Online RedoLogs. This is reported in Bug 2722195.

從10.2.0開始,arch進程可以寫入到SRL中。

4.使用SRL時,Log Apply Service的不同。
在不使用SRL的情況下,當歸檔日誌完成時,RFS進程創建了歸檔日誌。該歸檔日誌由MRP(Managed Recovery Process)進程應用到備庫上。
一個打開的(不是完全寫入的)歸檔日誌不能在備庫上應用,因而不能在failover情況下使用,這會導致一定的data loss

如果你使用了SRL,RFS進程會往SRL裏寫入,並且當日志切換時,備庫的歸檔器進程會把SRL歸檔到歸檔日誌,同時,MRP進程應用這些信息到備庫。
在failover時,你將會訪問這些已經被寫入SRL的信息,因此,這些信息不回丟失。

從10g開始,你可以使用針對 Physical Standby  and Logical Standby Apply  來使用Real-Time Apply。
When using Real-Time Apply we directly apply Redo Data from Standby RedoLogs.
如果不使用SRL,Real-Time Apply不能應用部分填充的歸檔日誌來應用redo,因此,對 Real-Time Apply而言,SRL是被強制要求的。

注意:在12c中,默認的MRP會變爲 Real-Time Apply 模式。

Default Standby recovery in REAL time apply.
      SQL>alter database recover managed standby database disconnect;
To Start MRP in non real time apply mode use,(in 12c)
       SQL>alter database recover managed standby database using archived logfile disconnect;

 


5. Standby RedoLogs and the Data Guard Broker
---------------------------------------------

If there is an active Data Guard Broker Configuration on this Data Guard Environment the following Error can be raised in the Data Guard Broker Configuration if the setup Transport Method (LogXptMode) is 'SYNC' or 'ASYNC'
and there are no Standby RedoLogs configured:

 Warning: ORA-16809: multiple warnings detected for the database

In the corresponding DRC.LOG-Files and the Database Status you can find:

 ORA-16789: standby redo logs not configured

-> So please add corresponding Standby RedoLogs to the Standby Database. As per default the Data Guard Broker tries to start Log Apply Services in Real-Time Apply Mode which is not possible without Standby RedoLogs.Note that starting with Oracle 11g ARCH Log Transport Method is deprecated.


RELATED DOCUMENTS
-----------------

Oracle9i  Data Guard Concepts and Administration
Oracle10g Data Guard Concepts and Administration
Oracle11g Data Guard Concepts and Administration

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章