この節の手順では、次の作業を行ないます。
セントラルインスタンス用またはフェイルオーバーアプリケーションサーバー用のロックファイルを設定します。
スケーラブルアプリケーションサーバーのロックファイルを設定します。
ロックファイルは、あるノードで SAP インスタンスがすでに動作しているときに、他のノードで同じインスタンスを起動することを防止するためのものです。同じインスタンスを複数のノードで起動すると、それぞれのインスタンスがクラッシュします。クラッシュが起ると、SAP 停止スクリプトがインスタンスを正常に停止できないため、データに損傷が生じる可能性があります。
ロックファイルが設定されていると、SAP ソフトウェアは、SAP インスタンスの起動時に startup_lockfile ファイルをロックします。ユーザーが同じインスタンスを Sun Cluster 環境の外で起動してから Sun Cluster 環境のもとで SAP を起動すると、Sun Cluster HA for SAP データサービスは同じインスタンスを起動しようとします。しかし、ファイルロック機構が機能しているため、この試みは失敗します。データサービスは、該当するエラーメッセージを /var/adm/messages に書き込みます。
セントラルインスタンスまたはフェイルオーバーアプリケーションサーバーのロックファイルとスケーラブルアプリケーションサーバーのロックファイルとの唯一の違いは、スケーラブルアプリケーションサーバーのロックファイルがローカルファイルシステムにあるのに対し、セントラルインスタンスまたはフェイルオーバーアプリケーションサーバーのロックファイルはクラスタファイルシステムにある点です。
次の手順で、セントラルインスタンスまたはフェイルオーバーアプリケーションサーバー用のロックファイルを設定します。
sapstart 実行ファイルの最新のパッチをインストールします。ロックファイルの設定には、このパッチが必要です。
セントラルインスタンスのロックファイルまたはフェイルオーバーアプリケーションサーバーのロックファイルをクラスタファイルシステム上で作成します。
sapstart がインスタンスの起動に使用するプロファイルを編集し、セントラルインスタンスまたはフェイルオーバーアプリケーションサーバー用に新しい SAP パラメータ sapstart/lockfile を追加します。これは、startsap スクリプトのパラメータとして sapstart に渡されるプロファイルです。
セントラルインスタンスの場合は、次のように入力します。
sapstart/lockfile =/usr/sap/SID/ Service-StringSystem-Number/work/startup_lockfile |
フェイルオーバーアプリケーションサーバーの場合は、次のように入力します。
sapstart/lockfile =/usr/sap/SID/ Dinstance-id/work/startup_lockfile |
新しいパラメータ名
セントラルインスタンスの作業ディレクトリ
フェイルオーバーアプリケーションサーバーの作業ディレクトリ
Sun Cluster HA for SAP が使用するロックファイル名
SAP がロックファイルを作成します。
ロックファイルのパスは、クラスタファイルシステムに配置する必要があります。ロックファイルのパスを各ノードにローカルで配置すると、複数のノードから同じインスタンスが起動されるのを防止できません。
次の手順で、スケーラブルアプリケーションサーバー用のロックファイルを設定します。
sapstart 実行ファイルの最新のパッチをインストールします。ロックファイルの設定には、このパッチが必要です。
アプリケーションサーバーのロックファイルをローカルファイルシステムに設定します。
sapstart がインスタンスの起動に使用するプロファイルを編集し、スケーラブルアプリケーションサーバー用に新しい SAP パラメータ sapstart/lockfile を追加します。これは、startsap スクリプトのパラメータとして sapstart に渡されるプロファイルです。
sapstart/lockfile =/usr/sap/local/SID/Dinstance-id/work/startup_lockfile |
新しいパラメータ名
スケーラブルアプリケーションサーバーの作業ディレクトリ
Sun Cluster HA for SAP が使用するロックファイル名
SAP がロックファイルを作成します。
このロックファイルはローカルファイルシステムに配置されます。したがって、他のノードからの複数の起動を防止することはできませんが、同じノードでの複数の起動は防止できます。