关于RAC 的Data Guard中FAL_SERVER及FAL_CLIENT的设置

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文件,那么它可以直接到
三个节点共同的归档路径下抓取归档日志 。 而不需要管是哪个实例 。
请使用浏览器的分享功能分享到微信等