ASM上のSPFILEの復旧

この記事では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の復旧は完了になります。