...

HADR+MSCS 連携構成ガイド 3.運用手順ガイド

by user

on
Category: Documents
68

views

Report

Comments

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
Fly UP