うんちくメモ

ただのメモです。内容は妄想の可能性があります

OMFを利用したASM環境での制御ファイルパス変更

・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