Comments
Description
Transcript
HADR+MSCS 連携構成ガイド 3.運用手順ガイド
® HADR+MSCS 連携構成ガイド 3.運用手順ガイド © Copyright IBM Japan Systems Engineering Co., Ltd. 2009 3. 運用手順ガイド 目次 3.1. 正常起動 3.1.1. 正常起動手順 3.2. メンテナンス停止 3.2.1. 全体停止 3.2.2. 待機系計画停止、再統合 3.2.3. 稼動系計画停止(計画停止)、再統合 3.3. 非計画停止 3.3.1. 稼動系ノード障害、再統合 3.3.2. 稼動系インスタンス障害、再統合 3.3.3. 待機系ノード障害、再統合 3.3.4. 待機系インスタンス障害、再統合 3.4.(参考)Non Peer時の引継ぎ待ち状態からの復旧手順 2 3. 運用手順ガイド 運用手順 表記上の注意 運用手順 表記上の注意 1号機で実施する操作 (水色) C:¥> net start clussvc 2号機で実施する操作 (黄色) C:¥> net start clussvc 両系で実施する操作 (緑色) C:¥> db2start 3 3.1.正常起動 4 3.1.1. 正常起動手順 作業ステップは以下になります 1号機 **凡例** 2号機 Step 1 ・・・ノード (Windows) が起動している状態 MSCS RG ・・・クラスタサービスが起動され、 リソースを持っている状況 MSCS ・・・クラスタサービスが起動され、 リソースを持っていない状態 2号機のHADR起動 1号機 2号機 Step 2 HADR STB 1号機のHADR起動 1号機 2号機 HADR PRI HADR STB HADR PRI ・・・該当DBが稼動しており、 HADR PRIMARY となっている状況 HADR STB ・・・該当DBが稼動しており、 HADR STANDBY となっている状況 Step 3 1号機のMSCS起動 Step 4 1号機 MSCS RG HADR PRI 1号機 2号機 Step 5 2号機のMSCS起動 HADR STB 2号機 MSCS RG MSCS HADR PRI HADR STB 正常稼動状態 5 3.1.1. 正常起動手順 1号機・2号機のOS・HADR起動 Step 1 – 1号機・2号機でOSを起動する。 – 1号機・2号機でtail_hadr_status.bat スクリプトを起動する。 9 スクリプトファイルをダブルクリックしてください。 – tail_hadr_status.bat スクリプトの起動を確認する。 – 確認方法 1).タスクマネージャーからプロセスが 起動されているのを確認(左図参照) 2).スクリプト起動時にコマンドプロンプト 画面が立ち上がるため、画面上で確認 3). ps –ef | grep tail コマンドで確認 スクリプト起動時に画面が立ち上がりますが、画面を 閉じた場合、スクリプトが停止するため、停止時以外に閉 じないようにご注意ください。 6 3.1.1. 正常起動手順 – 1号機・2号機でDB2を起動する。 C:¥> db2start – DB2の起動を確認する。 – 以下のコマンドか、もしくはタスクマネージャーよりdb2syscプロセスが起動されているか どうかご確認ください。 C:¥> db2gcf -s -i HADRINST Instance : HADRINST DB2 State : Available 7 3.1.1. 正常起動手順 1号機・2号機で構成ファイル上のHADR ROLEを確認する。 C:¥> db2 get db cfg for sample | FIND “HADR” 確認例 1号機 C:¥>db2 get db cfg for sample | FIND "HADR" HADR database role = PRIMARY HADR local host name (HADR_LOCAL_HOST) = DB01H HADR local service name (HADR_LOCAL_SVC) = DB2_HADR_P HADR remote host name (HADR_REMOTE_HOST) = DB02H HADR remote service name (HADR_REMOTE_SVC) = DB2_HADR_S HADR instance name of remote server (HADR_REMOTE_INST) = hadrinst 1号機のHADR ROLEが PRIMARY 2号機のHADR ROLEが STANDBYであることを確認 2号機 C:¥>db2 get db cfg for sample | FIND "HADR" HADR database role = STANDBY HADR local host name (HADR_LOCAL_HOST) = DB02H HADR local service name (HADR_LOCAL_SVC) = DB2_HADR_S HADR remote host name (HADR_REMOTE_HOST) = DB01H HADR remote service name (HADR_REMOTE_SVC) = DB2_HADR_P HADR instance name of remote server (HADR_REMOTE_INST) = hadrinst DB構成ファイルにHADR ROLEが保持されている場合、DBを活動化(ACTIVATE)するのみで、 それぞれのROLEに応じたHADRプロセスが起動します。 8 3.1.1. 正常起動手順 スタンバイDBのHADR起動 Step 2 2号機(スタンバイDB)でHADRを起動・確認 C:¥> db2 activate db sample C:¥> db2pd –hadr –db sample (又は) C:¥> db2 get snapshot for db on sample | more (HADR statusの節を確認) 確認例(db2pd) Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:00:41 HADR Information: Role State SyncMode HeartBeatsMissed LogGapRunAvg (bytes) Standby RemoteCatchupPending Nearsync 0 0 ConnectStatus ConnectTime Timeout Disconnected Tue Jan 06 02:16:35 2009 (1231175795) 120 LocalHost DB02H LocalService DB2_HADR_S RemoteHost DB01H RemoteService RemoteInstance DB2_HADR_P hadrinst Role: Standby State: Remote Cathup Pending ConnectionStatus: Disconnected になっていることを確認 PrimaryFile PrimaryPg PrimaryLSN S0000000.LOG 0 0x0000000004C504C6 StandByFile StandByPg StandByLSN S0000014.LOG 536 0x0000000004C504C6 9 3.1.1. 正常起動手順 プライマリDBの順でHADRを起動 Step 3 1号機(プライマリDB)でHADRを起動・確認 C:¥> db2 activate db sample C:¥> db2pd –hadr –db sample (又は) C:¥> db2 get snapshot for db on sample | more (HADR statusの節を確認) 確認例(db2pd) Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:00:13 HADR Information: Role State Primary Peer SyncMode HeartBeatsMissed LogGapRunAvg (bytes) Nearsync 0 0 ConnectStatus ConnectTime Timeout Connected Tue Jan 06 02:18:57 2009 (1231175937) 120 LocalHost DB01H LocalService DB2_HADR_P RemoteHost DB02H RemoteService RemoteInstance DB2_HADR_S hadrinst Role: Primary State: Peer ConnectionStatus: Connected になっていることを確認 PrimaryFile PrimaryPg PrimaryLSN S0000015.LOG 0 0x0000000004E20000 StandByFile StandByPg StandByLSN S0000014.LOG 536 0x0000000004C504C6 10 3.1.1. 正常起動手順 2号機の、hadr_peer_status.flg ファイルを確認する ファイルのタイムスタンプの更新を確認 ファイルに0が書き出されているのを確認 – 以下のコマンドか、またはWordPadで開き確認してください。 C:¥mscs>type hadr_peer_status.flg 0 “0”である場合にHADRがPEER状態であること を示す。PRIMARYがPEERになったことを STANDBYに通知するためにフラッグを立てる。 11 3.1.1. 正常起動手順 クラスタサービスの開始 1号機→2号機の順に開始 以下のコマンド、またはサービス画面よりクラスタサービスを開始させる。 Step 4 C:¥> net start clussvc 9 クラスタリソースを1号機が保持していることを確認。 Step 5 C:¥> net start clussvc 9 2号機からクラスタサービスを開始させた場合、リソースを2号機が保持してしまうため、起動順序に注意してください。 サービス画面より起動す る場合は、右図のように Cluster Serviceを右ク リックして「開始」を選択 してください。 12 3.1.1. 正常起動手順 クラスタ アドミニストレーター画面より、リソースを1号機が所有し、オンラインになってい ることを確認 両ノードから確認可能 13 3.2.メンテナンス停止 14 3.2.1. 全体停止 **凡例** ・・・ノード (Windows) が起動している状態 作業ステップは以下になります(計画停止時のみ) 1号機 Step 1 MSCS RG HADR PRI 2号機 Step 2 ・・・クラスタサービスが起動され、 リソースを持っている状況 MSCS ・・・クラスタサービスが起動され、 リソースを持っていない状態 MSCS HADR STB 正常稼動状態 2号機のMSCS停止 1号機 MSCS RG HADR PRI ・・・該当DBが稼動しており、 HADR PRIMARY となっている状況 HADR STB ・・・該当DBが稼動しており、 HADR STANDBY となっている状況 2号機 MSCS RG HADR PRI HADR STB 1号機のMSCS停止 1号機 2号機 HADR PRI HADR STB Step 3 1号機のHADR・DB2t停止 Step 4 1号機 Step 5 2号機 1号機 2号機 2号機のHADR・DB2停止 HADR STB 15 3.2.1. 全体停止 Step 1 クラスタ アドミニストレーター画面より、リソースを1号機が所有し、オンラインになってい ることを確認 両ノードから確認可能 16 3.2.1. 全体停止 クラスタサービスの停止 2号機→1号機の順に停止 以下のコマンド、またはサービス画面よりクラスタサービスを停止させる。 Step 2 C:¥> net stop clussvc Step 3 C:¥> net stop clussvc 1号機からクラスタサービスを停止させた場合、リソースが2号機に引き継がれてしまうため、停止順序に注意してください。 17 3.2.1. 全体停止 プライマリDB→スタンバイDBの順でHADRを停止 プライマリDB側でHADRを停止する。 Step 4 C:¥> db2 deactivate db sample スタンバイDB側でHADRを停止する。 Step 5 C:¥> db2 deactivate db sample deactivateされているかの確認は、 deactivateコマンド実行時にエラー メッセージが返らないことをもって確 認とする。 1号機・2号機でDB2を停止する。 C:¥> db2stop 1号機・2号機でDB2の停止を確認する。 以下のコマンドか、もしくはタスクマネージャーよりdb2syscプロセスの停止を確認してください。 C:¥> db2gcf -s -i HADRINST Instance : HADRINST DB2 State : Operable 1号機・2号機でOSを停止する。 ※以降、両系のOSの再起動を行う クラスタの再開手順は、” 3.1.1.正常起動手順” 章の内容を参照 18 3.2.2. 待機系計画停止、再統合 **凡例** 流れ 1号機 ・・・ノード (Windows) が起動している状態 2号機 MSCS RG MSCS HADR PRI HADR STB 正常稼動状態 MSCS RG ・・・クラスタサービスが起動され、 リソースを持っている状況 MSCS ・・・クラスタサービスが起動され、 リソースを持っていない状態 2号機MSCS停止 Step 1 1号機 ・・・該当DBが稼動しており、 HADR PRIMARY となっている状況 HADR STB ・・・該当DBが稼動しており、 HADR STANDBY となっている状況 2号機 MSCS RG HADR PRI HADR PRI HADR STB 2号機HADR・DB2停止 Step 2 1号機 2号機 MSCS RG HADR PRI 2号機HADR・DB2起動 Step 3 1号機 2号機 2号機のMSCS起動 MSCS RG HADR PRI Step 4 HADR PRI 1号機 2号機 MSCS RG MSCS HADR PRI HADR STB 正常稼動状態 19 3.2.2. 待機系計画停止、再統合 Step 1 2号機のクラスタサービス、DB2停止 クラスタ アドミニストレーター画面より、リソースを1号機が所有し、オンラインになってい ることを確認 両ノードから確認可能 ※1号機が稼動系である状態を前提とします。 20 3.2.2. 待機系計画停止、再統合 2号機のクラスタサービスを停止 C:¥> net stop clussvc Cluster Service サービスを停止中です.. Cluster Service サービスは正常に停止されました。 2号機での出力結果 21 3.2.2. 待機系計画停止、再統合 Step 2 2号機でHADRを停止する。 C:¥> db2 deactivate db sample 2号機でDB2を停止する。 C:¥> db2stop 2号機でOSを停止する。 2号機のメンテナンス作業 必要に応じてOSの再起動 22 3.2.2. 待機系計画停止、再統合 Step 3 2号機の再統合 HADRの再開 2号機のOS起動 2号機でtail_hadr_status.bat スクリプトを起動する。 2号機のDB2起動 C:¥> db2start 2号機でDB2起動を確認 C:¥> db2gcf -s -i HADRINST Instance : HADRINST DB2 State : Operable 2号機で構成ファイル上のHADRのRoleを確認 C:¥> db2 get db cfg for sample | FIND “HADR” 以下が表示されることを確認。 HADR database role = STANDBY 2号機でHADRを起動 C:¥> db2 activate db sample 23 3.2.2. 待機系計画停止、再統合 2号機でHADRの起動を確認する。 稼動系(1号機)で実行された差分のログをキャッチアップして適用する(ローカル・キャッチ アップからリモートキャッチアップを経てPeerになる)ため、時間を要することがあります。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Standby State : Peer ConnectStatus : Connected 24 3.2.2. 待機系計画停止、再統合 Step 4 2号機のクラスタサービスの開始 以下のコマンド、またはサービス画面よりクラスタサービスを開始させる。 C:¥> net start clussvc ※ ここまでの操作で、通常の2ノード・クラスタ状態に戻る。 25 3.2.3. 稼動系計画停止、再統合 **凡例** ・・・ノード (Windows) が起動している状態 流れ 1号機 2号機 MSCS RG MSCS HADR PRI HADR STB 正常稼動状態 稼動系の計画切り替え 1号機 Step 1 2号機 MSCS MSCS RG HADR PRI HADR STB 1号機のMSCS,HADR停止 1号機 Step 2 ・・・クラスタサービスが起動され、 リソースを持っている状況 MSCS ・・・クラスタサービスが起動され、 リソースを持っていない状態 HADR PRI ・・・該当DBが稼動しており、 HADR PRIMARY となっている状況 HADR STB ・・・該当DBが稼動しており、 HADR STANDBY となっている状況 1号機のMSCS起動 2号機 MSCS RG MSCS RG Step 4 1号機 2号機 MSCS MSCS RG HADR PRI HADR STB 正常稼動状態 HADR PRI 1号機のHADR開始 Step 3 1号機 MSCS RG HADR PRI 稼動系の切り戻し 2号機 Step 5 1号機 2号機 MSCS RG MSCS HADR PRI HADR STB 実施は任意 HADR PRI 26 ※1号機が稼動系である状態を前提とします。 3.2.3. 稼動系計画停止(計画停止)、再統合 Step 1 リソースグループの状況をクラスタアドミニストレーターから確認する クラスタアドミニストレーターの画面より、リソースがオンラインになっていることを確認す る 両ノードから確認可能 27 3.2.3. 稼動系計画停止(計画停止)、再統合 1号機でのサービス停止と切り替え サービス計画切り替え(リソースの移動) スクリプトで実行が必須 クラスタアドミニストレータで グループの移動では不可 – 2号機から planned_takeover.bat を実行し、リソースを1号機から2号機へ移動させ る。(このシェルでは、内部的に計画切り替えを識別するフラグを記述し、cluster group /moveコマンドを実行している) クラスタアドミニストレーター画面より、 リソースが2号機に切り替わりオンラインになった ことを確認 28 3.2.3. 稼動系計画停止(計画停止)、再統合 リソースグループの移動に伴いDB2 TAKEOVER HADRが実行されたことを確認する。(1号機で 確認) 確認例 C:¥> db2pd –hadr –db sample (又は) C:¥> db2 get snapshot for db on sample | more (HADR statusの節を確認) Role: Standby State: Peer ConnectionStatus: Connected になっていることを確認 Step 2 1号機の停止、OS再起動 クラスタサービス、HADR、DB2の順に停止 – 停止手順、確認方法は3.2.1章と同様 メンテナンス作業を実施 29 3.2.3. 稼動系計画停止(計画停止)、再統合 1号機の再統合 Step 3 1号機のOS起動 1号機でtail_hadr_status.bat スクリプトを起動する。 1号機のDB2起動 C:¥> db2start 1号機で構成ファイル上のHADRのRoleを確認 C:¥> db2 get db cfg for sample | FIND “HADR” 以下が表示されることを確認。 HADR database role = STANDBY 1号機でHADRを起動 C:¥> db2 activate db sample Step 4 1号機のクラスタサービスを起動 C:¥> net start clussvc 30 3.2.3. 稼動系計画停止(計画停止)、再統合 再統合 サービスの切り替え(実施は任意) Step 5 サービス計画切り替え(リソースの移動) – 1号機から planned_takeover.bat を実行し、リソースを2号機から1号機へ移動させ る。(このシェルでは、内部的に計画切り替えを識別するフラグを記述し、cluster group /moveコマンドを実行している) クラスタアドミニストレーター画面より、 リソースが1号機に切り替わり、オンラインになっ たことを確認 31 3.2.3. 稼動系計画停止(計画停止)、再統合 DB2 TAKEOVER HADRが実行され正常に切り替わったことを確認する 1号機でHADRの状態を確認する。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Primary State : Peer ConnectStatus : Connected 2号機でHADRの状態を確認する。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Standby State : Peer ConnectStatus : Connected 32 3.3. 非計画停止からの復旧手順 33 3.3.1. 稼動系ノード障害、再統合 **凡例** ・・・ノード (Windows) が起動している状態 流れ 1号機 2号機 MSCS RG MSCS HADR PRI HADR STB 稼動系のOS障害 1号機 2号機 正常稼動状態 2号機にリソース・グループ が引き継がれHADRロール がPRIMARYに変更される MSCS RG ・・・クラスタサービスが起動され、 リソースを持っている状況 MSCS ・・・クラスタサービスが起動され、 リソースを持っていない状態 HADR PRI ・・・該当DBが稼動しており、 HADR PRIMARY となっている状況 HADR STB ・・・該当DBが稼動しており、 HADR STANDBY となっている状況 MSCS RG Down HADR PRI 1号機OSの再起動 Step 1 1号機 2号機 1号機のMSCS起動 Step 3 1号機 2号機 MSCS MSCS RG HADR STB HADR PRI MSCS RG HADR PRI 1号機のHADR開始 Step 2 1号機 2号機 Step 4 稼動系の計画切り替え 1号機 2号機 MSCS RG HADR STB MSCS RG MSCS HADR PRI HADR STB 正常稼動状態 HADR PRI 34 3.3.1. 稼動系ノード障害、再統合 リソースの確認 障害発生後、2号機にリソースが正常に引き継がれたことを、クラスタアドミニストレーターから 確認 クラスタアドミニストレーター画面より、 リソースが2号機に切り替わり、オンラインになっ たことを確認 ※1号機が稼働系の状況から、1号機のOS全面障害発生後、2号機に引 継ぎが完了し、正常にサービスが提供されている状態を前提とします。 35 3.3.1. 稼動系ノード障害、再統合 DB2 TAKEOVER HADRが実行され正常に切り替わったことを確認する 2号機でHADRの状態を確認する。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Primary State : Disconnected ConnectStatus : Disconnected 36 3.3.1. 稼動系ノード障害、再統合 1号機の再統合 Step 1 1号機のOSが停止されている場合は、再起動 1号機でtail_hadr_status.bat スクリプトを起動する。 Step 2 1号機のDB2起動 C:¥> db2start 1号機でHADRを起動 C:¥> db2 start hadr on db sample as standby HADRが正常に起動されたことを確認 C:¥> db2pd –hadr –db sample (又は) C:¥> db2 get snapshot for db on sample | more (HADR statusの節を確認) Role: Standby State: Peer ConnectionStatus: Connected になっていることを確認 37 3.3.1. 稼動系ノード障害、再統合 再統合 サービスの切り替え Step 3 1号機のクラスタサービスの開始 C:¥> net start clussvc Step 4 サービス計画切り替え(リソースの移動) – 1号機から planned_takeover.bat を実行し、リソースを2号機から1号機へ移動させ る。 – クラスタアドミニストレーター画面より、1号機にリソースが移動し、オンラインになっ たことを確認する。 DB2 TAKEOVER HADRが実行され正常に切り替わったことを確認 – HADRの状況を、db2pdで確認する。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Primary State : Peer ConnectStatus : Connected 38 3.3.2. 稼動系インスタンス障害、再統合 **凡例** 流れ 1号機 ・・・ノード (Windows) が起動している状態 2号機 MSCS RG MSCS HADR PRI HADR STB MSCS RG ・・・クラスタサービスが起動され、 リソースを持っている状況 MSCS ・・・クラスタサービスが起動され、 リソースを持っていない状態 正常稼動状態 稼動系のインスタンス障害・再起動失敗 1号機 2号機 2号機にリソース・グ ループが引き継がれる MSCS RG Down HADR PRI ・・・該当DBが稼動しており、 HADR PRIMARY となっている状況 HADR STB ・・・該当DBが稼動しており、 HADR STANDBY となっている状況 HADR PRI 1号機のHADR開始 Step 1 1号機 2号機 MSCS RG HADR STB HADR PRI 1号機のMSCS起動 Step 2 1号機 2号機 MSCS MSCS RG HADR STB HADR PRI Step 3 1号機 稼動系の計画切り替え 2号機 MSCS RG MSCS HADR PRI HADR STB 正常稼動状態 39 3.3.2. 稼動系インスタンス障害、再統合 インスタンス障害 db2hadr_mscs.bat では、インスタンスの状況をモニタリングしていますが、インスタンスが停 止していた場合、一度再起動を行う – インスタンスの再起動に失敗した場合、2号機にリソースが引き継がれます ※以降の手順は、1号機が稼働系の状況から、1号機のインスタンス障害発生、再起動失 敗後、2号機に引継ぎが完了し、正常にサービスが提供されている状態を前提とします。 リソースの確認 障害発生後、2号機にリソースが正常に引き継がれたことを、クラスタアドミニストレーターから 確認 クラスタアドミニストレーター画面より、 リソースが2号機に切り替わり、オンラインになっ たことを確認 40 3.3.2. 稼動系インスタンス障害、再統合 DB2 TAKEOVER HADRが実行され正常に切り替わったことを確認する 2号機でHADRの状態を確認する。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Primary State : Disconnected ConnectStatus : Disconnected 41 3.3.2. 稼動系インスタンス障害、再統合 1号機の再統合 Step 1 1号機のDB2起動 C:¥> db2start 1号機でHADRをStandbyで起動 C:¥> db2 start hadr on db sample as standby HADRが正常に起動されたことを確認 C:¥> db2pd –hadr –db sample (又は) C:¥> db2 get snapshot for db on sample | more (HADR statusの節を確認) Role: Standby State: Peer ConnectionStatus: Connected になっていることを確認 42 3.3.2. 稼動系インスタンス障害、再統合 再統合 サービスの切り替え Step 2 1号機のクラスタサービスの開始 C:¥> net start clussvc Step 3 サービス計画切り替え(リソースの移動) – 1号機から planned_takeover.bat を実行し、リソースを2号機から1号機へ移動させ る。 – クラスタアドミニストレーター画面より、1号機にリソースが移動し、オンラインになっ たことを確認する。 DB2 TAKEOVER HADRが実行され正常に切り替わったことを確認 – HADRの状況を、db2pdで確認する。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Primary State : Peer ConnectStatus : Connected 43 3.3.3. 待機系ノード障害、再統合 **凡例** 流れ 1号機 ・・・ノード (Windows) が起動している状態 2号機 MSCS RG MSCS HADR PRI HADR STB MSCS RG ・・・クラスタサービスが起動され、 リソースを持っている状況 MSCS ・・・クラスタサービスが起動され、 リソースを持っていない状態 正常稼動状態 2号機のノード障害 1号機 ・・・該当DBが稼動しており、 HADR PRIMARY となっている状況 HADR STB ・・・該当DBが稼動しており、 HADR STANDBY となっている状況 2号機 MSCS RG HADR STB HADR PRI Down 2号機OSの再起動 Step 1 1号機 2号機 MSCS RG HADR PRI 2号機のHADR開始 Step 2 1号機 2号機 Step 3 MSCS RG 1号機 2号機 MSCS RG MSCS HADR PRI HADR STB 2号機のMSCS起動 HADR PRI HADR STB 正常稼動状態 44 3.3.3. 待機系ノード障害、再統合 状況の確認 待機系ノードがダウンした場合でも、db2hadr_mscs.bat では、2号機のノードの様子をモニタリン グしているわけではないため、1号機サービスは継続されます 障害の状況によっては、HADRを再構築する必要があります。 クラスタアドミニストレータ画面より、2号機のノード障害を確認 クラスタアドミニストレーター画面から、2号機が ダウンしていることが分かります 45 3.3.3. 待機系ノード障害、再統合 2号機の再統合 HADRの再開 Step 1 2号機のOS起動 2号機でtail_hadr_status.bat スクリプトを起動する。 2号機のDB2起動 C:¥> db2start 2号機でDB2起動を確認 C:¥> db2gcf -s -i HADRINST Instance : HADRINST DB2 State : Operable Step 2 2号機でHADRを起動 C:¥> db2 activate db sample 46 3.3.3. 待機系ノード障害、再統合 2号機でHADRの起動を確認する。 稼動系(1号機)で実行された差分のログをキャッチアップして適用する(ローカル・キャッチ アップからリモートキャッチアップを経てPeerになる)ため、時間を要することがあります。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Standby State : Peer ConnectStatus : Connected 47 3.3.3. 待機系ノード障害、再統合 2号機のクラスタサービスの開始 Step 3 以下のコマンド、またはサービス画面よりクラスタサービスを開始させる。 C:¥> net start clussvc ※ ここまでの操作で、通常の2ノード・クラスタ状態に戻る。 48 3.3.4. 待機系インスタンス障害、再統合 **凡例** 流れ 1号機 ・・・ノード (Windows) が起動している状態 2号機 MSCS RG MSCS HADR PRI HADR STB MSCS RG ・・・クラスタサービスが起動され、 リソースを持っている状況 MSCS ・・・クラスタサービスが起動され、 リソースを持っていない状態 正常稼動状態 2号機のインスタンス障害 1号機 ・・・該当DBが稼動しており、 HADR PRIMARY となっている状況 HADR STB ・・・該当DBが稼動しており、 HADR STANDBY となっている状況 2号機 MSCS RG HADR STB HADR PRI Down 2号機のHADR開始 1号機 Step 1 2号機 MSCS RG HADR PRI HADR STB 2号機のMSCS開始 Step 2 1号機 2号機 MSCS RG MSCS HADR PRI HADR STB 正常稼動状態 49 3.3.4. 待機系インスタンス障害、再統合 状況の確認 待機系ノード障害のケースと同じく、1号機のサービスには影響はなく、自動的にアクションが とられることはありません。 また障害の状況によっては、HADRを再構築する必要があります。 1号機でHADRの状態を確認する。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Primary State : Disconnected ConnectStatus : Disconnected 50 3.3.4. 待機系インスタンス障害、再統合 2号機の再統合 HADRの再開 Step 1 2号機のDB2起動 C:¥> db2start 2号機でDB2起動を確認 C:¥> db2gcf -s -i HADRINST Instance : HADRINST DB2 State : Operable 2号機で構成ファイル上のHADRのRoleを確認 C:¥> db2 get db cfg for sample | FIND “HADR” 以下が表示されることを確認。 HADR database role = STANDBY 2号機でHADRを起動 C:¥> db2 activate db sample 51 3.3.4. 待機系インスタンス障害、再統合 2号機でHADRの起動を確認する。 稼動系(1号機)で実行された差分のログをキャッチアップして適用する(ローカル・キャッチ アップからリモートキャッチアップを経てPeerになる)ため、時間を要することがあります。 C:¥> db2pd -hadr -db sample 以下が表示されることを確認。 Role : Standby State : Peer ConnectStatus : Connected 52 3.3.4. 待機系インスタンス障害、再統合 2号機のクラスタサービスの開始 Step 2 以下のコマンド、またはサービス画面よりクラスタサービスを開始させる。 C:¥> net start clussvc ※ ここまでの操作で、通常の2ノード・クラスタ状態に戻る。 53 3.4. (参考) Non Peer時の引継ぎ待ち状態 からの復旧手順 54 参考 Non Peer時の引継ぎ待ち状態からの復旧手順 本資料のdb2mscs_hadr.bat では、引継ぎ時に直前のHADRの状態を確認し、PEER 状態でなかった場合には、データ損失の恐れがあるため、引継ぎ処理を行わず、ユー ザーの判断を仰ぎます。ここでは、そのような場合の対応策について説明します。 状況 以下のメッセージがデフォルトでスクリプトのログ上に出力されます 「UNEXPECTED STATUS CALL ADMINISTRATORS」 9 画面上へのポップアップとして出力やイベントビューアーへの出力も可能です。 ご要件に応じて、スクリプトのコメントアウト箇所を変更してください。 正常稼動状態から、1号機が何らかの障害によりダウンし、引継ぎが発生したものの、 HADRがPeer状態ではないため、HADRがTakeoverされずユーザー判断待ち状態にな ります。 クラスタ・リソースが2号機にあり、HADR引継ぎスクリプトはオフラインの状態になってい ます。HADRのTakeoverは実行されていないため、プライマリーDBは1 号機になってい ます。 55 参考 Non Peer時の引継ぎ待ち状態からの復旧手順 対応策① 「データロストを無視して待機系にサービスを引き継ぎたい場合」 2号機でサービスを継続 手順 – 1. Takeover by force コマンドで、2号機DBをプライマリーにする – 2. HADR引継ぎスクリプトリソースをオンラインにする – 3. 2号機DBのBackup取得 – 4. 1号機DBをDROPし、2号機で取得したBackupを1号機にRestoreする – 5. 1号機にRestoreしたDBのHADR関連パラメーターを設定 – 6. 1号機DBがRollforward Pending状態で start hadr as standby で起動 – 7. Peer状態になった事を確認 56 参考 Non Peer時の引継ぎ待ち状態からの復旧手順 対応策② 「データロストを回避するためにPeer状態に戻す場合」 1号機でサービスを継続 手順 – 1. 1号機で障害対応 – 2. 1号機のインスタンス起動、DBをactivate – 3. Peer状態になったことを確認 – 4. MSCSリソースを1号機に戻す – 5. MSCSリソースがオンラインになったことを確認 57