19 エンタープライズ・デプロイメントでのサーバー全体の移行とサービスの移行の使用
Oracle WebLogic Serverの移行フレームワークでは、サーバー全体の移行とサービスの移行がサポートされています。次の各項で、これらの機能をOracle Fusion Middlewareエンタープライズ・トポロジで使用する方法について説明します。
- エンタープライズ・デプロイメントでのサーバー全体の移行と自動サービス移行について
Oracle WebLogic Serverは、可用性の高い環境にとって不可欠な要素である移行フレームワークを備えています。次の項では、エンタープライズ・デプロイメントでこのフレームワークを効果的に使用する方法を詳しく説明します。 - リース用のGridLinkデータ・ソースの作成
サーバー全体の移行と自動サービス移行では、リース表のデータ・ソースが必要です。これは、リポジトリ作成ユーティリティ(RCU)によってOracle WebLogic Serverスキーマの一部として自動的に作成される表領域です。 - エンタープライズ・デプロイメント用のサーバー全体の移行の構成
サーバー全体の移行または自動サービス移行用にドメインを準備した後、クラスタ内の特定の管理対象サーバーに対してサーバー全体の移行を構成できます。 - エンタープライズ・デプロイメントでの自動サービス移行の構成
エンタープライズ・デプロイメントで特定のサービスの自動サービス移行を構成する必要がある場合があります。
上位トピック: 「エンタープライズ・デプロイメントの共通の構成および管理手順」
エンタープライズ・デプロイメントでのサーバー全体の移行と自動サービス移行について
Oracle WebLogic Serverは、可用性の高い環境にとって不可欠な要素である移行フレームワークを備えています。次の項では、エンタープライズ・デプロイメントでこのフレームワークを効果的に使用する方法を詳しく説明します。
サーバー全体の移行とサービスの移行の違いの理解
Oracle WebLogic Serverの移行フレームワークでは、次の2つの種類の自動移行をサポートしています。
-
サーバー全体の移行。障害発生時に、管理対象サーバー・インスタンスが別の物理システムに移行されます。
サーバー全体の移行では、別の物理マシン上で、サーバー・インスタンスとそのすべてのサービスが自動的に再起動されます。サーバー移行が構成されているクラスタに属するサーバーで問題が発生すると、そのサーバーは、クラスタのメンバーをホストする他のマシンで再起動されます。
このためには、サーバーはリスニング・アドレスとして浮動IPを使用する必要があり、必要なリソース(トランザクション・ログとJMS永続ストア)が候補マシンで利用できなければなりません。
『Oracle Fusion Middleware Oracle WebLogic Serverクラスタの管理』のサーバー全体の移行に関する項を参照してください。
-
サービスの移行。特定のサービスが、クラスタ内の別の管理対象サーバーに移行されます。
サービスの移行を理解するには、固定サービスを理解することが重要です。
WebLogic Serverクラスタでは、ほとんどのサブシステム・サービスがクラスタ内のすべてのサーバー・インスタンスで均一にホストされます。これにより、サーバー間の透過的なフェイルオーバーが可能になります。対照的に、JMS関連サービスやJTAトランザクション・リカバリ・サービス、ユーザー定義のシングルトン・サービスなどの固定サービスは、クラスタ内の個々のサーバー・インスタンスにホストされます。WebLogic Serverの移行フレームワークは、これらのサービスに対して、フェイルオーバーではなく、サービスの移行による障害回復をサポートしています。
『Oracle Fusion Middleware Oracle WebLogic Serverクラスタの管理』のサービス移行フレームワークの理解に関する項を参照してください。
エンタープライズ・デプロイメントでサーバー全体の移行またはサービスの移行を使用する意味
サーバーまたはサービスが別のシステムで再起動されるときは、必要なリソース(サービス・データ、ログなど)が元のシステムとフェイルオーバー・システムの両方で利用できなければなりません。利用できなければ、サービスは、同じ操作をフェイルオーバー・システムで正常に再開できません。
このような理由から、サーバー全体の移行とサービスの移行の両方で、クラスタのすべてのメンバーが、同一のトランザクションとJMS永続ストア(ファイルベースかデータベースベースかを問わない)にアクセスできる必要があります。
これが、エンタープライズ・デプロイメントで共有記憶域が重要となる、もう1つの理由です。共有記憶域を適切に構成すると、手動フェイルオーバー(管理サーバーのフェイルオーバー)または自動フェイルオーバー(サーバー全体の移行またはサービスの移行)が発生したときに、元のマシンとフェイルオーバー・マシンの両方が、サービスを変更しなくても、確実に同一のファイル・ストアにアクセスできるようになります。
自動サービス移行の場合、固定サービスの再開が必要になったときは、フェイルオーバー前に固定サービスによって使用されていたJMSとJTAのログにアクセスできる必要があります。
サーバー全体の移行の場合、共有記憶域のほかに、仮想IPアドレス(VIP)の入手と割当ても必要になります。管理対象サーバーが別のマシンにフェイルオーバーされると、VIPは新しいマシンに自動的に再割り当てされます。
サービスの移行には、VIPは必要ありません。
リース用のGridLinkデータ・ソースの作成
サーバー全体の移行と自動サービス移行では、リース表のデータ・ソースが必要です。これは、リポジトリ作成ユーティリティ(RCU)によってOracle WebLogic Serverスキーマの一部として自動的に作成される表領域です。
ノート:
データ・ソースの統合および接続使用量の削減を実現するには、データベース・リース用としてWLSSchemaDatasource
をそのまま再使用できます。このデータ・ソースは、リース表が格納されているFMW1221_WLS_RUNTIME
スキーマを使用してすでに構成されています。
エンタープライズ・デプロイメントでは、GridLinkデータ・ソースを作成する必要があります。
エンタープライズ・デプロイメントでのサーバー全体の移行の構成
サーバー全体の移行または自動サービス移行用にドメインを準備した後、クラスタ内の特定の管理対象サーバーに対してサーバー全体の移行を構成できます。
ノート:
前述のように、移行を成功させるには、サーバーがリスニング・アドレスとして浮動IPと一致するホスト名を使用する必要があります。リスニング・アドレスは、構成ウィザードで直接指定したり、管理コンソールで更新したりできます。
wlsifconfig.shスクリプトの環境とスーパーユーザー権限の設定
この項では、wlsifconfig.sh
スクリプトの環境とスーパーユーザー権限を設定します。このスクリプトは、移行中に、IPアドレスをマシンからマシンに転送するために使用します。通常スーパーユーザーのみが利用可能なifconfig
の実行が可能でなければなりません。
wlsifconfig.sh
スクリプトの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverクラスタの管理』のサーバー全体の自動移行の構成に関する項を参照してください。
wlsifconfig.sh
スクリプトを実行するためにシステムを準備する手順は、次の項を参照してください。
wlsifconfig.shスクリプトのPATH環境変数の設定
次の表に記載されているコマンドは、各ホスト・コンピュータのPATH環境変数に必ず含めてください。
ファイル | ディレクトリの場所 |
---|---|
|
MSERVER_HOME/bin/server_migration |
|
WL_HOME/common/bin |
|
MSERVER_HOME/nodemanager |
wlsifconfig.shスクリプトに対する権限の付与
オペレーティング・システム・ユーザー(oracle
)にパスワード制限のないsudo権限を付与し、さらに/sbin/ifconfig
と/sbin/arping
バイナリの実行権限を付与します。
ノート:
セキュリティ上の理由から、sudo
を、wlsifconfig.sh
スクリプトの実行に必要なコマンドのサブセットに限定する必要があります。
この必須の構成タスクを実行するためのsudo権限とsystem権限については、必要に応じてシステム管理者に問い合せてください。
/etc/sudoers内の次のエントリ例では、ifconfig
とarping
を実行するために、oracle
に対してsudo実行権限を付与しています。
Defaults:oracle !requiretty oracle ALL=NOPASSWD: /sbin/ifconfig,/sbin/arping
サーバー移行ターゲットの構成
クラスタ内の移行を構成するには:
-
Oracle WebLogic Server管理コンソールにサインインします。
-
「ドメイン構造」ウィンドウで、「環境」を開き、「クラスタ」を選択します。「クラスタのサマリー」ページが表示されます。
-
移行を構成するクラスタを、表の「名前」列でクリックします。
-
「移行」タブをクリックします。
-
「ロックして編集」をクリックします。
-
「移行基盤」として「データベース」を選択します。ドロップダウン・リストで、「自動移行に使用するデータ・ソース」として「リース」を選択します。
-
「移行可能サーバーの候補マシン」の「使用可能」フィールドでクラスタ内の管理対象サーバーを選択し、右矢印をクリックしてそれらを「選択済み」に移動します。
-
「保存」をクリックします。
-
サーバー移行の候補となるマシンを設定します。管理対象サーバーすべてについてこのタスクを次のように実行する必要があります。
-
Oracle WebLogic Server管理コンソールの「ドメイン構造」ウィンドウで、「環境」を開き、「サーバー」を選択します。
-
移行を構成するサーバーを選択します。
-
「移行」タブをクリックします。
-
「サーバーの自動移行を有効化」を選択し、「保存」をクリックします。
これにより、ノード・マネージャはターゲット・ノード上の障害発生サーバーを自動的に起動できます。
アプリケーションとリソースのターゲット設定の詳細は、「Oracle RACでのマルチ・データ・ソースの使用」を参照してください。
-
「移行の構成」セクションにある「使用可能」フィールドで、移行先のマシンを選択し、右向き矢印をクリックします。
このステップでは、現在のホストを使用できない場合に管理対象サーバーのフェイルオーバー先となるホストを識別します。たとえば、HOST1上の管理対象サーバーではHOST2を選択し、HOST2上の管理対象サーバーではHOST1を選択します。
ヒント:
「サーバーの概要」ページの「この表のカスタマイズ」をクリックし、「現在のマシン」を「使用可能」ウィンドウから「選択済み」ウィンドウへ移動すると、サーバーを実行しているマシンを確認できます。このサーバーが自動的に移行すると、構成と異なる内容になります。
-
-
「変更のアクティブ化」をクリックします。
-
管理サーバーと、サーバー移行が構成されたサーバーを再起動します。
サーバー全体の移行のテスト
この項のステップを実行して、サーバー全体の自動移行が適切に機能していることを確認します。
ノード1からテストするには:
-
管理対象サーバーのプロセスを停止します。
kill -9 pid
pidには、管理対象サーバーのプロセスIDを指定します。次のコマンドを実行すると、ノード内のpidを確認できます。
ps -ef | grep WLS_WCC1
-
ノード・マネージャのコンソール(killコマンドを実行したターミナル・ウィンドウ)を確認します。管理対象サーバーの浮動IPが無効になっていることを示すメッセージが表示されているはずです。
-
ノード・マネージャが管理対象サーバーの2回目の再起動を試行するのを待ちます。ノード・マネージャは30秒間待機してからこの再起動を試行します。
-
ノード・マネージャがサーバーを再起動し、サーバーが実行中状態になる前に、関連するプロセスを再度強制終了します。
サーバーが再びローカルで再起動されないことを示すメッセージがノード・マネージャによってログに記録されるようになります。
ノート:
必要な再起動回数は、次の構成ファイルの
RestartMax
パラメータで設定されます。MSERVER_HOME/servers/WLS_WCC1/data/nodemanager/startup.properties
デフォルト値は
RestartMax=2
です。
ノード2からテストするには:
-
ローカルのノード・マネージャのコンソールを確認します。ノード1で最後に管理対象サーバーの再起動が試行されてから30秒経過した後、ノード2のノード・マネージャによって、管理対象サーバーの浮動IPが有効になっていること、またこのノードでサーバーが再起動されていることが表示されます。
-
同じIPアドレスを使用して、製品URLにアクセスします。このURLに正常にアクセスできると、移行は成功しています。
管理コンソールからの検証
Oracle WebLogic Server管理コンソールを使用して、移行を検証することもできます。
ノート:
サーバーの移行後、そのサーバーを元のマシンにフェイルバックするには、Oracle WebLogic管理コンソールから管理対象サーバーを停止し、再起動します。適切なノード・マネージャが、もともと割り当てられていたマシン上の管理対象サーバーを起動します。
エンタープライズ・デプロイメントでの自動サービス移行の構成
エンタープライズ・デプロイメントで特定のサービスの自動サービス移行を構成する必要がある場合があります。
エンタープライズ・デプロイメント・クラスタでのリース・メカニズムとデータ・ソースの設定
ノート:
データ・ソースの統合および接続使用量の削減を実現するには、データベース・リース用としてWLSSchemaDatasource
データ・ソースをそのまま再使用できます。このデータ・ソースは、リース表が格納されているFMW1221_WLS_RUNTIME
スキーマを使用してすでに構成されています。
次の手順は、WLSSChemaDatasource
または「リース用のGridLinkデータ・ソースの作成」の説明に従って作成したカスタム・データソースを再利用することによってリース・データ・ソースが構成されていることを前提としています。
クラスタ内の管理対象サーバーの移行設定の変更
クラスタのリース・メカニズムとデータ・ソースを設定したら、サービス移行を構成する管理対象サーバーについて自動JTA移行を有効化できます。このトピックが適用されるのは、JTAサービスをエンタープライズ・デプロイメントの一部としてデプロイしている場合のみです。
サービス移行ポリシーの選択について
自動サービス移行を構成するとき、クラスタごとにサービス移行ポリシーを選択します。ここでは、サービス移行ポリシーを選択する際のガイドラインと考慮事項を説明します。
たとえば、シングルトンを実行したりパス・サービスを使用したりする製品またはコンポーネントは、「必ず1回のサービスを自動移行」ポリシーのメリットがあります。このポリシーでは、候補サーバーのリストにある管理対象サーバーが1つ以上動作している場合、この移行可能ターゲットでホストされるサービスは、サーバーが失敗するか管理者によって(正常または強制的に)シャットダウンされた場合に、クラスタ内のいずれかの場所でアクティブ化されます。このために、起動時に1つのサーバーで複数の同じサービスが起動してしまうことがあります。
このポリシーを使用する場合は、クラスタの起動を監視して、各サーバーで実行されているサーバーを識別する必要があります。その後、必要に応じて手動フェイルバックを実行して、システムの構成のバランスを調整できます。
他のFusion Middlewareコンポーネントの方が「障害回復サービスの自動移行」ポリシーに適しています。
これらのガイドラインに基づいて、Oracle WebCenter Contentエンタープライズ・デプロイメントでクラスタに対して「障害回復サービスの自動移行」を使用する必要があります。
『Oracle Fusion Middleware Oracle WebLogic Serverクラスタの管理』の手動および自動のサービス移行ポリシーに関する項を参照してください。
クラスタ内の各管理対象サーバーでのサービス移行ポリシーの設定
自動サービス移行後のサービスのフェイルバック
自動サービス移行が発生した場合、Oracle WebLogic Serverでは、サーバーがオンラインに戻りクラスタに再度参加するときに、サービスが元のサーバーにフェイルバックすることはサポートされません。
そのため、フェイルオーバー中に、自動サービス移行によって特定のJMSサービスがバックアップ・サーバーに移行されたあとは、元のサーバーがオンラインに戻っても、サービスが元のサーバーに移行されることはありません。かわりに、サービスを元のサーバーに手動で移行する必要があります。
サービスを元のサーバーにフェイルバックするには、次のステップを実行します。
-
まだ行っていない場合は、管理コンソールの「チェンジ・センター」で、「ロックして編集」をクリックします。
-
「ドメイン構造」ツリーで、「環境」、「クラスタ」の順に開き、「移行可能なターゲット」を選択します。
-
1つ以上の移行可能なターゲットを一度に移行するには、「移行可能なターゲットのサマリー」ページで次を実行します。
-
「制御」タブをクリックします。
-
チェック・ボックスを使用して、移行する1つまたは複数の移行可能なターゲットを選択します。
-
「移行」をクリックします。
-
「新しいホスト・サーバー」ドロップダウンを使用して、元の管理対象サーバーを選択します。
-
「OK」をクリックします。
JMS関連サービスの移行リクエストが発行されます。「移行可能なターゲット」表の「最後の移行のステータス」列に、リクエストされた移行が成功したのか、失敗したのかが示されます。
-
移行が成功したら、編集ロックを解除します。
-