主備互相切換用到的引數VALID_FOR、fal_client、fal_server

lusklusklusk發表於2016-11-10
VALID_FOR


沒有寫VALID_FOR時,預設VALID_FOR=(all_logfiles,all_roles) 

VALID_FOR屬性由2部分組成:archive_source(online_logfile,standby_logfile,all_logfiles)和database_role(primary_role,standby_role,all_role).
online_logfile: 表示歸檔聯機重做日誌
standby_logfile:表示歸檔備用資料庫的重做日誌/接受來自主庫的重做日誌
all_logfiles: online_logfile && standby_logfile

primary_role: 僅當資料庫角色為主庫時候生效
standby_role: 僅當資料庫角色為備庫時候生效
all_role: 任意角色均生效


*.log_archive_dest_1='location=/u01/app/oracle/archive_log'
*.log_archive_dest_2='service=DG lgwr async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DG'

比如主備庫都設定如上
主庫就會使用位置1來進行歸檔(而且預設 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=主庫的DB_UNIQUE_NAME),
使用位置2來進行歸檔(其實就是透過lgwr async傳輸到tns中別名為DG,DB_UNIQUE_NAME=DG的備庫的/u01/app/oracle/archive_log)

備庫只是被動的使用位置1來接受來自主庫的歸檔日誌,如alert中會出現的一句話Using STANDBY_ARCHIVE_DEST parameter default value as /u01/app/oracle/archive_log
位置2由於設定為PRIMARY_ROLE而自己是standby則不會生效

一旦發生切換
原來的主庫的位置2就不起作用了,原來的備庫的位置2就起作用了

如果主備都把位置2設定為ALL_LOGFILES,ALL_ROLES,備庫還要給主庫發歸檔日誌,那就矛盾了。




*.fal_client、*.fal_server兩引數


主備的tns都是如下時
master =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.128.37)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TDB)
    )
  )


slave =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.128.47)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = TDG)
    )
  )
  
 
 
37的設定(client是自己,server是對方)
*.fal_client='master'
*.fal_server='slave'




47的設定(client是自己,server是對方)
*.fal_client='slave'
*.fal_server='master'

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

相關文章