6.9.6 影響分散スタンバイレス型系切り替え機能での運用

影響分散スタンバイレス型系切り替え機能を使用する場合に注意する点について説明します。

<この項の構成>
(1) 影響分散スタンバイレス型系切り替え機能でのデータ連動システムの形態
(2) 影響分散スタンバイレス型系切り替え機能を使うときの準備
(3) 抽出側Datareplicatorの運用の簡略化(HAモニタ限定)

(1) 影響分散スタンバイレス型系切り替え機能でのデータ連動システムの形態

抽出対象HiRDBが影響分散スタンバイレス型系切り替え構成の場合,バックエンドサーバ単位に系が切り替わります。このため,抽出側Datareplicatorもバックエンドサーバ単位に系を切り替えるための設定が必要となります。

影響分散スタンバイレス型系切り替え機能でのデータ連動システムの形態を次の図に示します。

図6-32 影響分散スタンバイレス型系切り替え機能でのデータ連動システムの形態

[図データ]

(2) 影響分散スタンバイレス型系切り替え機能を使うときの準備

ここでは,影響分散スタンバイレス型系切り替え機能に関する準備(通常の系切り替え機能を使う場合の準備と異なる点)について説明します。通常の系切り替え機能を使うときの準備については,「6.9.2 系切り替え機能を使うときの準備(HAモニタの場合)」を参照してください。

(a) HAモニタの準備

通常の系切り替えを行う場合と同様に,HAモニタのserver定義文でDatareplicatorの動作環境を定義します。ただし,影響分散スタンバイレス型系切り替えの場合は,抽出対象HiRDBがバックエンドサーバ単位の切り替えとなるため,HiRDBと連動して系切り替えが行われるようにDatareplicatorの定義もHiRDBのバックエンドサーバに対応して定義する必要があります。

詳細については,「6.9.2 系切り替え機能を使うときの準備(HAモニタの場合)」を参照してください。

(b) 抽出側Datareplicatorのホスト名の割り当て

影響分散スタンバイレス型系切り替え機能を使う場合,次のようにホスト名を割り当ててください。

抽出マスタプロセスが稼働するホスト:
IPアドレス引き継ぎありのホスト名を割り当ててください。なお,割り当てるホスト名は,抽出対象HiRDBが使用するホスト名とは別に,Datareplicator用として新たに割り当てる必要があります。
抽出ノードマスタプロセスが稼働するホスト:
HiRDBが使用するIPアドレス引き継ぎなしのホスト名をDatareplicatorも使用するため,Datareplicator用として新たにホスト名を割り当てる必要はありません。
(c) Datareplicatorの起動,及び停止のシェルの作成

現用系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
起動コマンド実行時のエラーメッセージは,標準エラー出力に対して出力されます。シェル内で起動コマンドを実行する場合は,標準エラー出力をワークファイル(上記例では/tmp/start_log)に出力するようにしてください。
注※
データ連動用連絡ファイルを格納するボリュームを活性化した後(HiRDBの起動が完了した後)にDatareplicatorが起動されるよう,sleepで調整してください。ただし,抽出側Datareplicatorの運用を簡略化する場合は,sleepは必要ありません。抽出側Datareplicatorの運用を簡略化する場合の詳細については,「6.9.6(3) 抽出側Datareplicatorの運用の簡略化(HAモニタ限定)」を参照してください。
停止のシェル作成例
  • システムマネジャがあるユニットの場合
    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
停止コマンド実行時のエラーメッセージは,標準エラー出力に対して出力されます。シェル内で停止コマンドを実行する場合は,標準エラー出力をワークファイル(上記例では/tmp/stop_log)に出力するようにしてください。
(d) 抽出システム定義

影響分散スタンバイレス型系切り替え機能を使う場合,次の抽出システム定義のオペランドを設定する必要があります。

nodecontrol=server
影響分散スタンバイレス型系切り替え機能を使う場合,HiRDBはバックエンドサーバ単位で系を切り替えます。そのため,抽出側Datareplicatorも,HiRDBと同様にバックエンドサーバ単位で系を切り替えるように設定します。
node_connection_accept=true
抽出ノードマスタプロセスからの接続要求の受け付け,及び系切り替え時の抽出マスタプロセスと抽出ノードマスタプロセス間の回線再接続を行うように設定します。
connection_accept_hostname=抽出ノードマスタプロセスからの接続要求受け付けホスト名
抽出ノードマスタプロセスからの接続要求を受け付けるための,抽出マスタプロセスが稼働するサーバマシンに割り当てた,IPアドレス引き継ぎありのホスト名を指定します。
connection_accept_service=抽出ノードマスタプロセスからの接続要求受け付けサービス名
抽出ノードマスタプロセスからの接続要求を受け付けるためのサービス名を指定します。
connection_accept_waittime=抽出ノードマスタプロセス接続要求待ち時間
すべての抽出ノードマスタプロセスとの回線が切断した場合,抽出マスタプロセスが抽出ノードマスタプロセスからの再接続要求を受け付けるための待ち時間を指定します。
connection_retry_time=抽出ノードマスタプロセス再接続処理時間
抽出マスタプロセスとの回線が切断した場合,抽出ノードマスタプロセスが抽出マスタプロセスに対して回線の再接続処理を行う時間を指定します。

(3) 抽出側Datareplicatorの運用の簡略化(HAモニタ限定)

次の条件を二つとも満たす場合,HAモニタが提供するユーザコマンドインタフェースを使用できます。

HAモニタが提供するユーザコマンドインタフェースを使用すると,HiRDBの系切り替え制御に抽出側Datareplicatorの系切り替え制御が組み込まれるため,系切り替えの準備及び運用が簡略化できます。

簡略化の準備と運用を次に示します。

(a) 準備
  1. ユーザコマンドの作成
    HiRDBの系切り替え中に行われる,Datareplicatorの起動,停止を実行するためのユーザコマンドを作成します。ユーザコマンドのインタフェースについては,マニュアル「高信頼化システム監視機能 HAモニタ」を参照してください。
    ユーザコマンドの作成例については,下記「ユーザコマンド作成例」を参照してください。
  2. HAモニタ環境設定に対するユーザコマンドの登録
    HiRDBの系切り替え中にユーザコマンドが実行されるように,HAモニタ環境設定のusrcommandオペランドに作成したユーザコマンドを登録します。
  3. 共有リソースの割り当て
    • IPアドレス引き継ぎありのホスト名の割り当て
      稼働中のプロセスとHiRDBが使用するホスト名によって,割り当てるかどうかが異なります。割り当ての有無について,次に示します。
      HiRDBが使用するホスト名ホストで稼働中のプロセス
      抽出マスタプロセス抽出ノードマスタプロセス
      IPアドレス引き継ぎあり××
      IPアドレス引き継ぎなし×
    (凡例)
    ○:Datareplicator用として,新たにIPアドレス引き継ぎありのホスト名を割り当てる必要があります。
    ×:Datareplicator用として,新たにIPアドレス引き継ぎありのホスト名を割り当てる必要はありません。
    注※
    抽出側Datareplicatorと反映側Datareplicator間のネットワークについては,簡略化しない場合と同様に,反映側Datareplicatorのホスト名にIPアドレス引き継ぎありのホスト名を割り当てる必要があります。
    • 共有ボリュームの割り当て
      データ連動用連絡ファイルだけではなく,すべてのDatareplicator関連ファイルを,HiRDBの系切り替え制御で切り替えられる共有ボリュームに割り当てる必要があります。
  4. Datareplicatorの起動,及び停止のシェルの作成
    運用を簡略化する場合,Datareplicatorの起動,及び停止のシェルをユーザコマンドから実行してください。シェルの作成の詳細については,「6.9.6(2)(c) Datareplicatorの起動,及び停止のシェルの作成」を参照してください。
  5. クラスタソフトウェアの定義作成
    Datareplicatorの切り替え制御は,HiRDBの系切り替え中にユーザコマンドで行われるため,Datareplicatorの系切り替えのためのHAモニタサーバ定義は作成する必要はありません。
  6. Datareplicator定義
    運用簡略をしない場合と同じです。
ユーザコマンド作成例
  • caseコマンドの各パターンで指定する値は,御使用になるHAモニタのserver定義に合わせて修正してください。また,パターンの数も御使用になるHiRDBのサーバ数に合わせて修正してください。
  • Datareplicatorの起動・停止シェル名は,実際に御使用になるシェル名に修正してください(_shで終わっているコマンドがDatareplicatorの起動・停止シェルになります)。
ユーザコマンドの作成例を次に示します。

#!/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

(b) 運用
1.抽出側Datareplicatorの初期化
抽出側Datareplicatorの初期化手順を次に示します。
  1. 抽出対象HiRDBを正常終了します。
  2. HAモニタを終了します。
  3. HAモニタ環境設定のusrcommandオペランドの,Datareplicator制御用コマンドの指定を削除します。
  4. HAモニタを起動します。
  5. 抽出対象HiRDBを非連動モード(pd_rpl_init_start=N)で開始します。
  6. 抽出側Datareplicatorの環境の初期化(hdestart -iコマンド)を実行します。
  7. 抽出定義プリプロセスファイルの作成(hdeprepコマンド)を実行します。
  8. 抽出対象HiRDBを正常終了します。
  9. HAモニタを終了します。
  10. HAモニタ環境設定のusrcommandオペランドに,Datareplicator制御用コマンドを登録します。
  11. HAモニタを起動します。
  12. 抽出対象HiRDBを連動モード(pd_rpl_init_start=Y)で開始します。HiRDBの開始と連動して,抽出側Datareplicatorが起動されます。
2.抽出側Datareplicatorの起動,停止
抽出対象HiRDBの開始,終了と連動して,抽出側Datareplicatorが起動,停止するため,操作は不要です。
3.HiRDB終了状態での抽出側Datareplicatorの起動
抽出対象HiRDBが未抽出ログ満杯などによって開始できない場合,抽出側Datareplicatorだけを起動することができます。その手順を次に示します。
  1. Datareplicatorの起動に必要な,システムマネジャのユニットの共有リソースを手動で活性化します。
  2. システムマネジャのユニットで抽出マスタプロセスを起動します(hdestart_nコマンド)。
  3. 起動対象の抽出ノードマスタプロセスに必要な,共有リソースを手動で活性化します。
  4. バックエンドサーバのユニットで,抽出ノードマスタプロセスを起動します(hdestart_n -b サーバ名)。