pfileを使用してインスタンスを起動し、spfileを作成する方法

この記事ではpfileを使用してインスタンスを起動し、spfileを作成する方法について解説します。

 spfileの役割

oracle databaseではインスタンス起動時に必要な情報をspfileやpfileに所持しています。

基本的にspfileが使用されることが多いですが、バイナリ形式のファイルで破損した場合は復旧できず、インスタンスが起動できなくなります。

そのためspfile自体をバックアップしておいたり、pfileを作成して退避しておくことが推奨されます。

今回はspfileが破損し、pfileからインスタンスを起動してspfileを復元する手順を紹介します。


 pfileを使用したインスタンスの起動

あらかじめpfileを作成し、そのpfileを使用してインスタンスを起動します。

pfileを指定してstartupします。

SQL> STARTUP PFILE='/home/oracle/init_test.ora';
ORACLEインスタンスが起動しました。
データベースがマウントされました。
データベースがオープンされました。

初期化パラメータspfileを確認すると、値が空になっておりpfileを使用して起動していることがわかります。

SQL> show parameter spfile
NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
spfile				     string

pfileからspfileを作成します。

SQL> CREATE SPFILE FROM PFILE='/home/oracle/init_test.ora';
ファイルが作成されました。

インスタンスを再起動しspfileで起動できることを確認します。

SQL> shutdown immediate
SQL> startup
SQL> show parameter spfile
NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
spfile				     string	 /opt/oracle/product/23ai/dbhomeFree/dbs/spfileFREE.ora

pfileからspfileの復元まで完了できました。