天天看點

ADG故障解決案例:db_file_name_convert參數設定錯誤

原文位址:http://blog.sina.com.cn/s/blog_548c8a830102wttg.html

資料庫:

主庫:DB12.1.0 RAC ASM

備庫:DB12.1.0 單機

原來的RMAN腳本為:

​ 

RMAN>run {

​duplicate target database for standby from active database

spfile

parameter_value_convert 'PDG','SDG'

set db_unique_name='SDG'

set audit_file_dest='/u01/app/oracle/admin/rac/adump/'

set diagnostic_dest='/u01/app/oracle/'

set control_files='/u01/app/oracle/oradata/rac/control01.ctl'

set db_file_name_convert='+DATA/','/u02/data/'

set log_file_name_convert='+FRA/','/u03/fra/'

set db_create_online_log_dest_1='/u02/online/'

set db_create_file_dest='/u02/file/'

set db_recovery_file_dest='+FRA/'

set log_archive_max_processes='10'

set fal_client='SDG'

set fal_server='PDG'

set standby_file_management='AUTO'

set log_archive_config='dg_config=(PDG,SDG)'

set log_archive_dest_1='LOCATION=/u03/fra/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=SDG'

    set log_archive_dest_2='service=PDG LGWR ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=PDG'

nofilenamecheck;

}

​​原文檔沒有單獨處理臨時檔案 

*.db_file_name_convert='+DATA/','/u02/data/'

上邊是原來參數配置。 

實際上主庫的臨時檔案的路徑應該是+DATA/tempfile/ ,要這樣配置才對

*.db_file_name_convert='+DATA/','/u02/data/', '+DATA/tempfile/','/u02/data/' 

這樣就不會出現這個問題了。 

如果沒有寫明,就要重新建立臨時表空間。(補上未做工作)

其實如果主庫使用ASM(預設使用OMF),備庫使用檔案系統,但也是OMF時,根本不需要設定convert參數,僅僅設定db_create_file_dest就可以了。其實這裡的錯誤原因是非常悲劇的錯誤的設定了一個沒必要的convert參數導緻的。

這個故障的表象就是:

備庫查詢select * from dba_temp_files ,報錯如下:

ORA-01157: cannot identify/lock data file 201 - see DBWR trace fileORA-01110:data file 201: '+DATAGR'

附錄: ​ADG角色轉換注意事項

角色轉換分為switchover和failover。

switchover:主從之間可以互相切換,也叫無損切換 #不需要重建ADG。

failover:   當主資料庫損壞後将備庫切為主庫,原庫将不能再切回主庫 #需重建ADG。

角色轉換前的準備:

A,檢查資料庫的初始化參數,主要确認對不同角色相關的初始化參數。

B,確定主從資料庫伺服器都處于archivelog模式。

C,確定standby資料庫的臨時檔案存在并與primary相比對。

D,rac叢集環境需特殊處理。

附錄2:Failover步驟

​--檢視gap,如果沒有發現明顯的gap現象,說明此次的failover不會有資料損失情況。

  •  select thread#, low_sequence#, high_sequence# from v$archive_gap; 
  • --停止redo應用
  •  alter database recover managed standby database cancel; 
  • --完成redo應用
  •  alter database recover managed standby database finish; 
  • --switchover

 alter database commit to switchover to primary;

SHUTDOWN IMMEDIATE;

STARTUP; 

附錄3:​

select message from v$dataguard_status;

繼續閱讀