01.以前の設定内容でテキスト形式の初期化パラメータファイルを作成する
初期化パラメータの設定内容を把握し、その設定でテキスト形式の初期化パラメータファイルを作成します。
インスタンス起動時にアラートログへ出力される ‘System parameters with non-default values’という箇所に、サーバーパラメータファイルに明示的に設定された設定項目が出力されますので、これを参考にします。
Starting up ORACLE RDBMS Version: 11.1.0.7.0.
Using parameter settings in server-side spfile C:¥ORACLE¥PRODUCT¥11.1.0¥EE2¥DATABASE¥SPFILEORCL.ORA
System parameters with non-default values:
processes = 150
nls_language = "JAPANESE"
nls_territory = "JAPAN"
memory_target = 300M
control_files = "C:¥ORACLE¥ORADATA¥ORCL¥CONTROL01.CTL"
control_files = "C:¥ORACLE¥ORADATA¥ORCL¥CONTROL02.CTL"
control_files = "D:¥ORADATA¥CONTROL03.CTL"
db_block_size = 8192
compatible = "11.1.0.0.0"
db_recovery_file_dest = "G:¥fra"
db_recovery_file_dest_size= 10G
undo_tablespace = "UNDOTBS1"
remote_login_passwordfile= "EXCLUSIVE"
db_domain = ""
dispatchers = "(PROTOCOL=TCP) (SERVICE=ORCLXDB)"
audit_file_dest = "C:¥ORACLE¥ADMIN¥ORCL¥ADUMP"
db_name = "ORCL"
open_cursors = 300
aq_tm_processes = 0
diagnostic_dest = "C:¥ORACLE"
Mon Apr 27 16:49:26 2009
PMON started with pid=2, OS id=2196
この出力は「初期化パラメータ名 = 設定値」という初期化パラメータファイルでの記載フォーマットになっているため、Oracle Database 11.1 以降ではそのまま初期化パラメータファイルに流用できます。
具体的には、上記出力を例にすると、「processes = 150」の箇所から「diagnostic_dest = “C:¥ORACLE”」までの箇所をcopyして行頭の空白をとりのぞいたテキストを、初期化パラメータファイルとして保存すればOKです。
ただし、Oracle Database 10.2以前では、設定値が数値でない初期化パラメータについては、設定値がダブルクオートで囲まれていないことに注意が必要です。初期化パラメータファイルに設定を記載する場合、設定値に特殊文字(’#’:シャープ記号, ‘(‘:左カッコ, ‘)’:右カッコ, ‘”‘:二重引用符, ”’:一重引用符, ‘=’:等号, ‘,’:カンマ, ‘-‘:マイナス記号, ‘\’:バックスラッシュ)が含まれている場合は、ダブルクオートで囲む必要があります。
System parameters with non-default values:
processes = 150
nls_language = JAPANESE
nls_territory = JAPAN
sga_target = 268435456
control_files = C:¥ORACLE¥ORADATA¥O10204¥CONTROL01.CTL, C:¥ORACLE¥ORADATA¥O10204¥CONTROL02.CTL, C:¥ORACLE¥ORADATA¥O10204¥CONTROL03.CTL
db_block_size = 8192
compatible = 10.2.0.3.0
db_file_multiblock_read_count= 16
db_recovery_file_dest = C:¥oracle¥flash_recovery_area
db_recovery_file_dest_size= 6442450944
undo_management = AUTO
undo_tablespace = UNDOTBS1
remote_login_passwordfile= EXCLUSIVE
db_domain =
dispatchers = (PROTOCOL=TCP) (SERVICE=O10204XDB)
job_queue_processes = 10
audit_file_dest = C:¥ORACLE¥ADMIN¥O10204¥ADUMP
background_dump_dest = C:¥ORACLE¥ADMIN¥O10204¥BDUMP
user_dump_dest = C:¥ORACLE¥ADMIN¥O10204¥UDUMP
core_dump_dest = C:¥ORACLE¥ADMIN¥O10204¥CDUMP
db_name = O10204
open_cursors = 300
MMAN started with pid=4, OS id=2916
もちろん、初期化パラメータの設定内容が記載された設計書などのドキュメントがあれば、これも参考にできます。
02.暫定的に作成した初期化パラメータファイルでインスタンスを起動する
上記の手順で作成した初期化パラメータファイルのファイル名を init[ORACLE_SID].ora として、デフォルトの位置(ディレクトリ)に配置します。
- UNIX/Linux $ORACLE_HOME/db
- Windows %ORACLE_HOME%¥database
デフォルトの位置に、spfile[ORACLE_SID].ora、spfile.ora という名前のファイルがある場合、これが優先して読み込まれてしまい、上記の手順で作成した初期化パラメータファイルが読み込まれません。この場合、spfile[ORACLE_SID].ora、spfile.ora のファイル名を他のファイル名にリネームしておきます。
初期化パラメータファイルを適切に配置したら、startupコマンドでインスタンスを起動します。
03.初期化パラメータファイルからサーバーパラメータファイルを作成します
CREATE SPFILE FROM PFILE コマンドを実行して、初期化パラメータファイルからサーバーパラメータファイルを作成します。
SQL> CREATE SPFILE FROM PFILE;
サーバーパラメータファイルはデフォルトの位置にspfile[ORACLE_SID].ora として作成されます。
インスタンスを再起動すると、インスタンスはサーバーパラメータファイルを読み込みます。
読み込みの優先度が低いため、暫定的に作成した初期化パラメータファイルは以後読み込まれません。しかし、混乱を避けるため、削除するか別のファイル名にリネームすることが良いでしょう。