Data Guard相關的一些設定

tolywang發表於2009-06-01

DG中LGWR傳輸方式
~~~~~~~~~~~~~~~~~~~~~~~~~~~

log_archive_dest_2='SERVICE=boston LGWR SYNC NET_TIMEOUT=30 valid_for=(online_logfile,primary_role)'

SYNC是預設值(可以不寫,不過最好不是寫進去,明瞭其見)。
配置了SYNC屬性的話,最好帶上NET_TIMEOUT屬性,NET_TIMEOUT控制LGWR程式等待網路服務程式的時間長短。如果NET_TIMEOUT秒還沒有響應,剛LGWR程式就會返回錯誤資訊。

SYNC方式寫redo的步驟:
~~~~~~~~~~~~~~~~~~~~~~~

          1.主資料庫上LGWR程式提交一個事務時,由LNSn程式發起網路I/O到遠端備用庫;
          2.備用庫上,遠端檔案服務(RFS)透過網路從主庫的LNSn程式接收redo資訊,寫入到standby log中;
          3.直到redo 資料寫完主庫redo log 和備用庫standby log後,主庫的事物才會提交;
         4.主庫上發生日誌切換的同時,也會觸發備用庫的日誌切換,備用庫的ARCn程式歸檔standby logfile到備用庫上        standby_archive_dest目錄;
          5.備用庫歸檔完成後,啟用MRPn程式(或SQL應用-LSP程式)應用到備用庫。
         6.如果是適時應用日誌,那麼dg在當前redo資訊由RFS程式寫滿的同時直接從standby log恢復,而後才由ARCn程式歸檔。

ASYNC方式寫redo步驟:
~~~~~~~~~~~~~~~~~~~~~~~

log_archvie_dest_2='SERVICE=boston LGWR ASYNC'
從10.2開始,ASYNC屬性沒有必要配置NET_TIMEOUT.因為在10.2中,LGWR程式永遠不會因為任何原因等待LNSn,因此不需要NET_TIMEOUT屬性。

         1.主庫發生事務,LGWR程式將redo資訊寫進本地redo logfile中,LGWR程式繼續處理下一個請求,不等待LNS網路I/O完成;
         2.LNSn網路服務程式非同步傳送redo資訊到遠端目的地。如果要傳送到多個遠端目的地,LNSn程式(每個目的地一個)並行發起到所有目的地的網路I/O.
          3.當聯機重做日誌寫滿,如通常一樣日誌切換,並且歸檔,備份庫應用。



DG中關於密碼檔案
~~~~~~~~~~~~~~~~~~~~~~~~~~~

         確保在主備庫之間,SYS使用者的密碼相同。因為Data Guard提供安全的環境防止重做資料在傳遞到備資料庫時發生可能的篡改。重做傳輸服務使用認證的網路會話來傳遞重做資料,這些會話使用包含在口令檔案中的SYS使用者口令來認證。所以,在Data Guard配置中的所有資料庫都必須使用口令檔案,且,包含在這個口令檔案中的SYS口令在所有系統上都必須相同。


VALID_FOR屬性
~~~~~~~~~~~~~~~~~~~~~~~~~~~

log_archive_dest_2='SERVICE=bforcl LGWR ASYNC VALID_FOR(all_logfiles,primary_role)'

         VALID_FOR允許同時為主備庫資料庫角色配置目的地屬性,使DG切換後能正常工作。簡化切換和故障轉移。預設valid_for=(all_logfiles,all_roles)

格式:VALID_FOR=(redo_log_type,database_role)
         redo_log_type包括:online_logfile、standby_logfile、all_logfiles
          database_role包括:primary_role、standby_role、all_roles

       redo_log_type的意思是指定要歸檔的日誌檔案型別;
        database_role的意思是,當資料庫處於這個角色時,才會往log_archive_dest_n這個地址歸檔日誌檔案(redo_log_type的日誌)。

例如:
          1.配置log_archive_dest_2='SERVICE=primary LGWR ASYNC VALID_FOR=(online_logfile,primary_role)'
                  當這個備用庫切換成主庫時,也就是說這個庫角色為primary時,會將online_logfile裡(線上日誌檔案)的日誌記錄歸檔到tnsnames=primary的庫。
          2.配置log_archive_dest_3='LOCATION=/data/arch VALID_FOR=(standby_logfile,standby_role)'
                 當這個庫角色為standby時,當standby log寫滿時,會將standby log歸檔到/data/arch目錄。而不會將online logfile的內容歸檔到這裡。

VALID_FOR的作用可以用一句話來總結:
        控制,當配置有VALID_FOR的資料庫處於database_role時,允許歸檔redo_log_type到log_archive_dest_n所配置的路徑。
        如果redo_log_type為online_logfile,則歸檔線上日誌中的redo 記錄;
        如果redo_log_type為standby_logfile,則歸檔standby log 中的記錄;
        如果log_archvie_dest_n配置為LOCATION則歸檔到本地目錄;
        如果log_archvie_dest_n配置為SERVICE,則歸檔到備用庫。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-605538/,如需轉載,請註明出處,否則將追究法律責任。

相關文章