初期化パラメータ設計
初期化パラメータは、オラクル・データベース全体に関わる設定値である。
初期化パラメータの設定値を格納するファイルには、テキスト形式の初期化パラメータ・ファイル(PFILE)とバイナリ形式のサーバー・パラメータ・ファイル(SPFILE)の2種類の形式があり、どちらかを使用して運用する。
初期化パラメータ・ファイル(PFILE)
初期化パラメータ・ファイルは、オラクルの初期化パラメータをテキスト形式で格納するファイルである。テキストファイル形式なので、初期化パラメータの設定値をテキストエディタで編集することができる。
初期化パラメータ・ファイルのパス名は $ORACLE_HOME/dbs/init SID.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/spfile SID.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番高いものが使用される。初期化パラメータ・ファイルおよびサーバー・パラメータ・ファイルの優先順位を次に示す。
- データベース起動時にstartupコマンドのpfileオプションで指定したパラメータ・ファイル
- spfile SID.ora
- spfile.ora
- init SID.ora
- 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 コマンドを使用してパラメータの値を変更する。
ALTER SYSTEM SET parameter=value SCOPE=SPFILE|MEMORY|BOTH
- parameter
-
設定するパラメータの名前を指定する。
- value
-
パラメータに設定する値を指定する。
- SCOPE
-
変更する範囲(スコープ)を指定します。
スコープ 説明 SPFILE サーバパラメータファイルを変更する。現在起動中のインスタンスには影響が無く、再起動するまで反映されない。 MEMORY 現在起動中のインスタンスを変更する。サーバパラメータファイルには影響が無く、再起動すると変更前の値に戻る。 BOTH サーバパラメータファイルと現在起動中のインスタンスを変更する。
サーバー・パラメータ sga_max_sizeを変更する例を次に示します。
SQL> alter system set sga_max_size = 300M scope = spfile;
Oracle Database初期化パラメータの一覧
主な初期化パラメータには、次のようなものがある。
パラメータ | 説明 |
---|---|
audit_trail | データベースの監査を有効又は無効にする。 |
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_SIZEや LARGE_POOL_SIZE、 JAVA_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データベースの構成図を示す。
audit_trail
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$;