オンライン中リカバリ機能を利用したRLPの初期化について説明します。
RLPの初期化が必要なケースおよび前提条件は、オンライン中リカバリ機能を利用しないRLPの初期化と同じ考え方です。
RLPの初期化が必要なケース
複写元システムと複写先システムの整合性合わせを実施する場合
RLP環境の資源に異常がない状態で、RLPの復旧を実施する場合
前提条件
RLPを構成する資源に異常がある場合は、RLPの初期化はできません。
RLPの再作成によりRLPの復旧を行ってください。
RLPの初期化によるRLPの復旧を実施する場合、以下の条件を満たしている必要があります。
lxrepdrrlpコマンドを実行し、RLPの運用状態を表示できること(閉塞していないこと)。
RLPの初期化は、Symfoware/RDBが起動状態である必要があります。
また、事前に利用者プログラムとDRレプリケーション業務を停止しておく必要があります。
RLP環境の状態に合わせて、以下の作業が必要です。
RLPの初期化前の状態 | RLPの初期化時の作業 |
複写元データベースと複写先データベースの整合性が不一致の場合 | RLPの初期化後に、データベース環境の複写による複写先データベースの再創成 |
複写元データベースと複写先データベースの順序番号が不一致の場合 | RLPの初期化前に、複写先データベースの順序定義の再定義 |
センター切替えの場合 | RLPの初期化のみ(注) |
注) センター切替え時に、両システムのデータベースの整合性が保証されていること。
以下の手順で初期化してください。
複写元システムと複写先システムが並列で表記されている場合は、どちらのシステムを先に実行しても問題ありません。
複写元システム | 複写先システム |
---|---|
(DRレプリケーション運用中) | (DRレプリケーション運用中) |
1.RLPの状態確認 | |
2.順序番号の取得と順序定義の再定義(注1) | |
3.RLPの初期化 | |
4.残存資源の削除 (注2) | 4.残存資源の削除 (注2) |
5.データベース環境の複写 (注3) |
注1) 両システムで順序番号に差異があり、かつ複写先システムにデータベース環境の複写を行わない場合
注2) 複写先データベースを再創成する場合
注3) 両システムのデータベースが不一致の場合
RLPの状態確認
当該RLPが、「終了オフライン」または「DRオフライン」であることを確認します。
lxrepdrrlp -V -O -p RLP名
順序番号の取得と順序定義の再定義
両システムで順序番号に差異があり、かつ複写先システムにデータベース環境の複写を行わない場合、以下の手順で複写先データベースの順序定義を再定義します。
順序番号の確認
複写元システムでRLPの初期化で対象としたRLPが以下の場合には、順序番号の確認を行います。
スケーラブルログ運用でない場合
スケーラブルログ運用の場合に、初期化対象のRLPがシステムロググループに作成されているとき
順序番号の確認は、rdbexecsqlコマンドで確認します。
例)スキーマ名がSTOCKS、順序名が順序1の順序番号を確認する例
SQL>SELECT STOCKS.順序1.CURRVAL FROM RDBII_SYSTEM.RDBII_ASSISTTABLE <<1>> 1:+000000000000500000. Number of records:1 SQLSTATE:00000 SQLMSG:JYP2001I 正常に終了しました.
順序定義の再作成
複写元システムで取得した順序番号を元に、rdbddlexコマンドで複写先システムの順序定義を削除して再定義します。複写先システムで定義する順序は、以下の算出式により求めた値を順序定義の初期値として利用します。
【算出式】
順序定義にCACHE指定がない場合
順序番号の初期値 = 複写元システムの順序番号
順序定義にCACHE指定がある場合
順序番号の初期値= [(複写元システムの順序番号 +(増分間隔 ×割当順序数))
÷(増分間隔 × 割当順序数)]
×(増分間隔 × 割当順序数)
+ 複写元システムの初期値
[]内の除算で発生した小数値は切り捨て
例)
定義時に利用する順序定義文の例
以下の場合に、複写先システムで定義する順序定義文の例を示します。
複写元システムの順序番号を取得した結果:5
増分間隔:1
割当順序数:10
複写元システムの初期値:1
-- 削除文 DROP SEQUENCE SI.順序1; --定義文 CREATE SEQUENCE S1.順序1 INCREMENT BY 1 START WITH 11 ・・・ 初期値に補正した順序番号を設定 CACHE 10;
RLPの初期化
当該RLPの初期化を実行します。
lxrepdrinit -p RLP名 -k both -f DRサーバ環境ファイル名 [-D -d DRレプリケーション定義ファイル名]
残存資源の削除
複写先データベースの再創成を必要とする場合は、両システムに残存する当該RLPのRLC退避ファイルおよびRERUNログ抽出ファイルをOSのrmコマンドで削除してください。
なお、“RLPの初期化”で-Dオプションを使用した場合は、rmコマンドによる削除は不要です。
データベース環境の複写
両システムのデータベースが不一致の場合は、データベース環境の複写によって複写先データベースを再創成します。データベース環境の複写の詳細は、“G.1.9 データベース環境の複写”を参照してください