2.3 パラメータ・ファイル

パラメータ・ファイルは、初期化パラメータのリストおよび各パラメータの値を格納しているファイルです。初期化パラメータをパラメータ・ファイルに指定して、特定のインストールを反映させます。

Oracleは、次の2種類のパラメータ・ファイルをサポートしています。

2.3.1 サーバー・パラメータ・ファイル

サーバー・パラメータ・ファイルは、初期化パラメータのリポジトリとして機能するバイナリ・ファイルです。

サーバー・パラメータ・ファイルは、Oracle Databaseサーバーが稼働しているコンピュータに格納できます。サーバー・パラメータ・ファイルに格納された初期化パラメータは持続性があり、インスタンスの実行中に加えられたパラメータへの変更はインスタンスの停止から起動までの間も持続します。

関連項目:

サーバー・パラメータ・ファイルおよび初期化パラメータ・ファイルの概要と、管理および使用の詳細は、『Oracle Database管理者ガイド』を参照してください。

2.3.2 初期化パラメータ・ファイル

初期化パラメータ・ファイルは、初期化パラメータのリストを含むテキスト・ファイルです。

ノート:

初期化パラメータ・ファイルの値の指定時に使用する文字セットの詳細は、パラメータ値の文字セットについてを参照してください。

次に、初期化パラメータ・ファイルのサンプル・エントリを示します。

PROCESSES = 100
OPEN_LINKS = 12
GLOBAL_NAMES = true

初期化パラメータ・ファイルの名前は、オペレーティング・システムによって異なります。たとえば、この名前に小文字のみが使用されたり、大/小文字の両方が使用されたりします。また、論理名や名前init.oraのバリエーションが含まれる場合もあります。データ・ウェアハウスおよびデータ・マート用の推奨されるパラメータが設定されているinitdw.oraファイルもあります。データベース管理者は、初期化パラメータ・ファイル用に異なるファイル名を選択できます。

初期化パラメータ・ファイルのオペレーティング・システム上でのデフォルトの位置およびファイル名については、オペレーティング・システム固有のOracleマニュアルを参照してください。初期化パラメータ・ファイルは、サーバーを起動するためにクライアント側ツール(たとえば、SQL*Plus)が読み込むファイルです。

サンプル初期化パラメータ・ファイルは、それぞれのオペレーティング・システム用のOracle配布媒体により提供されます。当面の使用には、サンプル・ファイルで間に合いますが、最高のパフォーマンスを得るためにデータベースをチューニングするには、このファイルを変更します。すべての変更は、インスタンスを完全に停止してから再起動することによって有効になります。

2.3.2.1 パラメータ値の文字セットについて

データベース・プラットフォームのデフォルトの文字セットの文字のみがパラメータ値でサポートされています。IBM z/OSおよびFujitsu BS2000を除くすべてのプラットフォームの場合、プラットフォームのデフォルトの文字セットはUS7ASCII (7-bit ASCII)です。

サポートされていない文字を含むパラメータ値が指定された場合、データベースの動作は定義されません。ALTER SYSTEM文を使用してサーバー・パラメータ・ファイルにパラメータ値を指定した場合、サポートされいる文字のみを使用します。サポートされていない文字を含む値が指定された場合、データベースは必ずしもエラーを報告するわけではありません。

初期化パラメータ・ファイルはクライアント側のファイルです。使用した場合、SQL*Plusを起動してデータベース・インスタンスを起動したホストに配置されます。初期化パラメータ・ファイルには、NLS_LANGクライアント設定で指定したとおりにクライアントの文字セットで書き込む必要があります。ただし、パラメータ値には、データベースのデフォルトの文字セットでサポートされない文字を含めないようにしてください。

2.3.2.2 初期化パラメータ・ファイル内の値の指定

この項では、初期化パラメータ・ファイル内のパラメータ値の設定に関する様々な事項について説明します。

2.3.2.2.1 初期化パラメータ・ファイルを管理するルール

この項では、初期化パラメータ・ファイル内のパラメータの仕様を管理するルールについて説明します。

  • 初期化パラメータ・ファイルにはパラメータおよびコメントのみが含まれます。コメントはシャープ記号(#)で始まります。その行のシャープ記号以降の内容は無視されます。

  • コメントには、パラメータ値と同じ文字セットを使用する必要があります。
  • パラメータは任意の順序で指定できます。

  • ファイル名の中で、大/小文字の区別に意味があるのは、ホスト・オペレーティング・システム上で大/小文字の区別に意味がある場合のみです。

  • 1行に複数のパラメータを入力する場合は、次に示すようにパラメータ名と値の間に空白を入れます。

    PROCESSES = 100 CPU_COUNT = 1 OPEN_CURSORS = 10
    
  • パラメータによっては、複数の値を指定できるものもあります(ROLLBACK_SEGMENTSなど)。次に示す例はすべて有効な構文です。

    • 複数の値を入力する場合は、カッコで囲みカンマで区切ります。次にその例を示します。

      ROLLBACK_SEGMENTS = (SEG1, SEG2, SEG3, SEG4, SEG5)
      
    • カッコとカンマを使用せずに複数の値を入力します。次にその例を示します。

      ROLLBACK_SEGMENTS = SEG1 SEG2 SEG3 SEG4 SEG5
      
    • 1行に値を1つずつ入力して、複数の値を指定します。次にその例を示します。

      ROLLBACK_SEGMENTS = SEG1
      ROLLBACK_SEGMENTS = SEG2
      ROLLBACK_SEGMENTS = SEG3
      ROLLBACK_SEGMENTS = SEG4
      ROLLBACK_SEGMENTS = SEG5
      

    1つのパラメータに対する複数の値を複数の行に入力する場合は、そのエントリの行が連続している必要があります。エントリが連続する行にない場合、最初のエントリが適切に処理されません。たとえば、次のエントリでは、SEG3およびSEG4は、SEG1およびSEG2をオーバーライドします。

    ROLLBACK_SEGMENTS = SEG1 SEG2
    OPEN_CURSORS = 10
    ROLLBACK_SEGMENTS = SEG3 SEG4
    
  • エスケープ文字とも呼ばれるバックスラッシュ(\)は、パラメータの指定が継続することを示します。バックスラッシュで行を継続する場合は、次の行頭に空白を入力しないでください。次にその例を示します。

    ROLLBACK_SEGMENTS = (SEG1, SEG2, \
    SEG3, SEG4, SEG5)
    
  • IFILE初期化パラメータを使用すると、現行の初期化パラメータ・ファイルに他の初期化パラメータ・ファイルの内容を埋め込むことができます。

  • パラメータに空白またはタブを含む値を指定する場合は、引用符で囲みます。特に指定がないかぎり、一重引用符または二重引用符を使用できます。次にその例を示します。

    NLS_TERRITORY = 'CZECH REPUBLIC'
    

    ノート:

    初期化パラメータ・ファイルにパラメータをアルファベット順にまとめておいてください。これによって、容易にパラメータを見つけることができ、どのパラメータも確実に1回のみ指定できるようになります。

  • パラメータに特殊文字を含む値を指定する場合は、引用符で囲みます。

関連項目:

  • 初期化パラメータ・ファイルの詳細は、オペレーティング・システム固有のOracleマニュアルを参照してください。

  • IFILE

2.3.2.2.2パラメータ値の式の使用

初期化パラメータの値として式を指定できます。

初期化パラメータの最適値は、システム構成、実行時決定、その他のパラメータの値などの環境特性に依存する場合があります。以前のリリースでは、初期化パラメータを設定する際に絶対値を指定する必要がありました。これは、最適値を維持するために、手動監視および調整が必要であることを意味していました。Oracle Database 20c以降では、環境の変化に応じてデータベースがパラメータ値を自動的に調整できるように、初期化パラメータの値として式を指定できます。

パラメータ値の式の指定は、Oracle Real Application Cluster (Oracle RAC)環境でも役立ちます。すべてのOracle RACインスタンスでパラメータ値に同じ式を指定できますが、式は、現行インスタンスの環境特性を利用してインスタンスごとに評価されます。これにより、データベースが各Oracle RACインスタンスのパラメータ値を微調整できるようになります。

整数または大整数型の初期化パラメータにのみ式を指定できます。

初期化パラメータ式には次の構成を含めることができます。

  1. 整数値

    OLAP_PAGE_POOL_SIZE = 1073741824
  2. 10進値(数値操作の一部である場合のみ)

    CPU_COUNT = 8 * 0.6

    操作が10進値に解決されると、結果は整数値に切り捨てられます。この例では、CPU_COUNT4に設定します。

  3. 整数がKB (kまたはK)、MB (mまたはM)、GB (gまたはG)、TB (tまたはT)、PB (pまたはP)、またはEB (eまたはE)で表現されたインジケータが後に続く整数値

    OLAP_PAGE_POOL_SIZE = 900m
    MEMORY_TARGET = 2G
  4. その他のパラメータ名

    JOB_QUEUE_PROCESSES = PROCESSES
  5. 乗算(*)、除算(/)、法(%)、加算(+)および減算(-)のバイナリ演算子

    SHARED_SERVERS = MAX_SHARED_SERVERS / 2
    DATA_GUARD_MAX_LONGIO_TIME = DATA_GUARD_MAX_IO_TIME + 10 * 3

    演算子の優先順位: 乗算、除算、および法の演算子が最初に左から右に評価された後、加算および減算の演算子が左から右に評価されます。

    式が10進値に解決されると、結果は整数値に切り捨てられます。

  6. カッコ(演算子の優先順位をオーバーライドできます)

    SHARED_SERVERS = (MAX_SHARED_SERVERS - 1) / 2
    DATA_GUARD_MAX_LONGIO_TIME = (DATA_GUARD_MAX_IO_TIME + 10) * 3
  7. MINおよびMAX関数。これらの関数は2つのオペランドを取り、それぞれ最小値と最大値を戻します。

    AQ_TM_PROCESSES = MIN(40, PROCESSES * .1)
    SESSIONS = MAX(200, PROCESSES * 1.5)
  8. 環境変数値。先頭にドル記号($)が必要です

    CPU_COUNT = $SYSTEM_CPU/5

次のいずれかの方法を使用して初期化パラメータを設定する場合は、式を指定できます。

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

  • テキスト初期化パラメータ・ファイル内(例: initORACLE_SID.ora)。

    クライアント側のテキスト初期化パラメータ・ファイル(PFILE)では式を使用できないことに注意してください。

  • SQL文ALTER SESSION SETおよびALTER SYSTEM SET内。この場合、式を一重引用符で囲む必要があります。次にその例を示します。
    ALTER SESSION SET AQ_TM_PROCESSES = 'MIN(40, PROCESSES * .1)';
    ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 'PROCESSES' SCOPE=BOTH;
2.3.2.2.3 パラメータ値での特殊文字の使用

パラメータに特殊文字を含む値を指定する場合は、その特殊文字の前にバックスラッシュを付けるか、またはパラメータ全体を引用符で囲む必要があります。

次のいずれかを使用して、特殊文字を指定できます。

DB_DOMAIN = 'JAPAN.ACME#.COM'

DB_DOMAIN = JAPAN.ACME\#.COM

表2-1に、初期化パラメータ・ファイルで使用できる特殊文字を示します。

表2-1 初期化パラメータ・ファイルの特殊文字

文字 名前 説明

#

シャープ記号

コメント

(

左カッコ

値リストの開始

)

右カッコ

値リストの終了

"

二重引用符

引用符で囲む文字列の開始または終了

'

一重引用符

引用符で囲む文字列の開始または終了

=

等号

キーワードと値のセパレータ

,

カンマ

要素のセパレータ

-

マイナス記号

UNIXスタイルのキーワードの接頭辞

\

バックスラッシュ

エスケープ文字

特殊文字を初期化パラメータ・ファイルでリテラルとして指定する場合は、その特殊文字の前にバックスラッシュを付けるか、またはその特殊文字を含む文字列全体を引用符で囲む必要があります。

2.3.2.2.4 エスケープ文字の使用

初期化パラメータ・ファイルでは、バックスラッシュ(\)は行の継続も表します。英数字の前に指定したバックスラッシュは、通常の文字として扱われます。

英数字以外の文字の前に指定したバックスラッシュは、バックスラッシュまたは継続文字として扱われます。

2.3.2.2.5 引用符の使用方法

初期化パラメータ・ファイルでは、2つの方法を使用して引用符をネストできます。

まず、ネストした文字列に引用符を二重に付ける方法です。次にその例を示します。

NLS_DATE_FORMAT = '''Today is'' MM/DD/YYYY'

次は、一重引用符と二重引用符を交互に付ける方法です。次にその例を示します。

NLS_DATE_FORMAT = '"Today is" MM/DD/YYYY'