ページの先頭行へ戻る
Linkexpress Replication optionV5.0L27 クラスタ導入運用ガイド

8.3.3 Linkexpress Replication optionの状態遷移プロシジャ

Linkexpress Replication optionとして作成・登録する状態遷移プロシジャはありません。

8.3.3.1 クラスタ切替えに連動した作業ファイルの削除

複写先システムが、クラスタシステムの場合、複写先システムでフェイルオーバが発生した際に、lxrepdrrepコマンドの作業域(-wオプション)およびRERUNログ抽出作業域の残存を防止するため、Symfoware/RDBが用意している作業用ファイルの削除を行うサブプロシジャを利用して削除を行います。

サブプロシジャ名

サブプロシジャの格納先ディレクトリ

作業用ファイルの削除用サブプロシジャ

/opt/FJSVsymhs/demo/HSproc.rmwork

作業用ファイルのサブプロシジャは、Symfoware/RDBのサンプルプロシジャをコピーして、lxrepdrrepコマンドの作業域(-wオプション)およびRERUNログの抽出で使用するRERUNログ抽出作業域を削除する処理を追加してください。
なお、削除するRERUNログ作業域のディレクトリは、RLP動作環境ファイルのEXT_WORK_PATHパラメタと一致させてください。

例)lxrepdrrepコマンドの作業域(-wオプション)およびRERUNログ抽出作業域が/LINKREP/workの場合

WORKDIR=/LINKREP/work
rm -f $WORKDIR/*

Symfoware/RDBのサブプロシジャとその設定については、“Symfoware Server クラスタ導入運用ガイド”を参照してください。

8.3.3.2 クラスタ切替えに連動したDRレプリケーション業務の起動

クラスタ切替え時に再起動するDRレプリケーション業務を、Linkexpressのサブプロシジャに登録しておきます。これにより、クラスタ切替えに連動し、DRレプリケーション業務も切替え先にて起動されます。

注意

・RLPの状態がDRオフラインまたは終了オフラインの場合、DRレプリケーション業務は起動しません。
・DRレプリケーション業務の起動および停止に、lxstrwrkコマンドおよびlxcanwrkコマンドは利用できません。
・RLP(DRレプリケーション対象ロググループ)を追加または削除した場合、サブプロシジャの編集が必要です。

サブプロシジャの登録方法などの詳細は、“Linkexpressクラスタシステム導入説明書”を参照してください。

サブプロシジャ名

処理の内容

サブプロシジャの格納先ディレクトリ

業務の再開(work.sh)

DRレプリケーション業務のキャンセルと再開(注)

/opt/FJSVlnkexp/MANAGER

注) Symfoware/RDBのホットスタンバイ構成の場合、RMSの起動に連動してLinkexpressのサブプロシジャ(work.sh)が実行されます。

例)複写元システムの場合 (センター切替えを想定したシステムの場合)

#!/bin/bash
PATH=/opt/FJSVrdb2b/bin:/opt/FJSVlnkexp/bin:/opt/FJSVlnkre/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
export PATH
LD_LIBRARY_PATH=/opt/FJSVrdb2b/lib:/opt/FJSVlnkre/lib
export LD_LIBRARY_PATH
RDBNAME=rdbsys1
export RDBNAME
WKPATH=/work
export WKPATH
LIST="RLP01 RLP02 RLP03"
for RLPNM in ${LIST}
do
    lxrepdrrep -p ${RLPNM} -a stop -m f -k capture -w ${WKPATH}
    # センター切替えを想定したシステムの場合はコメント(#)を外します。
    # lxrepdrrep -p ${RLPNM} -a stop -m f -k reflect -R -w ${WKPATH} # センター切替え用RERUNログ反映業務
    sleep 1
    lxrepdrpfm -e -p ${RLPNM} > /dev/null 2>&1
    RC=$?
    case $RC in
      0)
            # RLPが複写先システムとしてオンラインされている場合
            # センター切替え後のRERUNログ反映業務の起動
            # センター切替えを想定したシステムの場合はコメント(#)を外します。
            # lxrepdrrep -p ${RLPNM} -a start -k reflect -R -w ${WKPATH}
            ;;
      2)
            # RLPが複写元システムとしてオンラインされている場合
            # 通常用またはセンター切替え前のDRレプリケーション業務
            lxrepdrrep -p ${RLPNM} -a start -k capture -w ${WKPATH}
            ;;
      3)
            # RLPがinit状態の場合
            logger "RP31020 The RLP state is not online. RLP name=${RLPNM} (system name=${RDBNAME})"
            ;;
      *)
            # lxrepdrpfmが異常終了した場合
            logger "RP06002 lxrepdrpfm -e -p ${RLPNM} was abnormally terminated. (return code ${RC}) (system name=${RDBNAME})"
            ;;
    esac
done
exit 0

例)複写先システムの場合 (センター切替えを想定したシステムの場合)

#!/bin/bash
PATH=/opt/FJSVrdb2b/bin:/opt/FJSVlnkexp/bin:/opt/FJSVlnkre/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
export PATH
LD_LIBRARY_PATH=/opt/FJSVrdb2b/lib:/opt/FJSVlnkre/lib
export LD_LIBRARY_PATH
RDBNAME=rdbsys1
export RDBNAME
WKPATH=/work
export WKPATH
LIST="RLP01 RLP02 RLP03"
for RLPNM in ${LIST}
do
    # センター切替えを想定したシステムの場合はコメント(#)を外します。
    # lxrepdrrep -p ${RLPNM} -a stop -m f -k capture -R -w ${WKPATH}
    lxrepdrrep -p ${RLPNM} -a stop -m f -k reflect -w ${WKPATH}    # RERUNログ反映業務
    sleep 1
    lxrepdrpfm -e -p ${RLPNM} > /dev/null 2>&1
    RC=$?
    case $RC in
      0)
            # RLPが複写先システムとしてオンラインされている場合
            # 通常用またはセンター切替え前のRERUNログ反映業務の起動
            lxrepdrrep -p ${RLPNM} -a start -k reflect -w ${WKPATH}
            ;;
      2)
            # RLPが複写元システムとしてオンラインされている場合
            # センター切替え後のDRレプリケーション業務の起動
            # センター切替えを想定したシステムの場合はコメント(#)を外します。
            # lxrepdrrep -p ${RLPNM} -a start -k capture -R -w ${WKPATH}
            ;;
      3)
            # RLPがinit状態の場合
            logger "RP31020 The RLP state is not online. RLP name=${RLPNM} (system name=${RDBNAME})"
            ;;
      *)
            # lxrepdrpfmが異常終了した場合
            logger "RP06002 lxrepdrpfm -e -p ${RLPNM} was abnormally terminated. (return code ${RC}) (system name=${RDBNAME})"
            ;;
    esac
done
exit 0