この記事では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の復元まで完了できました。