CREATE SPFILE

目的

CREATE SPFILE文を使用すると、従来のプレーンテキストの初期化パラメータ・ファイルまたは現行のシステム全体の設定から、サーバー・パラメータ・ファイルを作成できます。サーバー・パラメータ・ファイルは、サーバーのみに存在し、データベースを起動するためにクライアントからコールされるバイナリ・ファイルです。

サーバー・パラメータ・ファイルを指定すると、個々のパラメータを永続的に変更できます。サーバー・パラメータ・ファイルを使用する場合、新しいパラメータ値を永続化するALTER SYSTEM SET parameter文を指定できます。新しい値は、現行のインスタンスのみでなく、その後で起動するすべてのインスタンスにおいて適用されます。従来のプレーンテキストのパラメータ・ファイルでは、パラメータ値を永続的に変更できません。

サーバー・パラメータ・ファイルは、サーバー上に存在するため、Oracle Databaseによる自動データベースのチューニングおよびRecovery Manager(RMAN)によるバックアップが可能です。

データベースの起動時にサーバー・パラメータ・ファイルを使用するには、CREATE SPFILE文を使用してサーバー・パラメータ・ファイルを作成する必要があります。

Oracle Real Application Clusters環境のすべてのインスタンスは、同じサーバー・パラメータ・ファイルを使用する必要があります。ただし、別途許可されている場合は、個々のインスタンスで、1つのファイル内の同じパラメータの設定値をそれぞれ変えて使用できます。インスタンス固有のパラメータ定義は、SID.parameter = valueで指定します。SIDにはインスタンス識別子を指定します。

サーバー・パラメータ・ファイルを使用したデータベースの起動方法は、作成したサーバー・パラメータ・ファイルをデフォルトで作成したか、または非デフォルトで作成したかによって異なります。サーバー・パラメータ・ファイルの使用方法の例は、「サーバー・パラメータ・ファイルの作成: 例」を参照してください。

CDBにサーバー・パラメータ・ファイルを作成する場合のノート

マルチテナント・コンテナ・データベース(CDB)にサーバー・パラメータ・ファイルを作成する場合、現在のコンテナがルートまたはPDBである可能性があります。

  • 現在のコンテナがルートである場合、rootの初期化パラメータに設定した値が、その他のすべてのコンテナのデフォルト値として使用されます。

  • 現在のコンテナがPDBの場合、データベースはPDBの初期化パラメータ値をファイルにではなく内部的に格納します。このため、spfile_nameを指定できません。PDBの初期化パラメータに設定する値は永続的で、ルートのそれらのパラメータに設定される値をオーバーライドします。

その後ALTER SYSTEM文を使用して、rootまたはPDBの初期化パラメータを変更することができます。

関連項目:

前提条件

この文を実行するには、SYSBACKUPSYSDBASYSDGまたはSYSOPERシステム権限が必要です。この文は、インスタンスの起動前と起動後のいずれかで実行できます。ただし、spfile_nameを使用して、インスタンスがすでに起動済の場合は、この文で同じspfile_nameを指定できません。

CDBにサーバー・パラメータ・ファイルを作成する場合は、現在のコンテナがルートである必要があります。また、共通に付与されているSYSBACKUPSYSDBASYSDGまたはSYSOPERシステム権限が必要です。

構文

セマンティクス

spfile_name

この句を指定すると、作成するサーバー・パラメータ・ファイルの名前を指定できます。

spfile_nameを指定した場合、Oracle Databaseではデフォルト以外のサーバー・パラメータ・ファイルが作成されます。

  • spfile_nameでは、従来のファイル名、Oracle ACFSファイル・システム内のファイルまたはOracle Storage Management (Oracle ASM)ファイル名を指定できます。

  • 従来のファイル名またはOracle ACFSファイル・システム内のファイルを指定した場合、spfile_nameにはパス接頭辞を含めることができます。パス接頭辞を指定しない場合は、データベースによってデフォルトの格納場所(プラットフォームによって異なる)のパス接頭辞が追加されます。

  • Oracle ASMファイル名構文を指定する場合、データベースはOracle ASMディスク・グループにspfileを作成します。

  • デフォルト以外のサーバー・パラメータ・ファイルを使用する場合は、データベースの起動時にSTARTUPコマンドでサーバー・パラメータ・ファイルを指定する必要があります。このルールの例外は次のとおりです。

    • データベースがOracle Clusterwareでリソースとして定義されており、コマンドの発行元のインスタンスが実行中で、spfile_nameFROM PFILE句を指定し、AS COPY句を省略した場合、この文はデータベース・リソース内のSPFILEを自動的に更新します。この場合、サーバー・パラメータ・ファイルを名前で参照せずにデータベースを起動できます。コマンドの発行元のインスタンスが実行中でない場合は、データベース・リソース内のSPFILEを、srvctl modify database -d dbname -spfile spfile_pathを使用して手動で更新する必要があります。

spfile_nameを省略した場合、プラットフォーム固有のデフォルトのサーバー・パラメータ・ファイル名が使用されます。このようなファイルがサーバーにすでに存在する場合、そのファイルは上書きされます。デフォルトのサーバー・パラメータ・ファイルを使用する場合、ファイル名を参照せずにデータベースを起動できます。

spfile_nameの制限事項

PDBへの接続中にサーバー・パラメータ・ファイルを作成する場合は、spfile_nameを指定できません。

関連項目:

  • デフォルトおよびデフォルト以外のサーバー・パラメータ・ファイルを使用したデータベースの起動の詳細は、「サーバー・パラメータ・ファイルの作成: 例」を参照してください。

  • 従来のファイル名およびOracle ASMファイル名の構文についてはfile_specification」を、Oracle ASMファイルの特性の変更の詳細は「ALTER DISKGROUP」を参照してください。

  • デフォルトのパラメータ・ファイル名については、オペレーティング・システム固有のドキュメントを参照してください。

pfile_name

サーバー・パラメータ・ファイルを作成する元になる従来のプレーンテキストの初期化パラメータ・ファイル名を指定します。従来のパラメータ・ファイルは、サーバー上にある必要があります。

  • pfile_nameを指定して、従来のパラメータ・ファイルがオペレーティング・システムのパラメータ・ファイルのデフォルト・ディレクトリに存在しない場合は、フルパス名を指定する必要があります。

  • pfile_nameを指定しない場合、オペレーティング・システムのパラメータ・ファイルのデフォルト・ディレクトリからデフォルトのパラメータ・ファイル名が検索され、使用されます。そのディレクトリにファイルが存在しない場合、エラーが戻されます。

ノート:

Oracle Real Application Clusters環境では、この文でパラメータ・ファイル名を指定してサーバー・パラメータ・ファイルを作成する前に、まず、すべてのインスタンスのパラメータ・ファイルを1つのファイルに結合する必要があります。このステップの実行の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

AS COPY

この句は、データベースがOracle Clusterwareでリソースとして定義されている場合にのみ適用されます。デフォルトでは、spfile_nameFROM PFILE句の両方を指定した場合、CREATE SPFILE文はデータベース・リソース内のSPFILEを自動的に更新します。AS COPYを指定して、データベース・リソース内のSPFILEが更新されるのを回避できます。

MEMORY

MEMORYを指定すると、現行のシステム全体のパラメータ設定を使用してspfileを作成できます。Oracle RAC環境では、作成されたファイルには各インスタンスからのパラメータ設定が含まれます。

サーバー・パラメータ・ファイルの作成: 例

次の例は、従来のプレーンテキストのパラメータ・ファイルt_init1.oraからデフォルトのサーバー・パラメータ・ファイルを作成します。

CREATE SPFILE 
   FROM PFILE = '$ORACLE_HOME/work/t_init1.ora';

ノート:

通常、オペレーティング・システムのパラメータ・ファイルには、フルパスのファイル名を指定する必要があります。

デフォルトのサーバー・パラメータ・ファイルを作成する場合、その後のデータベースの起動は、次のようにPFILEパラメータなしでSQL*PlusのコマンドSTARTUPを実行し、サーバー・パラメータ・ファイルを使用します。

STARTUP

次の例は、従来のプレーンテキストのパラメータ・ファイルt_init1.oraからデフォルト以外のサーバー・パラメータ・ファイルs_params.oraを作成します。

CREATE SPFILE = 's_params.ora' 
   FROM PFILE = '$ORACLE_HOME/work/t_init1.ora';

デフォルト以外のサーバー・パラメータ・ファイルを作成する場合、次の単一行を含む以前のパラメータ・ファイルを最初に作成し、その後でデータベースを起動します。

spfile = 's_params.ora'

このパラメータ・ファイル名は、ご使用のオペレーティング・システムのネーミング規則に従う必要があります。その後、STARTUPコマンドで単一行のパラメータ・ファイルを使用します。次の例では、単一行のパラメータ・ファイルの名前がnew_param.oraであるとした場合のデータベースの起動方法を示します。

STARTUP PFILE=new_param.ora