| Oracle® Real Application Clustersインストレーション・ガイド 11gリリース2 (11.2) for Microsoft Windows x64 (64-Bit) B58877-06  | 
  | 
![]() 前  | 
![]() 次  | 
この章では、Oracle Real Application Clusters(Oracle RAC)環境でのサーバー・パラメータ・ファイル(SPFILE)の配置および構成について説明します。この章の内容は次のとおりです。
| 
 関連項目: Oracle RACデータ・ウェアハウス環境のパラメータおよびパラレル実行に関連するパラメータについては、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。 | 
Oracle Databaseは、パラメータ・ファイルのパラメータ設定を使用して、様々なデータベース・リソースの制御方法を決定します。パラメータの管理には、SPFILEまたは1つ以上の従来のクライアント側のパラメータ・ファイル(PFILE)の2種類のファイルを使用できます。SPFILEを使用してパラメータを管理することをお薦めします。クライアント側のパラメータ・ファイルを使用した場合、パフォーマンス・チューニングのために行ったデータベースまたはインスタンスのパラメータの変更は、そのインスタンスの停止後には保持されません。
データベースの作成時に、Oracle DatabaseはSPFILEを作成します。SPFILEは、Oracle Automatic Storage Management(Oracle ASM)ディスク・グループ、クラスタ・ファイル・システムまたは共有RAWデバイスのいずれかに格納できます。Oracle ASMインスタンスでもSPFILEが使用されます。
クラスタ・データベース内のすべてのインスタンスは、起動時に同じSPFILEを使用します。SPFILEはバイナリ・ファイルであるため、エディタを使用してSPFILEを直接編集しないでください。かわりに、Oracle Enterprise ManagerまたはSQL文ALTER SYSTEMを使用して、SPFILEパラメータ設定を変更します。
| 
 注意: セルフ・チューニング・パラメータの値を変更しないことをお薦めします。これらの設定を変更すると、パフォーマンスが著しく低下する場合があります。 | 
Oracle Database 11gリリース2以上のデータベースでは、コマンドsrvctl add/modify database -d db_unique_name -p spfile (spfileはSPFILEのフル・パス名、db_unique_nameはご使用のOracle RACデータベースの一意の名前)で指定される値に基づいて、データベース・エージェントにより自動的にSPFILEがメンテナンスされます。initORACLE_SID.oraファイルを作成またはメンテナンスする必要はありません。
データベースのSPFILEのデフォルトの場所は、次のとおりです。
%ORACLE_HOME%\database\SPFILE%ORACLE_SID%.ORA 
すべてのデータベース・インスタンスが同じSPFILEを使用する必要があるため、SPFILEのデフォルトの場所にローカル記憶域を使用することは、Oracle RACデータベースとOracle ASMインスタンスの場合は適していません。「Oracle RACでのサーバー・パラメータ・ファイルの記憶域要件」を参照してください。
| 
 関連項目: パラメータ・ファイルの管理および変更の詳細は、『Oracle Database管理者ガイド』を参照してください。 | 
DBCAを使用してOracle RACデータベースを作成すると、DBCAによって、SPFILEは、データ・ファイルをクラスタ・ファイル・システムとOracle ASMディスク・グループのどちらに配置するかに応じて、データ・ファイルに割り当てられたクラスタ・ファイル・システムまたはディスク・グループのいずれかに作成されます。
データベースを手動で作成する場合は、SPFILEをPFILEから作成することをお薦めします。
以前のリリースのOracle Databaseからアップグレードする場合は、「パラメータ・ファイルおよびのOracle RACの概要」の項を参照してください。
Oracle RAC環境のすべてのインスタンスで、同じSPFILEを使用する必要があります。SPFILEは、Oracle ASMディスク・グループ、クラスタ・ファイル・システム、ネットワーク・ファイル・システム(NFS)などの共有記憶域に配置します。それ以外の場合は、5MB以上の共有RAWデバイスにSPFILEを配置します(お薦めしません)。
各ノードのローカル記憶域に格納されているパラメータ・ファイルを使用する必要がある場合は、PFILEの使用をお薦めします。PFILEは、次のように場所を指定し、名前を付ける必要があります。
%ORACLE_HOME%\database\init%ORACLE_SID%.ora
このパスは各インスタンス用のものであり、単一の共有されていないPFILEを参照します。PFILEには、次のいずれかのようなエントリが含まれている必要があります(dbnameはOracle RACデータベースの名前)。
汎用命名規則(UNC)の形式を使用してアクセスされる共有記憶域:
SPFILE='\\server\share_name\dbname\spfile.ora'
ネットワーク・ドライブにマップされた共有記憶域:
SPFILE='X:\dbname\spfile.ora'
このSPFILEエントリは、共有記憶域に配置された単一の共有SPFILEから読み取るように各インスタンスに指示します。
Oracle RACは、次の順序でパラメータ・ファイルを検索します。
%ORACLE_HOME%\database\spfile%ORACLE_SID%.ora
%ORACLE_HOME%\database\spfile.ora
%ORACLE_HOME%\database\init%ORACLE_SID%.ora
Oracle RACデータベースに共有のOracleホームがない場合、パラメータ・ファイルのデフォルトの場所は共有されません。したがって、Oracle RACと併用する場合は、デフォルト以外のSPFILEを作成する必要があります。
Oracle RACデータベースでSPFILEを使用していない場合に、この項で説明する手順に従って単一のPFILEを作成して編集すると、SPFILEを使用するように切り替えることができます。
initdbname.oraというファイル名(dbnameは、Oracle RACデータベースの名前)で、Oracle RACデータベースの全インスタンスについて単一のPFILEを作成します。このファイルは、Oracle_home\databaseディレクトリに配置する必要があります。
次の構文を使用して、PFILEファイルからインスタンス固有のすべてのパラメータ定義をコピーします。sid変数はインスタンスのORACLE_SIDです。
sid.parameter=value
たとえば、Oracle RACデータベースの名前がsalesの場合、インスタンスのORACLE_SIDの値は、sales1、sales2のようになり、各PFILEからコピーしたインスタンス固有のパラメータは、次の形式になります。
sales1.LICENSE_MAX_USERS=value sales2.LICENSE_MAX_USERS=value ...
共有IFILEのすべての内容をそのままコピーします。IFILEに定義されているすべてのパラメータはグローバルです。すべてのインスタンスに対して同じ値を持つパラメータも、グローバル・パラメータです。このため、このようなパラメータのエントリは、ORACLE_SID接頭辞なしでparameter=valueという形式で作成します。
| 
 注意: PFILEのIFILEエントリは、現在のパラメータ・ファイルに別のパラメータ・ファイルを埋め込む場合に使用します。このような追加のパラメータ・ファイルを、IFILEと呼びます。 | 
Oracle RACデータベースを停止します。
次の例に示すように、SQL*PlusでCREATE SPFILE文を使用して、結合されたPFILEからSPFILEを作成します。dbnameはOracle RACデータベースの名前で、X:は共有記憶域の場所を表します。
CREATE SPFILE='X:\database\spfiledbname.ora'
FROM PFILE='%ORACLE_HOME%\database\initdbname.ora'
共有記憶域にOracle ASMを使用する場合、次のSQL文を使用してSPFILEを作成します。disk_group_nameはOracle ASMディスク・グループの名前です。db_unique_nameは一意のデータベース名です。sidはOracle RACデータベースのORACLE_SIDです、Oracle_homeはOracleホーム・パスです。initdbname.oraは手順1で作成したファイルです。
CREATE SPFILE='+disk_group_name\db_unique_name\spfiledbname.ora' FROM PFILE='%ORACLE_HOME%\database\initdbname.ora'
CREATE SPFILE SQL文は、PFILEとIFILEをマージして作成したinitdbname.oraファイルを読み取り、パラメータの設定を、PFILEからSPFILEに移します。
各ノードのローカルのinitsid.oraファイルを更新して、新しいSPFILEの場所を指し示すSPFILEエントリを含めます。
SPFILEがデフォルト以外の場所に配置されているため、最初に1つのエントリ(SPFILE)を含む従来のパラメータ・ファイルを使用してデータベースを起動する必要があります。
STARTUP文を使用してOracle RACデータベースを起動し、インスタンスがローカルPFILEを使用する必要があることを指定します。たとえば、Oracle RACデータベースに環境変数ORACLE_HOMEおよびORACLE_SIDを設定している場合、次のようなSQL*Plus文を使用します。ORACLE_SIDはローカルOracle RACデータベース・インスタンスの名前です。
STARTUP PFILE=%ORACLE_HOME%\database\init%ORACLE_SID%.ora
このSTARTUPコマンドを使用すると、Oracle DatabaseはPFILE内のSPFILEパラメータの設定を使用して共有記憶域のデフォルト以外の場所でSPFILEを特定します。
最後に、Oracle RACデータベース構成を更新して、データベースの起動時にローカルPFILEを使用せずに済むようにします。Oracle RACデータベース構成を更新するには、次のコマンドを使用して新しいSPFILEの場所を定義します(db_unique_nameはデータベースの一意の識別子、spfileはSPFILEのフル・パス名(手順5で使用したものと同じ値))。
%ORACLE_HOME%\bin> srvctl modify database -d db_unique_name -p spfile
| 
 注意: Oracle ASM 11gリリース2以上のリリースでは、Oracle ASMインスタンスのSPFILEをOracle ASMに格納できます。Oracle ASMインスタンスのSPFILEを共有ファイル・システムに配置するか、またはOracle ASMインスタンスごとに従来のクライアント側PFILEを使用できます。 | 
| 
 関連項目: Oracle ASMインスタンスの管理方法の詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。 | 
Oracle Databaseは、SPFILEの作成中または起動時のファイルの読取り中に発生するエラーをレポートします。パラメータの更新時にエラーが発生した場合、Oracleはデータベースのアラート・ログ・ファイルにエラーを記録し、ファイルに対するパラメータの残りの更新を行いません。このエラーが発生した場合は、次のいずれかを選択できます。
インスタンスを停止し、SPFILEをリカバリし、インスタンスを再起動する。
残りのパラメータの更新は行わずに、インスタンスの実行を続ける。
Oracle Databaseは、ALTER SYSTEM SET文を誤って使用して行ったパラメータ変更のエラーを表示します。Oracle Databaseは、SPFILEに対する読取りまたは書込み時にエラーが発生した場合に、この処理を行います。
| 
 関連項目: SPFILEのバックアップ方法の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。 |