4.1.5 サーバの切り替え順序制御をする場合の処理の流れ
複数のサーバをグループ化する場合に,グループ内のサーバの切り替え順序を制御できます。ここでは,計画系切り替え,サーバ障害発生時,および系障害発生時のサーバの切り替え順序制御処理の流れと,系切り替えが失敗した場合の動作について説明します。
- 〈この項の構成〉
(1) 計画系切り替え,およびモニタモードのサーバ障害時の順序制御の流れ
計画系切り替え時の,サーバの停止順序,および切り替え先の系でのサーバの起動順序の流れを次の図に示します。この図で示すサーバの親子関係については,「(1) サーバの起動順序と親子関係の対応」を参照してください。
|
次に,図に示した流れの詳細について説明します。番号は,図中の番号と対応しています。
-
実行系に実行サーバ1〜4,待機系に待機サーバ1〜4が起動完了していて,連動系切り替えができる状態です。
-
サーバの系切り替えコマンド(monswapコマンド)を実行して,計画系切り替えを開始します。
-
親子関係上,最も下位のサーバであるサーバ3とサーバ4の停止処理を開始します。サーバ1とサーバ2は停止待ちになります。
なお,サーバ・系の状態表示コマンド(monshowコマンド)を使用すると,サーバ1およびサーバ2の状態は「ONL」と表示されます。「ONL」は実行サーバの起動完了という意味ですが,実際サーバは停止待ち状態であり,コマンドの表示と実際のサーバの状態が異なります。
-
サーバ3とサーバ4は,それぞれ並行して停止処理を実施します。停止処理は「サーバの停止」,「共有リソースの切り離し」の順に処理されます。共有リソースの切り離しが完了すると,待機系に系切り替えのための連絡をします。その後,サーバ3およびサーバ4は親サーバであるサーバ2の系切り替え完了を待つため,サーバ3およびサーバ4が前提サーバの起動待ち状態になります。
なお,サーバ・系の状態表示コマンド(monshowコマンド)を使用すると,サーバ3およびサーバ4の状態は「(ONL)」と表示されます。「(ONL)」は実行サーバの起動中という意味ですが,実際,サーバは前提サーバの起動待ち状態であり,コマンドの表示と実際のサーバの状態が異なります。
-
サーバ3とサーバ4の両方の停止処理が完了すると,続けてそれらの親サーバであるサーバ2の停止処理を開始します。
-
サーバ2の停止処理が完了すると,その親サーバであるサーバ1の停止処理を開始します。
-
最も上位のサーバであるサーバ1の停止処理が完了すると,待機系へ連絡し,まず,サーバ1の系切り替えを開始します。
-
サーバ1が系切り替えによって実行サーバとして起動完了すると,続けて,その子サーバであるサーバ2の系切り替えを開始します。
-
サーバ2の系切り替えが完了すると,その子サーバであるサーバ3,およびサーバ4の系切り替えを並行して開始します。サーバ3およびサーバ4の系切り替えが完了すると,連動系切り替えが完了します。
(2) サーバモードのサーバ障害時の順序制御の流れ
サーバ障害が発生した場合の,サーバの停止順序,および切り替え先の系でのサーバの起動順序の流れを次の二つに分けて説明します。
-
親サーバと子サーバの両方を持つサーバに障害が発生した場合
-
サーバの親子関係で最下位のサーバに障害が発生した場合
これらの図で示すサーバの親子関係については,「(1) サーバの起動順序と親子関係の対応」を参照してください。
(a) 親サーバと子サーバの両方を持つサーバに障害が発生した場合
ここでは,親サーバと子サーバの両方を持つサーバに障害が発生した場合の順序制御の流れを図で示します。
|
次に,図に示した流れの詳細について説明します。番号は,図中の番号と対応しています。
-
実行系に実行サーバ1〜4,待機系に待機サーバ1〜4が起動完了していて,連動系切り替えができる状態です。
-
実行サーバ2に障害が発生すると,連動系切り替えを開始します。
-
障害が発生した実行サーバ2と,親子関係上,最も下位のサーバであるサーバ3とサーバ4の停止処理を開始します。サーバ1は停止待ちになります。
なお,サーバ・系の状態表示コマンド(monshowコマンド)を使用すると,サーバ1の状態は「ONL」と表示されます。「ONL」は実行サーバの起動完了という意味ですが,実際サーバは停止待ち状態であり,コマンドの表示と実際のサーバの状態が異なります。
-
サーバ2〜4は,それぞれ並行して停止処理を実施します。停止処理は「サーバの停止」,「共有リソースの切り離し」の順に処理されます。共有リソースの切り離しが完了すると,待機系に系切り替えのための連絡をします。その後,サーバ2〜4は前提サーバの起動待ち状態になります。
なお,サーバ・系の状態表示コマンド(monshowコマンド)を使用すると,サーバ2〜4の状態は「(ONL)」と表示されます。「(ONL)」は実行サーバの起動中という意味ですが,実際,サーバは前提サーバの起動待ち状態であり,コマンドの表示と実際のサーバの状態が異なります。
-
サーバ2〜4のすべての停止処理が完了すると,最も上位のサーバであるサーバ1の停止処理を開始します。
-
サーバ1の停止処理が完了すると,待機系へ連絡し,まず,サーバ1の系切り替えを開始します。
-
サーバ1の系切り替えが完了すると,その子サーバであるサーバ2の系切り替えを開始します。
-
サーバ2の系切り替えが完了すると,その子サーバであるサーバ3,およびサーバ4の系切り替えを並行して開始します。サーバ3およびサーバ4の系切り替えが完了すると,連動系切り替えが完了します。
(b) サーバの親子関係で最下位のサーバに障害が発生した場合
ここでは,サーバの親子関係で最下位のサーバに障害が発生した場合の起動順序制御の流れを図で示します。
|
次に,図に示した流れの詳細について説明します。番号は,図中の番号と対応しています。
-
実行系に実行サーバ1〜4,待機系に待機サーバ1〜4が起動完了していて,連動系切り替えができる状態です。
-
実行サーバ3に障害が発生すると,連動系切り替えを開始します。
-
親子関係上,最も下位のサーバであるサーバ3とサーバ4の停止処理を開始します。サーバ1とサーバ2は停止待ちになります。
なお,サーバ・系の状態表示コマンド(monshowコマンド)を使用すると,サーバ1およびサーバ2の状態は「ONL」と表示されます。「ONL」は実行サーバの起動完了という意味ですが,実際サーバは停止待ち状態であり,コマンドの表示と実際のサーバの状態が異なります。
-
サーバ3とサーバ4は,それぞれ並行して停止処理を実施します。停止処理は「サーバの停止」,「共有リソースの切り離し」の順に処理されます。共有リソースの切り離しが完了すると,待機系に系切り替えのための連絡をします。その後,サーバ3およびサーバ4は親サーバであるサーバ2の系切り替え完了を待つため,サーバ3およびサーバ4が前提サーバの起動待ち状態になります。
なお,サーバ・系の状態表示コマンド(monshowコマンド)を使用すると,サーバ3およびサーバ4の状態は「(ONL)」と表示されます。「(ONL)」は実行サーバの起動中という意味ですが,実際,サーバは前提サーバの起動待ち状態であり,コマンドの表示と実際のサーバの状態が異なります。
-
サーバ3およびサーバ4両方の停止処理が完了すると,続けて,それらの親サーバであるサーバ2の停止処理を開始します。
-
サーバ2の停止処理が完了すると,その親サーバであるサーバ1の停止処理を開始します。
-
最も上位のサーバであるサーバ1の停止処理が完了すると,待機系へ連絡し,まず,サーバ1の系切り替えを開始します。
-
サーバ1の系切り替えが完了すると,その子サーバであるサーバ2の系切り替えを開始します。
-
サーバ2の系切り替えが完了すると,その子サーバであるサーバ3,およびサーバ4の系切り替えを並行して開始します。サーバ3およびサーバ4の系切り替えが完了すると,連動系切り替えが完了します。
(3) 系障害時の順序制御の流れ
系障害が発生した場合の,サーバの停止順序,および切り替え先の系でのサーバの起動順序の流れを次の図に示します。この図で示すサーバの親子関係については,「(1) サーバの起動順序と親子関係の対応」を参照してください。
|
次に,図に示した流れの詳細について説明します。番号は,図中の番号と対応しています。
-
実行系に実行サーバ1〜4,待機系に待機サーバ1〜4が起動完了していて,連動系切り替えができる状態です。
-
実行系に系障害が発生すると,実行系をリセットし,系切り替えを開始します。
-
親子関係上,最も上位のサーバであるサーバ1の系切り替えを開始します。
-
サーバ1の系切り替えが完了すると,その子サーバであるサーバ2の系切り替えを開始します。
-
サーバ2の系切り替えが完了すると,その子サーバであるサーバ3,およびサーバ4の系切り替えを並行して開始します。サーバ3およびサーバ4の系切り替えが完了すると,連動系切り替えが完了となります。
(4) 系切り替えが失敗した場合の動作
親サーバの系切り替え失敗時には,それ以降の子サーバも系切り替え失敗となり,対応する子サーバの待機サーバも強制停止されます。また,親サーバが切り替え先に存在しない場合は,無視して系切り替えを続行します。
系切り替え時に起動リトライする機能を使用している場合,親サーバが系切り替え失敗後に起動リトライ中となると,子サーバは前提サーバの起動待ち状態のままになります。なお,親サーバが系切り替え完了後に障害が発生して起動リトライ中となった場合,子サーバは起動リトライしません。
(5) 切り替え元の系のサーバについて
-
順序制御機能を使用しているサーバグループで連動系切り替えをする場合,起動途中などで連動系切り替えができない状態のサーバは強制停止します。
-
切り替え元の系では,連動系切り替えで停止するサーバがすべて停止するまで,連動系切り替え中のサーバグループに所属するサーバは起動できません。
-
連動系切り替え中に系切り替え先のサーバが起動に失敗した場合,同一グループのサーバに一つも系切り替えができる待機サーバがなければ,実行サーバ起動失敗による連動系切り替えはしません。
(6) TP1/Server BaseとHiRDBの順序制御をする場合の注意事項
次のすべての条件を満たす場合は,TP1/Server BaseおよびHiRDBが異常終了時に自動的に再起動しない設定にしてください。
-
TP1/Server BaseとHiRDBがサーバモードのサーバである
-
TP1/Server BaseとHiRDBの順序制御をする
-
TP1/Server BaseとHiRDBのswitchtypeオペランドにswitchを指定している
- メモ
-
順序制御機能を使用しているサーバグループのサーバでサーバ対応の環境設定のswitchtypeオペランドにswitchを指定している場合,TP1/Server BaseまたはHiRDBが異常終了時に自動的に再起動しない設定にするには,次のオペランドの指定値に"MANUAL2"を指定します。
-
TP1/Server Baseの場合:システム環境定義のmode_confオペランド
-
HiRDBの場合:システム共通定義のpd_mode_confオペランド
それぞれのオペランドについては,マニュアル分散トランザクション処理機能 OpenTP1 システム定義,またはマニュアルHiRDB システム定義を参照してください。
-