關於RAC 的Data Guard中FAL_SERVER及FAL_CLIENT的設定

tolywang發表於2010-10-11
Oracle 10.2.0.4 ,  Linux AS 5.3  


Primary DB            :    3 Nodes  
Dataguard DB       :    單臺 (Logical Standby)  


準備建立RAC 的Logical Standby ,  在個別引數設定方面有一些疑問, 主要是因為不太懂它的工作原理 。 這裡因為不打算做切換動作,
所以只是在Standby上設定 fal_server  及 fal_client   .   

在Standby端, fal_server 可能要對應多個例項 (這裡是3個), 不過因為在Primary DB上三個RAC節點的歸檔路徑是相同的, 是否可以
將fal_server 只設定一個節點對應的net service  (standby上tnsnames.ora中設定)  即可 。



設定1 :  
fal_server = 'inst1','inst2','inst3'       (其中inst1,2,3 是standby上tnsnames.ora中設定的對應三個RAC例項的別名)  
fal_client = 'standby'                        (其中standby 是standby上tnsnames.ora中設定的對應standby db的別名)  


設定2 :  
fal_server = 'inst1'      
fal_client = 'standby'  



是否能像設定2一樣進行配置, 主要是看出現歸檔gap之後standby如何進行自動恢復, 它是否會去RAC的每個例項 (是否到每個例項中 ?)
查詢歸檔檔案相關的檢視  (這個檢視是gv$開頭的還是v$開頭的 ? ) ?  然後對比Standby中已經APPLY了的最後一個歸檔日誌檔案(具體如何比較,
估計應該是類似fist_chage#,next_change#之類的number) ,  然後根據fal_server 設定的名稱找到Primary DB上的引數檔案中的歸檔日誌檔案路徑,
將後面差異部分的資料檔案重新透過RFS抓取到 ( 抓取還是傳輸 ?   該是Standby主動吧,所以叫抓取比較合適 )   Standby上進行Log mining 等一
系列動作 ,最後並做SQL APPLY 。   



整個過程大概分兩步(個人理解) :

第一步是對比Standby目前歸檔日誌檔案找到差異檔案,關鍵點是它需要到每個節點透過相關檢視找各自thread對應的歸檔檔案 ?  比如
standby已經apply到了 2_299.arc  ,  透過primary db 中的檢視可以找到primary db上當前已經歸檔的檔案和 2_299.arc之間相差
的歸檔檔名稱 , 那麼他們是直接可以在任一節點找到差異的檔案是 1_498.arc, 2_300.arc, 1_499.arc, 3_395.arc, 1_500.arc  ?   
然後由於歸檔路徑一樣,他們直接可以透過其中一個primary 節點找到所有的這些gap 檔案 ?   


第二步是抓取GAP檔案並mining , apply .  這個過程都是standby主動作業, 既然已經判斷了需要哪些gap檔案,那麼它可以直接到
三個節點共同的歸檔路徑下抓取歸檔日誌 。 而不需要管是哪個例項 。

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

相關文章