DBミラーリングシステムの運用開始後に、正系ノードでDSIの初期化処理(rdbfmtコマンドの実行)を行うと、DBミラーリングシステムが副系ノードでDSIの初期化処理を行います。
DSIの初期化の操作について以下のとおり説明します。
注意
副系ノードのDSIの初期化の反映処理において、RDBREPORTにqdg03400uのメッセージが出力される場合があります。これは副系ノードの反映処理が多重で実行されたためです。その場合、qdg03400uのメッセージ内のDSI名を確認し、それに対応するqdg20748iのメッセージがRDBREPORTに出力されていれば、初期化処理は正常に動作しています。
ポイント
正系ノードで、rdbfmtコマンドにcオプション(拡張域返却)を指定して実行した場合も、副系ノードで同じ動作が実行されます。
副系ノードのDSIの初期化処理は、正系ノードでのDSIの初期化処理と同じDSI単位で行われます。
表のDSI定義やインデックスのDSI定義を行った直後にDSIの初期化を行う場合は、DSIの割付け量に依存した処理時間が必要となるため、定義操作を行った後に続けて両ノードでrdbfmtコマンドを実行してください。
DSIの初期化中の副系ノードの参照系業務
初期化する予定のDSIにアクセスする参照系業務が副系ノードに存在する場合は、SQLアプリケーションのトランザクションを終了させてから、正系ノードでDSIを初期化してください。
その後、副系ノードでDSI初期化完了のメッセージを確認してから参照業務のSQLアプリケーションを再開します。
DSIの初期化を実施します。
参照系業務を開始します。
参照系業務のトランザクションを終了します。
副系ノードで、RDBREPORTのメッセージにより、DSIの初期化の開始および完了を確認します。
qdg20747i:RERUNログ反映によるDSIの初期化を開始します DSI名='DB名.DSI名' RLP名='RLP名'
qdg20748i:RERUNログ反映によるDSIの初期化が完了しました DSI名='DB名.DSI名' RLP名='RLP名'
参照系業務を再開します。
注意
副系ノードでDSIの初期化中に、アプリケーションが当該DSIにアクセスした場合は、SQL文が異常終了します。DSIの初期化処理が完了したことを確認してから、アプリケーションを再実行してください。
アプリケーションが参照中のDSIに、副系ノードでDSIの初期化処理が行われるとRERUNログ反映処理が停止します。その場合は“K.3 RERUNログ反映処理異常からのリカバリ方法”を参照して、リカバリを実施してください。
DSIの初期化中の副系ノードでのデータベース操作
副系ノードにてDSIの初期化中の場合は、DSIの初期化処理と同時実行できないデータベース操作は行わないでください。
注意
DSIの初期化処理と同時実行できないデータベース操作の実行中に、副系ノードでDSIの初期化処理が行われるとRERUNログ反映処理が停止します。その場合は“K.3 RERUNログ反映処理異常からのリカバリ方法”を参照してリカバリを実施してください。
参照
DSIの初期化処理と同時実行できないデータベース操作については“運用ガイド(データベース定義編)”の“アプリケーションおよびRDBコマンド間の排他”を参照して、rdbfmtコマンドと同時実行できない操作をDSIの初期化と同時実行できない操作に置き換えて確認して下さい。
DSIの初期化の誤操作からのリカバリ
正系ノードでrdbfmtコマンドにより、データベースのデータを誤って大量に消去してしまった場合、正系ノードおよび副系ノードのデータベースを、両ノードの同期が取れた直前の状態にリカバリすることができます。
誤操作の資源を特定します。
データベース内のデータの内容を確認し、誤操作を行った資源(表のDSI)を特定します。
誤操作時点のリカバリポイントを特定します。
RDBREPORTで指定したメッセージログファイルの中から、qdg14119iのメッセージを探してください。出力されているメッセージから、誤操作を行った資源(表のDSI)に一致するリカバリポイントを確認します。
DBミラーリングサービスをリカバリ停止します。
以下の手順で、誤操作の直前までデータをリカバリします。
誤操作を行った表のDSIに関連するすべてのインデックスのDSIをrdbfmtコマンドにより初期化します。
誤操作を行った時点のリカバリポイントをリカバリ終了点に指定してrdbrcvコマンドを実行します。
業務再開に向けてデータベースのバックアップを行います。
正系ノードのDBミラーリングサービスを開始します。
誤操作時点のリカバリポイントを特定します。
RDBREPORTで指定したメッセージログファイルの中から、データベースサーバ1の手順2.で確認したリカバリポイントについてqdg20176iのメッセージが出力されていることを確認してください。
以下の手順で、DBミラーリングサービスを停止します。
RDBREPORTで指定したメッセージログファイルの中から、qdg20748iのメッセージを探してください。出力されているメッセージから、データベースサーバ1の手順a.に対するRERUNログ反映によるDSIの初期化が行われることを確認してください。
DBミラーリングサービスをリカバリ停止します。
誤操作の直前までデータをリカバリします。
手順1.で確認したリカバリポイントをリカバリ終了点に指定してrdbrcvコマンドを実行します。
RERUNログ反映の再開に向けてデータベースのバックアップを行います。
副系ノードのDBミラーリングサービスを開始します。
データベースサーバ1での手順6.が完了してから、利用者業務を開始します。
注意
DBミラーリングシステムによるデータベースの二重化を行っている場合には、rdbfmtコマンドによりインデックスのDSIをリカバリ可能な状態にしてから、rdbrcvコマンドにより表のDSIと関連するすべてのインデックスのDSIを同時にリカバリします。
rdbsloaderコマンドのxオプション(インデックスのDSIの創成)を実行したインデックスのDSIのリカバリは実施しないでください。
誤って、関連するすべてのインデックスのDSIをrdbfmtコマンドにより初期化せずに、rdbrcvコマンドによりリカバリした場合には、インデックスのDSIがリカバリ対象になりません。再度、表のDSIからrdbfmtコマンドを実行して初期化し、rdbrcvコマンドによりリカバリしてください。その際、リカバリポイントを変更しないでください。
参照
rdbfmtコマンドおよびrdbrcvコマンド、 rdbsloaderコマンドの詳細については“コマンドリファレンス”を参照してください。