ablog

不器用で落着きのない技術者のメモ

Oracle RACでのサーバー・パラメータ・ファイルの構成

すべてのインスタンスは同じサーバー・パラメータ・ファイルを使用する必要があるため、ノード上の記憶域を使用する場合、サーバー・パラメータ・ファイルのデフォルトの位置は、Oracle RACデータベースおよびOracle ASMインスタンスには適切ではありません。

このため、次のディレクトリでPFILEを使用することをお薦めします。

$ORACLE_HOME/dbs/init$ORACLE_SID.ora
このパスは各インスタンス用のものであり、単一の共有初期化パラメータ・ファイルを参照します。たとえば、NFS記憶域を使用する場合、LinuxまたはUNIXシステムでは、ファイルに次のようなエントリが必要です。

SPFILE='/nfs/db/oracle_dg/dbspfile'

Oracle Real Application Clusters環境でのサーバー・パラメータ・ファイルの構成

Oracle RAC では SPFILE を共有ストレージに置いて、全ノードで一つの SPFILE を共有すると管理が楽ちん。
例えば、4ノードRACで SPFILE をローカルストレージに置いていると初期化パラメータを変更するときに4回変更しないといけないけど、共有ストレージに置いとけば1回で OK。
具体的には各ノードに PFILE を置いて、PFILE の中で共有ストレージ上の SPFILE のパスを記述すれば OK。
以下はローカルストレージの SPFILE を共有ストレージに移動する手順の例。

[oracle@db01]$ vi /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora
SPFILE='/u02/app/oracle/admin/orcl/spfile/spfileorcl.ora'
[oracle@db01]$ scp -p /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora oracle@db02:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
[oracle@db01]$ srvctl modify database -d orcl -p '/u02/app/oracle/admin/orcl/spfile/spfileorcl.ora'
[oracle@db01]$ srvctl config database -d orcl -a

...

Spfile: /u02/app/oracle/admin/orcl/spfile/spfileorcl.ora

...

[oracle@db01]$ mv /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora /u02/app/oracle/admin/orcl/spfile/
[oracle@db01]$ ssh db02 rm -i /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora 
[oracle@db01]$ srvctl stop database -d orcl -o immediate
[oracle@db01]$ srvctl start database -d orcl