“2.4.2.2 アーカイブログ適用によるリカバリ”の“図2.1 アーカイブログをバックアップしない運用の流れ”にそったリカバリ操作の手順とリカバリ操作例を以下に示します。
なお、ディスク配置については“5.2.1 データベーススペースをローデバイスに割り付けている場合のリカバリ”を例にしています。
(1) 対象DSIの退避データを取得します。 ――― rdbdmpコマンド (2) 目的業務を実行します。 (3) アーカイブログファイルの強制切替えを行います。 ――― rdblogコマンド (Sオプションかつ aオプション) (4) 対象DSIの退避データを取得します。 ――― rdbdmpコマンド (5) アーカイブログを2つ破棄します。 ――― rdblogコマンド (Rオプションかつ aオプション) (6) 目的業務を実行します。 (7) アーカイブログファイルの強制切替えを行います。 ――― rdblogコマンド (Sオプションかつ aオプション) (8) 対象DSIの退避データを取得します。 ――― rdbdmpコマンド (9) アーカイブログを破棄します。 ――― rdblogコマンド (Rオプションかつ aオプション) (10) 目的業務を実行します。 ★ 媒体障害発生 (11) 事前に作成しておいたディスク上のデータベーススペー ス情報一覧から破壊されているディスク上のデータベース スペース名を確認します。 (12) 媒体障害が発生したボリュームに割り付けられたデータ ――― rdbinfコマンド ベーススペースより、リカバリ対象のDSIを把握します。 (pオプション) (13) 媒体障害が発生したボリュームに割り付けられたデータ ――― rdbexspcコマンド ベーススペースを切り離します。 (mdetachオプション) (14) 障害ボリュームを取り換えます。 ――― CE作業 (15) ボリュームの構成情報をリカバリします。 ――― partedコマンド (16) 切り離したデータベーススペースを接続します。 ――― rdbexspcコマンド (mattachオプション) (17) 対象DSIを“アクセス禁止”にします。 ――― rdbinhコマンド (18) 対象DSIをリカバリします。 ――― rdbrcvコマンド (FWモード) (19) 目的業務を再実行します。
リカバリ操作例を以下に示します。
$ rdbdmp -i 在庫管理DB.在庫表DSI1 -f stock1@/backup/rdb -e -y $ rdbdmp -i 在庫管理DB.在庫表DSI2 -f stock2@/backup/rdb -e -y 目的業務の実行 $ rdblog -S -a $ rdbdmp -i 在庫管理DB.在庫表DSI1 -f stock1@/backup/rdb -e -y $ rdbdmp -i 在庫管理DB.在庫表DSI2 -f stock2@/backup/rdb -e -y $ rdblog -R -a $ rdblog -R -a 目的業務の実行 $ rdblog -S -a $ rdbdmp -i 在庫管理DB.在庫表DSI1 -f stock1@/backup/rdb -e -y $ rdbdmp -i 在庫管理DB.在庫表DSI2 -f stock2@/backup/rdb -e -y $ rdblog -R -a 目的業務の実行 rdb: ERROR: qdg13039u:データベーススペースのデバイスに異常を検出しました DB名='在庫 管理DB' DBS名='DBSP_1' デバイス名='/dev_symfoware/raw10' 物理ブロック番号='99' 原因コード='1' 調査コード='2 0 ' (システム名=rdbsys1) rdb: ERROR: qdg03650u:入出力障害のためデータベースをアクセス禁止状態にしました DB名='在庫管理DB' DSI名='在庫表DSI1' ページ番号='10' DBS名='DBSP_1' 物理ブ ロック番号='99' (システム名=rdbsys1) オペレータ操作 … 破壊されているディスク上のデータベーススペース名を確認する。 $ rdbinf -p 在庫管理DB.DBSP_1 -a $ rdbinf -p 在庫管理DB.DBSP_2 -a $ rdbexspc -mdetach -p 在庫管理DB.DBSP_1 $ rdbexspc -mdetach -p 在庫管理DB.DBSP_2 CE作業 … 障害ボリュームの交換およびボリューム構成情報のリカバリ $ rdbexspc -mattach -p 在庫管理DB.DBSP_1 $ rdbexspc -mattach -p 在庫管理DB.DBSP_2 $ rdbinh -i 在庫管理DB.在庫表DSI1 $ rdbinh -i 在庫管理DB.在庫表DSI2 $ rdbrcv -F -i 在庫管理DB.在庫表DSI1 -f stock1@/backup/rdb -w /home/rdb1/work rdb: INFO: qdg02654i:rdbrcvコマンドの処理を開始します (システム名=rdbsys1) rdb: INFO: qdg14116i:指定した表のDSIに属するインデックスのDSIの復旧を開始します (システム名=rdbsys1) rdb: INFO: qdg02595i:指定した資源'在庫管理DB.在庫表DSI1'に属するインデックスの DSI'在庫管理DB.製品名IXDSI1'のリカバリが正常終了しました (システム名=rdbsys1) rdb: INFO: qdg02655i:rdbrcvコマンドの処理が正常終了しました (システム名=rdbsys1) $ rdbrcv -F -i 在庫管理DB.在庫表DSI2 -f stock2@/backup/rdb -w /home/rdb1/work rdb: INFO: qdg02654i:rdbrcvコマンドの処理を開始します (システム名=rdbsys1) rdb: INFO: qdg14116i:指定した表のDSIに属するインデックスのDSIの復旧を開始します (システム名=rdbsys1) rdb: INFO: qdg02595i:指定した資源'在庫管理DB.在庫表DSI2'に属するインデックスの DSI'在庫管理DB.製品名IXDSI2'のリカバリが正常終了しました (システム名=rdbsys1) rdb: INFO: qdg02655i:rdbrcvコマンドの処理が正常終了しました (システム名=rdbsys1) 目的業務の再実行
注意
アーカイブログファイルが閉塞された状態では、データベースを最新状態までリカバリすることができません。アーカイブログファイルが閉塞された場合は、アーカイブログファイルのリカバリ処理を行ってください。アーカイブログファイルのリカバリについては、“11.6 アーカイブログファイルのリカバリ”を参照してください。
閉塞状態のアーカイブログファイルが存在する場合、システムメッセージqdg13508uを出力し、rdbrcvコマンドが異常終了します。このような場合、通常はrdbrcvコマンドのLOADモードによるリカバリが必要になりますが、退避データ取得時点から最新またはリカバリ終了ポイントまでのリカバリ区間が連続していることが保証できる場合、rdbrcvコマンドのFWモードによるリカバリが可能です。
以下にリカバリが可能なケースを示します。
アーカイブログのバックアップが存在し、そのアーカイブログファイルにリカバリ終了ポイントが存在している場合
退避データ取得時点からリカバリ終了ポイントが存在するすべてのアーカイブログのバックアップおよびリカバリ終了ポイント指定で、rdbrcvコマンドを実行してください。
閉塞状態のアーカイブログファイルに切り替わる以前に使用されていたアーカイブログファイルにリカバリ終了ポイントが存在している場合
リカバリ終了ポイントが存在しているアーカイブログファイルをバックアップ後、1.と同じ操作を実行してください。
アーカイブログファイル閉塞後に切り替わったアーカイブログファイル以降に退避データの取得を行っている場合
閉塞されたアーカイブログファイルおよび閉塞以前に使用されていたアーカイブログファイルを破棄後、再度rdbrcvコマンドを実行してください。