DCUの再構築では、両ノードの順序番号の同期合せを行う必要があります。ここでは順序の同期合せをする場合に必要な条件と操作を説明します。
順序の同期合せに必要な操作を以下に示します。
正系ノードでの順序番号の確認
副系ノードでの順序の再作成(削除と再定義)
順序の関連付け
正系ノードでの順序番号の確認は、DBミラーリングサービス中に実施します。
副系ノードでの順序の再作成(削除と再定義)および順序の関連付けは、DBミラーリングサービスを通常停止してから実施します。
順序の同期合せの操作手順を以下に示します。
操作の手順
データベースサーバ1の操作
順序番号を確認します。順序番号の確認は、DBミラーリングサービス中に、rdbexecsqlコマンドにより、順序番号を生成することにより確認します。
DBミラーリングサービスの通常停止を行います。
$ dxsvstop
複写元RLPをrdbbcdcuコマンドで特定します。
rdbbcdcuコマンドのVオプションおよび、bオプションを実行してDCU構成を確認します。
$rdbbcdcu -V -b LogGroup : system RLCbuffNum : 128 RLCbuffSize : 2K RLCnum : 3 RLCsize : 10240K RLPid RLPname Kind OnMode OnStat RLPstat InhCause ConStat DisConCause LogRemain 1 rlp001 origin capture switch normal - disconnection - - 2 rlp002 duplicate init switch normal - disconnection - -
2つのRLPのうち、“RLP種別(Kind)”が“origin”のRLPが複写元RLPです。rdbbcmapコマンドのEオプションおよび、pオプションを実行して資源識別子を抽出し、副系ノードに転送します。
$ rdbbcmap -E -p 複写元RLP名 資源識別子抽出ファイル名
DCUの2つのRLPのうち、複写先RLPについて、セットアップスクリプトdxfmtmndb.shのdオプションおよび、pオプション、Mオプションを実行して、RLP管理オブジェクトの初期化を行います。
$ dxfmtmndb.sh -d RLP定義ファイル名 -p 複写先RLP名 -M
DCUの2つのRLPのうち、複写先RLPについて、rdbbcmapコマンドのRオプションおよび、pオプションを実行して、資源識別子を登録します。
$ rdbbcmap -R -p 複写先RLP名 資源識別子抽出ファイル名
dxsvstartコマンドのcオプションを実行して、DBミラーリングサービスを開始します。
$ dxsvstart -c
順序番号を生成するなどの方法で整合性を確認します。
データベースサーバ2の操作
以下のメッセージにより、正系ノードでのdxsvstopコマンドの実行による副系ノードのDBミラーリングサービスの停止を確認します。
SYMFOWARE_SYMDX: INFO: 12136: The DB mirroring service stopped in normal state by the demand from the other node.
rdbddlexコマンドを実行して、順序定義を再作成(削除と定義)します。
複写先RLPをrdbbcdcuコマンドで特定します。
rdbbcdcuコマンドのVオプションおよび、bオプションを実行してDCU構成を確認します。
$ rdbbcdcu -V -b LogGroup : system RLCbuffNum : 128 RLCbuffSize : 2K RLCnum : 3 RLCsize : 10240K RLPid RLPname Kind OnMode OnStat RLPstat InhCause ConStat DisConCause LogRemain 1 rlp001 duplicate reflect switch normal - disconnection - - 2 rlp002 origin init switch normal - disconnection - -
2つのRLPのうち、“RLP種別(Kind)”が“duplicate”のRLPが複写先RLPです。複写先RLPについて、セットアップスクリプトdxfmtmndb.shのdオプションおよび、pオプション、Mオプションを実行して、RLP管理オブジェクトの初期化を行います。
$ dxfmtmndb.sh -d RLP定義ファイル名 -p RLP名 -M
DCUの2つのRLPのうち、複写先RLPについて、rdbbcmapコマンドのRオプションおよび、pオプションを実行して、資源識別子を登録します。
$ rdbbcmap -R -p 複写先RLP名 資源識別子抽出ファイル名
DCUの2つのRLPのうち、複写元RLPについて、rdbbcmapコマンドのEオプションおよび、pオプションを実行して資源識別子を抽出し、任意の方法で正系ノードに転送します。
$ rdbbcmap -E -p 複写元RLP名 資源識別子抽出ファイル名
dxsvstartコマンドのrオプションを実行して、DBミラーリングサービスを開始します。
$ dxsvstart -r
アプリケーションサーバの操作
利用者業務を停止します。
利用者業務を再開します。
ポイント
正系ノードでの順序番号の生成は、DBミラーリングサービス中のみ実施できます。このため、両ノードでDBミラーリングサービス停止を行う前にあらかじめ実施しておきます。
参照
rdbexecsqlコマンドの指定方法については“SQLTOOLユーザーズガイド”を参照してください。
順序の削除や再定義の詳細については“SQLリファレンス”を参照してください。
rdbexecsqlコマンドおよびrdbddlexコマンドの詳細については“コマンドリファレンス”を参照してください。
順序番号の確認については“10.5.2.3 順序番号の確認”を参照してください。
順序定義の再作成については“10.5.2.4 順序の再作成”を参照してください。
正系ノードで順序番号を確認します。順序番号の確認は、DBミラーリングサービス中に、rdbexecsqlコマンドの実行により順序番号を生成して確認します。
スキーマ名がSTOCKS、順序名が順序1の順序番号を確認する例を以下に示します。
SQL>SELECT STOCKS.順序1.CURRVAL FROM RDBII_SYSTEM.RDBII_ASSISTTABLE <<1>> 1:+000000000000500000. Number of records:1 SQLSTATE:00000SQLMSG:JYP2001I 正常に終了しました.
参照
rdbexecsqlコマンドの詳細は“コマンドリファレンス”を参照してください。
正系ノードで取得した順序番号を元に、副系ノードにおいてrdbddlexコマンドで順序定義を削除して再定義します。副系ノードで定義する順序は、以下の算出式により求めた値を順序定義の初期値として利用します。
順序番号の初期値の算出式
順序番号の初期値 = [ (正系ノードの順序番号 + 増分値) ÷ 増分値 × 増分値 ] []内の除算で発生した小数値は切り捨て
正系ノードの順序番号を取得した結果が498432、増分値が500の場合の副系ノードで定義する順序定義文の例を以下に示します。
ポイント
順序定義文は、rdbprtコマンドの結果を利用することができます。rdbprtコマンドの詳細は“コマンドリファレンス”を参照してください。
参照
rdbddlexコマンドの詳細は“コマンドリファレンス”を参照してください。
同期合せを行う順序に対して、DCUを構成する2つのRLPのそれぞれで、資源識別子の抽出と登録を行って、順序を関連付けます。
参照
資源の関連付けの詳細については “5.3.8 資源の関連付け”を参照してください。