SPFILE/PFILEの相互変換

SPFILE/PFILEの相互変換

今回はSPFILEを元にPFILEを作成したり、その逆をするSQLを紹介します。

[環境]
   OS   Fedora Core6
   DB   Oracle Database 10g Release 10.2.0.1.0

■手順
(1)SPFILEからPFILEを作成
CREATE PFILE [='pfile_path'] FROM SPFILE [='spfile_path']
pfile_pathを指定しなかった場合は以下の場所にPFILEを作成します。
  • ORACLE_HOME/dbs/init[SID].ora
spfile_pathを指定しなかった場合は以下の場所からSPFILEを読み込みます。
  • ORACLE_HOME/dbs/spfile[SID].ora

(2)PFILEからSPFILEを作成
CREATE SPFILE [='spfile_path'] FROM PFILE [='pfile_path']
オプションを指定しなかった場合のファイルの読み込み・書き込み先は同上。


管理人は、たまたまSPFILEのパラメータの設定値を誤り、以下のエラーでインスタンスが起動出来なくなった時に使いました。その復旧手順も紹介しておきます。
ORA-12700: invalid NLS parameter value (nls_territory)
■復旧手順
最低限必要なものとして、インスタンスが正常に起動可能な初期化パラメータファイル(PFILE)が必要。
基本的にデータベース作成時に以下の場所に自動的に作成されているはず。
  • ORACLE_BASE/admin/SID/pfile
(1)PFILEでインスタンスを起動
sqlplus / as sysdba
SQL>startup pfile=pfile_path

(2)CREATE PFILE文を実行
誤ったパラメータ値の混入しているSPFILEからPFILEを作成。 SQL>CREATE PFILE FROM SPFILE

(3)PFILEを編集
エディタで作成したPFILEを編集し、誤ったパラメータ値を削除等する。

(4)CREATE SPFILE文を実行
先ほど編集したPFILEを元にSPFILEを作成。これで誤ったパラメータ値が取り除かれたSPFILEが作成できるはず。
SQL>CREATE SPFILE FROM PFILE

(5)インスタンスを再起動
SPFILEを使用する為に再起動。
SQL>SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL>SHUTDOWN IMMEDIATE
ORACLE instance started.

ALTER SYSTEM文で誤ってパラメータを編集してしまっただけなのに復旧にはこれだけ手間がかかりました。
ということで初期化パラメータの編集は慎重に行いましょう。
2007年07月04日(水) 02:28:53 Modified by mr_makochi




スマートフォン版で見る