・11.2.0.4のOMFを利用したASM環境での制御ファイル変更手順がASMCMDとRMANを利用することでかなり楽に出来るようになっていたのでメモ
※取り敢えず簡易手順ベタ貼り。後で整理
1.DB停止
2.ASMCMDで正規パス作成
asmcmd mkdir +DG_CTL_SPF/TESTDB asmcmd mkdir +DG_CTL_SPF/TESTDB/CONTROLFILE asmcmd ls -l +DG_CTL_SPF/TESTDB asmcmd ls -l +DG_CTL_SPF/TESTDB/CONTROLFILE
3.ASMCMDで既存制御ファイル完全修飾名チェック
asmcmd ls -l +DG_REDO_1/TESTDB/controlfile
出力例
+DG_REDO_1/TESTDB/controlfile Current.279.840585087
4.初期化パラメータパス修正
sqlplus / as sysdba startup nomount; set line 200 show parameter control_files alter system set control_files='+DG_CTL_SPF/TESTDB/control01.ctl','+DG_CTL_SPF/TESTDB/control02.ctl' scope=spfile; shutdown immediate; startup nomount; set line 200 show parameter control_files
5.RMANで制御ファイルコピー
rman target / restore controlfile to '+DG_CTL_SPF/TESTDB/control01.ctl' from '+DG_REDO_1/TESTDB/controlfile/Current.279.840585087'; restore controlfile to '+DG_CTL_SPF/TESTDB/control02.ctl' from '+DG_REDO_1/TESTDB/controlfile/Current.279.840585087';
6.新制御ファイルで起動確認後、インスタンス停止
alter database mount; alter database open; shutdown immediate;
7.改めてsrvctlから起動
srvctl start database -d TESTDB /u01/app/11.2.0/grid/bin/crsctl stat res -t
8.ASMCMDで旧ファイル削除
asmcmd rm -rf +DG_REDO_1/TESTDB/controlfile asmcmd ls -l +DG_REDO_1/TESTDB