Oracle Databaseの初期化パラメータ

初期化パラメータはオラクル・データベース全体に関わる設定値である。初期化パラメータの設定値を格納するファイルには、テキスト形式の初期化パラメータ・ファイル(PFILE)とバイナリ形式のサーバー・パラメータ・ファイル(SPFILE)という2種類の形式があり、どちらかを使用する。

初期化パラメータ・ファイル(PFILE)

初期化パラメータ・ファイルは、オラクルの初期化パラメータをテキスト形式で格納するファイルである。テキストファイル形式なので、初期化パラメータの設定値をテキストエディタで編集することができる。

初期化パラメータ・ファイルのパス名は $ORACLE_HOME/dbs/initSID.ora または $ORACLE_HOME/dbs/init.ora である。ここで、SID はシステム識別子を表す。たとえば、システム識別子が orcl の場合、初期化パラメータ・ファイルのパス名は $ORACLE_HOME/dbs/initorcl.ora となる。

初期化パラメータの値を変更した際、その変更をオラクル・インスタンスに反映するには、オラクル・インスタンスの再起動が必要となる。

初期化パラメータ・ファイルはサーバー・パラメータ・ファイルから作成することもできる。サーバー・パラメータ・ファイルから初期化パラメータ・ファイルに変換するには、SQL*PlusからCREATE PFILEコマンドを実行する。

CREATE PFILE [= 'pfile_path'] FROM SPFILE [= 'spfile_path']
pfile_path

初期化パラメータ・ファイルのパスを指定する。初期化パラメータ・ファイルのパス指定を省略した場合は、$ORACLE_HOME/dbs/init SID .ora に作成される。

spfile_path

作成するサーバー・パラメータ・ファイルのパスを指定する。サーバー・パラメータ・ファイルのパス指定を省略した場合は、$ORACLE_HOME/dbs/spfile SID .ora からパラメータを読み込む。

サーバー・パラメータ・ファイル(SPFILE)

サーバー・パラメータ・ファイルは、オラクルの初期化パラメータをバイナリ形式で格納するファイルである。ALTER SYSTEM 文を使うことによりパラメータの値を変更することができる。

サーバー・パラメータ・ファイルのパス名は $ORACLE_HOME/dbs/spfileSID.ora または $ORACLE_HOME/dbs/spfile.ora である。

パラメータの種類によっては、設定値を変更する際にオラクル・インスタンスの再起動なしに動的に変更することもできる。

サーバー・パラメータ・ファイルは初期化パラメータ・ファイルから作成することができる。初期化パラメータ・ファイルからサーバー・パラメータ・ファイルに変換するには、SQL*PlusからCREATE SPFILEコマンドを実行する。

CREATE SPFILE [= 'spfile_path'] FROM PFILE [= 'pfile_path']
spfile_path

作成するサーバー・パラメータ・ファイルのパスを指定する。サーバー・パラメータ・ファイルのパス指定を省略した場合は、$ORACLE_HOME/dbs/spfile SID .ora に作成される。

pfile_path

初期化パラメータ・ファイルのパスを指定する。初期化パラメータ・ファイルのパス指定を省略した場合は、$ORACLE_HOME/dbs/init SID .ora からパラメータを読み込む。

PFILEおよびSPFILEが複数存在する場合の優先順位

初期化パラメータ・ファイルおよびサーバー・パラメータ・ファイルが複数存在する場合、優先順位の1番高いものが使用される。初期化パラメータ・ファイルおよびサーバー・パラメータ・ファイルの優先順位を次に示す。

  1. データベース起動時にstartupコマンドのpfileオプションで指定したパラメータ・ファイル
  2. spfileSID.ora
  3. spfile.ora
  4. initSID.ora
  5. init.ora

パラメータの値を確認する

SQL*Plus からSHOW(省略形はSHO)コマンドを使用することで、パラメータの値を確認することができる。

SHO[W] PARAMETER[S] [ パラメータ名 ]

パラメータ名の指定を省略した場合、すべてのパラメータ一覧が表示される。特定のパラメータの値だけを表示するには、パラメータ名を指定する。

パラメータの値を表示する例を次に示す。

$ sqlplus /nolog
SQL> connect / as sysdba
接続されました。
SQL> show parameters sga_target

NAME                 TYPE        VALUE
-------------------- ----------- ------------------------
sga_target           big integer 128M
SQL>

また、OracleデータディクショナリV$SYSTEM_PARAMETER を参照することによっても、パラメータの値を確認することができる。

SQL> SELECT VALUE FROM V$SYSTEM_PARAMETER WHERE NAME = 'sga_target';
134217728

パラメータの値を変更する

パラメータ・ファイル(PFILE)を使用している場合は、テキストエディタでパラメータの値を変更して、オラクルのインスタンスを再起動する。

サーバー・パラメータ・ファイル(SPFFILE)を使用している場合は、ALTER SYSTEM 分を使用してパラメータの値を変更する。

サーバー・パラメータ sga_max_size を変更する例を次に示します。

ALTER SYSTEM SET sga_max_size = 300M SCOPE = spfile;

Oracle Database初期化パラメータの一覧

主な初期化パラメータには、次のようなものがある。

audit_trail
データベースの監査を有効又は無効にする。
audit_trail
説明
NONE データベースの監査を無効にする。(デフォルト)
DB データベースの監査を有効にして、監査レコードをSYS.AUD$テーブルに格納する。
OS データベースの監査を有効にして、監査レコードをファイルに格納する。
XML データベースの監査を有効にして、監査レコードをファイルにXML形式で格納する。

データベースの監査を使用禁止にする手順を示す。

$ sqlplus / as sysdba
SQL> ALTER SYSTEM SET audit_trail = none scope = spfile;
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> TRUNCATE TABLE SYS.AUD$;
background_dump_dest
ALERTログおよびバックグラウンド・トレースの格納場所
control_files
制御ファイル名のリスト
db_block_size
標準ブロックサイズ(バイト単位)。デフォルト値はOSによって異なる。データベース登録時のみ設定することができ、後で変更することはできない。
db_cache_size
データベース・バッファ・キャッシュのサイズ(バイト単位)
db_domain
ネットワークの理論上の位置を表す。分散データベースシステムにおいて、データベース名が同じでもドメインが異なれば別のデータベースと見なされる。たとえば、データベース名がsalesの場合、sales.mycompany.jpとsales.mycompany.comは別のデータベースである。
db_name
データベース名。最大8バイトで、ASCII文字のみを指定できる。
ddl_lock_timeout
DDLの対象がロックされていた場合の待ち時間を指定する。(Oracle 11g以降)
fixed_date
システム日時を一時的に変更する際に設定する
global_names
データベースリンクが接続するデータベースと同じ名前を持つ必要があるかどうかを表す。global_namesがfalseの場合、チェックは行われない。
instance_name
インスタンス名
java_pool_size
Javaプールのサイズ(バイト単位)。SGA_TARGETを指定してSGA領域を自動管理する場合、JAVA_POOL_SIZEの値は0となる。
large_pool_size
ラージ・プールのサイズ(バイト単位)。SGA_TARGETを指定してSGA領域を自動管理する場合、LARGE_POOL_SIZEの値は0となる。
nls_length_semantics
VARCHAR2の最大長及びCHARの長さを指定する際のデフォルトのセマンティクス(長さの単位)をBYTE又はCHARで指定する。
open_links
ひとつのセッションで同時に使えるデータベース・リンクの数
service_names
サービス名
sga_target
SGAに割り当てるメモリサイズ(byte)。この値が設定されている場合、SHARED_POOL_SIZELARGE_POOL_SIZEJAVA_POOL_SIZE、DB_CACHE_SIZEを指定しなくても、OracleがSGAのメモリ管理を自動的に行う。
sga_max_size
最大SGAメモリサイズ(byte)。SGA_TARGETは、この値以内を指定する必要がある。
shared_pool_size
システムグローバル領域(SGA)内の共有プールのサイズ(バイト単位)。SGA_TARGETを指定してSGA領域を自動管理する場合、SHARED_POOL_SIZEの値は0となる。
spfile
サーバー・パラメータ・ファイルのパス
user_dump_dest
ユーザー・トレースの格納場所

初期化パラメータに関わるOracleデータベースの構成図を示す。

システム構成
Figure 1. システム構成