注記 : Raw I/O で Oracle を使用する場合は、あらかじめ Raw I/O デバイスを適切にセットアップしておく必要があります。手順については、付録 を参照してください。(Raw I/O は LifeKeeper Single Server Protection のオプションではありません。)
Oracle Recovery Kit を設定する前に以下の準備作業を完了し、必ず各サーバから Oracle が使用するファイルシステムとディスクパーティションをアクセスできるようにしてください。
- 個人用初期化ファイルのプロンプトの削除 。Oracle Recovery Kit が正しく動作するためには、Oracle ユーザの個人用初期化ファイル (つまり、.profile、.bash_profile) のプロンプトをすべて削除 (またはコメントとして除外) する必要があります。このファイルは Oracle ユーザが使用するシェル専用です。対話型にはできません。
注記 : 「stty」ステートメントを個人用初期化ファイルで使用する場合は、対話型ターミナルが使用されているかどうか確認する「if」ステートメントに入れる必要があります。
- カーネルパラメータの設定 。linux カーネルパラメータ(共有メモリやその他のカーネルリソースなど)の設定方法については、Oracle ドキュメンテーションを参照してください。これらのパラメータの設定方法の例を次に示します。
クラスタ内の 各サーバ で次のようにします。
a. LifeKeeper を設定する前に、 /etc/sysctl.conf で次のように ipcs の限度を設定します。
# changes for Oracle
kernel.shmmax = <value>
kernel.shmmni = <value>
kernel.shmall = <value>
kernel.sem = <value>
b. sysctl -p を実行して、上記の変更をカーネルに反映します。
c. 一部のディストリビューションでは、システム初期化ファイル (boot.local または rc.local) に sysctl -p を追加して、再起動のたびに変更をカーネルに反映させる必要があります。
- $ORACLE_HOME ディレクトリ 。 $ORACLE_HOME ディレクトリおよび関連ファイルをローカルディスク上に設定するときは、 $ORACLE_HOME ディレクトリと各ファイルがすべてのサーバで同じになるように設定します。Linux の標準ユーティリティを使用して、ディレクトリとファイルを作成し、各サーバにコピーしてください。
注記 : 一部のアクティブ / アクティブ設定では、 $ORACLE_HOME の場所が異なります。
- 場所 。 $ORACLE_HOME ディレクトリは共有ディスクまたは非共有ディスク上に置くことができます。ディレクトリを共有メディアに置く利点は、 $ORACLE_HOME にも同じ共有ディスクが使用されていれば (例えば、アクティブ / スタンバイ設定など)、パラメータファイルOracle_HOME/dbs/<initSID.ora や spfileSID.ora> の設定が 1 回で済むことです。共有ディレクトリの不利な点は、一度に 1 台のサーバしかファイルシステムへの直接アクセスができないことです。SCSI リザベーションは、LifeKeeper によって保護された共有ドライブへのアクセスを一度に 1 台のサーバにしか許可しません。2 つ以上の Oracle インスタンス (SID) がクラスタ内で個々に保護されるアクティブ / アクティブ設定のクラスタを作成する場合は、 $ORACLE_HOME をローカルの非共有ストレージ上に設定する必要があります。
- ユーザおよびグループ ID 。Oracle ユーザ (oracle) とグループ (dba) をすべてのサーバに作成する必要があります。ユーザ ID とグループ ID の番号は、すべてのサーバで同じになるようにしてください。
- データベース、アーカイブファイル、ログファイル、制御ファイル 。すべてのデータベース、アーカイブファイル、ログファイル、制御ファイルを共有ファイルシステムまたはディスクパーティションに作成する必要があります。これらのロケーションは、Oracle パラメータファイル init<SID>.ora または spfileSID.ora に設定されます。データベースパラメータの編集については、Oracle ドキュメンテーションを参照してください。このパス名は全サーバで同じになるようにしてください。Oracle は内部的にこの情報を制御ファイルに保持しているため、Oracle が稼動中でなければ、SYSTEMS データベースのスペースとパスは変更できません。
注記 : Oracle ログのアーカイブは、デフォルトでは有効になっていません。LifeKeeper Oracle 階層の作成前に有効になっている場合は、LifeKeeper がアーカイブファイルの場所を検知し、必要に応じて別のファイルシステム階層を作成します。しかし、ログアーカイブが LifeKeeper Oracle 階層作成後に有効になる場合は、共有アーカイブロケーションを保護するために手動でファイルシステム階層を作成および拡張し、Oracle リソースからこの新しいファイルシステム階層へ依存関係を作成してください。
注記 : ロック付きのストレージアプリケーションを使用し、NFS マウントオプションへの推奨設定を行う場合には、 rw,nolock,bg,hard,nointr,tcp,nfsvers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 など追加の nolock オプションを SPS で設定する必要があります。
- Oracle の新規インストール時にデータベースインストールプログラムでデータベースを作成しない場合、データベースインスタンスの最後の設定が容易になります。インストーラによってデータベースの作成が求められた場合は、 [No] を選択してください。インストールが完了したら、 Oracle Database Creation Assistant (dbca) を起動してください。dbca は、データベースコンポーネント作成時のインストール先の制御がより優れています。dbca の起動時に、Flash Recovery Area が LifeKeeper で保護するストレージ上に作成されるように指定してください (これは Oracle 11g に適用されます)。
重要: Flash Recovery Destination は、共有ドライブ上に配置してください。
runInstaller でデータベースの作成を行った場合は、手動で Flash Recovery Area を再配置する必要があります。( 注記 : runInstaller でデータベースを作成できるようにはしないでください。)
- runInstaller ユーティリティを使用した Oracle のインストール中、Oracle データベースのインストールに進む前にインストーラが Linux のパッケージおよび設定を確認するポイントがあります。LifeKeeper 7.2 (もしくは、それ以降のバージョン) がインストールされている場合に、ksh パッケージが見つからないというメッセージが表示されます。
このメッセージが表示された場合、画面右上の [Ignore All] にチェックを入れてください。LifeKeeper のインストールにより ksh パッケージが削除され、Public Domain Korn Shell の pdksh に置き換えられます。Oracle のインストールは pdksh を使用してください。
注記 : バージョン 8.0 以降、Oracle ARK では pdksh は必要ありません。ただし、LifeKeeper Core ではまだ pdksh は必要であるため、 [Ignore All] にチェックを入れる必要があります。
注記 : バージョン 8.1 以降の LifeKeeper では、独自の pdksh パッケージが提供されているため、Oracle の ksh の要件と競合しなくなりました。
- データベースエンジンの調整。データの整合性とパフォーマンスのためにデータベースエンジンを調整するときのガイドラインについては、Oracle のマニュアルを参照してください。特に、障害回復能力の向上のためにアプリケーションを最適化するときは、メモリキャッシングとチェックポイントの頻度の調整が重要です。チェックポイントの間隔がディスクにコミットされていないデータベーストランザクションの数を判定し、その結果、システム障害の発生時に失われるデータベーストランザクションの数が決まります。
- oratab ファイルのデータベースエントリ。/etc/oratab ファイルにはデータベースに対応したエントリが必要です。LifeKeeper 設定ルーチンは、このファイルの内容を使用して、 $ORACLE_HOME と $ORACLE_SID の値を関係付けます。通常は、Oracle インストールプログラムが必要なエントリを作成します。ただし、Oracle ソフトウェアが共有ファイルシステムにインストールされた設定では、管理者が oratab ファイルを、Oracle のインストールが実行されたサーバから、他の各サーバの /etc ディレクトリにコピーして、すべてのサーバで利用可能にする必要があります。
注記 : サーバごとに設定可能な oratab は 1 つだけです。ファイルフォーマットについては、「Oracle Product Manual」を参照してください。
注記 : oratab ファイルは /etc などの場所に収容できます。デフォルトでは、Oracle ARK は oratab ファイルをまず /etc で検索した後、 /var/opt/oracle でこのファイルを検索します。このいずれかのデフォルトの場所に oratab ファイルがない場合は、 ORACLE_ORATABLOC を /etc/default/LifeKeeper で oratab が含まれるディレクトリに設定する必要があります。
- 自動スタートアップの無効化。LifeKeeper により制御されるデータベースは LifeKeeper により起動されるため、自動スタートアップアクションはすべて無効にしてください。LifeKeeper は、階層が作成されたときに自動スタートアップを無効にします。これは、oratab ファイルを変更することによって実現されます。
- Listener 設定ファイル、listener.ora。エントリに新しい行を組み込まないでください(例えば、SID_NAME=xx は 1 行にします)。
- Oracle データベースのユーザ名およびパスワード。LifeKeeper はローカルセッションおよび OS 認証を使用して、Oracle データベースを制御します。セキュリティ上の理由からローカル OS 認証をオフにする場合、LifeKeeper は指定されたユーザ名およびパスワードを使用できます。Oracle データベースユーザは、保護されるデーターベースに対して sysdba 権限として接続可能である必要があり、各サーバの Oracle データベースが同一のユーザ名とパスワードを保有している必要があります。この構成がリソースの作成中にスキップされた場合、LifeKeeper は Oracle データベースリソースを制御するためにユーザ名およびパスワードを使用しません。このパラメータはリソース作成後にいつでも追加、変更、削除することが可能です。
LifeKeeper の保護下に置かれたら、LifeKeeper およびデータベースのユーザ権限を sysdba から sysoper に下げることができます。詳細については、Oracle データベースアカウントに対するユーザ名 / パスワードの変更 を参照してください。
Oracle ユーザ名およびパスワードの作成に関する情報
a. Oracle データベースが起動しているノード上で、dba グループの一部であるユーザで Linux にログインしてください。(「oracle」アカウントが最も一般的です。) sqlplus ユーティリティを使用して以下のコマンドを実行し、管理ユーザとしてデーターベースに接続してください。
$ sqlplus / as sysdba
b. この機能に対する新規ユーザを作成してください。
SQL> CREATE USER lkdba IDENTIFIED BY “password”;
c. このユーザに SYSDBA 権限を与えてください。
SQL> GRANT SYSDBA to lkdba;
d. Oracle が設定されると、LifeKeeper クラスタの各ノードが $ORACLE_HOME のローカルコピーを保有するので、クラスタの各ノードでこれらのコマンドを実行してください。LifeKeeper Oracle 階層の作成後、ノード上でデータベースを In Service にし、 CREATE および GRANT コマンド (上記) を実行してOracle でユーザをセットアップしてください。
注意 : 同じファイルシステムに 2 つのデータベースを設定しないでください。どうしてもそうしなければならない場合は、十分な注意が必要です。その場合には、両方のデータベースを LifeKeeper の保護下に置き、両方の階層が同じプライマリサーバとバックアップサーバを持つようにする必要があります。
このトピックへフィードバック