この記事ではASM上のspfileの復旧について解説します。
ASM上のspfileの復旧
Oracle Grid Infrastructureを利用したDBの場合、spfileはASM上で管理されます。
spfileが破損したり、パラメータが不正でDBの起動ができなくなった場合、spfileの再作成が必要となります。
spfileがASMで管理されている場合、spfileを再作成したのちにOracle Clusterwareのspfile情報を更新する必要があります。
今回はpfileからspfileを再作成し、spfile情報を更新してDBを起動する手順を解説します。
spfileの再作成
SQL*PlusでDBへ接続し、pfileを使用してDBを起動します。
$ sqlplus / as sysdba
SQL> startup pfile='/home/oracle/init_cdb1.ora'
pfileからspfileを作成します。
SQL> CREATE SPFILE FROM PFILE='/home/oracle/init_cdb1.ora' ;
File created.
gridユーザで接続し、ASMに再作成したspfileの情報を確認します。
$ su - grid
$ asmcmd
ls +DATA/CDB/PARAMETERFILE
ASMCMD>ls +DATA/CDB/PARAMETERFILE
spfile.284.1227722997
新規に「spfile.284.1227722997」が作成されていることが確認できました。
Oracle Clusterwareのspfile情報の更新
oracleユーザにてDBに設定されているspfileの情報を確認します。
$ srvctl config database -d CDB | grep Spfile
Spfile: +DATA/CDB/PARAMETERFILE/spfile.262.1227546247
登録されているspfileが「spfile.262.1227546247」なので、これを「spfile.284.1227722997」に変更します。
$ srvctl modify database -d CDB -p '+DATA/CDB/PARAMETERFILE/spfile.284.1227722997'
$ srvctl config database -d CDB | grep Spfile
Spfile: +DATA/CDB/PARAMETERFILE/spfile.284.1227722997
新しいspfileに情報が更新されたので、DBを再起動します。
$ srvctl stop database -d CDB
$ srvctl start database -d CDB
以上でspfileの復旧は完了になります。