影響分散スタンバイレス型系切り替え機能を使用する場合に注意する点について説明します。
抽出対象HiRDBが影響分散スタンバイレス型系切り替え構成の場合,バックエンドサーバ単位に系が切り替わります。このため,抽出側Datareplicatorもバックエンドサーバ単位に系を切り替えるための設定が必要となります。
影響分散スタンバイレス型系切り替え機能でのデータ連動システムの形態を次の図に示します。
図6-32 影響分散スタンバイレス型系切り替え機能でのデータ連動システムの形態
ここでは,影響分散スタンバイレス型系切り替え機能に関する準備(通常の系切り替え機能を使う場合の準備と異なる点)について説明します。通常の系切り替え機能を使うときの準備については,「6.9.2 系切り替え機能を使うときの準備(HAモニタの場合)」を参照してください。
通常の系切り替えを行う場合と同様に,HAモニタのserver定義文でDatareplicatorの動作環境を定義します。ただし,影響分散スタンバイレス型系切り替えの場合は,抽出対象HiRDBがバックエンドサーバ単位の切り替えとなるため,HiRDBと連動して系切り替えが行われるようにDatareplicatorの定義もHiRDBのバックエンドサーバに対応して定義する必要があります。
詳細については,「6.9.2 系切り替え機能を使うときの準備(HAモニタの場合)」を参照してください。
影響分散スタンバイレス型系切り替え機能を使う場合,次のようにホスト名を割り当ててください。
現用系HiRDBのDatareplicatorを停止し,待機系HiRDBのDatareplicatorを起動するためのシェルを作成してください。シェルの作成例を次に示します。
sleep 5※ su -ユーザ名 -c "/opt/hirdbds/bin/hdestart_n" 2> /tmp/start_log |
sleep 5※ su -ユーザ名 -c "/opt/hirdbds/bin/hdestart_n -b BES名 -x ホスト名 -n サービス名 " 2> /tmp/start_log |
su -ユーザ名 -c "/opt/hirdbds/bin/hdestop_n -w" 2> /tmp/stop_log |
su -ユーザ名 -c "/opt/hirdbds/bin/hdestop_n -b BES名 -t sendterm -c continue -w" 2> /tmp/stop_log |
影響分散スタンバイレス型系切り替え機能を使う場合,次の抽出システム定義のオペランドを設定する必要があります。
次の条件を二つとも満たす場合,HAモニタが提供するユーザコマンドインタフェースを使用できます。
HAモニタが提供するユーザコマンドインタフェースを使用すると,HiRDBの系切り替え制御に抽出側Datareplicatorの系切り替え制御が組み込まれるため,系切り替えの準備及び運用が簡略化できます。
簡略化の準備と運用を次に示します。
HiRDBが使用するホスト名 | ホストで稼働中のプロセス | |
---|---|---|
抽出マスタプロセス | 抽出ノードマスタプロセス※ | |
IPアドレス引き継ぎあり | × | × |
IPアドレス引き継ぎなし | ○ | × |
#!/bin/sh
HA_SERVER_ID=$2
SERVER_KIND=$4
SERVER_STATUS=$5
START_PARAM=$6
#####################################################################
# convert from HAmonitor's server name to HiRDB's server name #
#####################################################################
case "$HA_SERVER_ID" in
"REPmngr")
HiRDB_SERVER_ID="MST"
;;
"REPb11")
HiRDB_SERVER_ID="bes11"
;;
"REPb12")
HiRDB_SERVER_ID="bes12"
;;
"REPb21")
HiRDB_SERVER_ID="bes21"
;;
"REPb22")
HiRDB_SERVER_ID="bes22"
;;
"REPb31")
HiRDB_SERVER_ID="bes31"
;;
"REPb32")
HiRDB_SERVER_ID="bes32"
;;
*)
exit 0
;;
esac
#####################################################################
# issue HiRDB Datareplicator command #
#####################################################################
if [ $SERVER_KIND = "online" ]
then
case "$SERVER_STATUS" in
"-s")
#####################################################
# CASE : online : Normal Start #
#####################################################
if [ $START_PARAM = "end" ]
then
if [ $HiRDB_SERVER_ID = "MST" ]
then
/HiRDBDS/SH/StartMST_sh
else
/HiRDBDS/SH/StartNMT_sh $HiRDB_SERVER_ID "initial"
fi
fi
;;
"-e")
#####################################################
# CASE : online : Normal End #
#####################################################
if [ $START_PARAM = "start" ]
then
if [ $HiRDB_SERVER_ID = "MST" ]
then
/HiRDBDS/SH/StopMST_sh
else
/HiRDBDS/SH/StopNMT_sh $HiRDB_SERVER_ID "initial"
fi
fi
;;
"-p")
#####################################################
# CASE : online : Planning End #
#####################################################
if [ $START_PARAM = "start" ]
then
if [ $HiRDB_SERVER_ID = "MST" ]
then
/HiRDBDS/SH/StopMST_sh
else
/HiRDBDS/SH/StopNMT_sh $HiRDB_SERVER_ID "initial"
fi
fi
;;
"-a")
#####################################################
# CASE : online : Switch by Server down #
#####################################################
if [ $START_PARAM = "start" ]
then
if [ $HiRDB_SERVER_ID = "MST" ]
then
/HiRDBDS/SH/StopMST_sh
else
/HiRDBDS/SH/StopNMT_sh $HiRDB_SERVER_ID "continue" "-t sendterm"
fi
fi
;;
"-w")
#####################################################
# CASE : online : Switch by Planning #
#####################################################
if [ $START_PARAM = "start" ]
then
if [ $HiRDB_SERVER_ID = "MST" ]
then
/HiRDBDS/SH/StopMST_sh
else
/HiRDBDS/SH/StopNMT_sh $HiRDB_SERVER_ID "continue"
fi
fi
;;
esac
else
case "$SERVER_STATUS" in
"-a")
#####################################################
# CASE : standby : Switch by Server down #
#####################################################
if [ $START_PARAM = "end" ]
then
if [ $HiRDB_SERVER_ID = "MST" ]
then
/HiRDBDS/SH/StartMST_sh
else
/HiRDBDS/SH/StartNMT_sh $HiRDB_SERVER_ID "continue"
fi
fi
;;
"-w")
#####################################################
# CASE : standby : Switch by Planning #
#####################################################
if [ $START_PARAM = "end" ]
then
if [ $HiRDB_SERVER_ID = "MST" ]
then
/HiRDBDS/SH/StartMST_sh
else
/HiRDBDS/SH/StartNMT_sh $HiRDB_SERVER_ID "continue"
fi
fi
;;
esac
fi