参照しかしていないDSIは、更新を行っていないため、更新ログの取得は行われません。そこで、rdbrcvコマンドのREFモードにより、アーカイブログを適用せずに、最新の状態にまでリカバリすることができます。また、媒体障害が発生したデータベーススペースに割り当てられているデータだけをリカバリするため、高速なリカバリを行うことができます。
参照しかしていないDSIとは、退避データを作成したあと、リカバリ時点まで継続して更新抑止を設定してあるDSIのことです。
参照のみを行っているDSIをリカバリする場合には、以下の条件を満足していなければなりません。
rdbdmpコマンド実行時にNオプションを指定し、エクステント形式で退避データを取得している
上記方法で退避データを取得後に、以下の操作をしていない
更新抑止の解除
LOADモードのリカバリ
終了点指定のFWモードのリカバリ
DSIの再編成
参照のみを行っているDSIをリカバリする場合の、リカバリ操作の手順とリカバリ操作例を以下に示します。
リカバリ操作の手順
(1) 対象DSIに“更新抑止”の利用規定を設定します。 ―――――― rdbrtrコマンド (rwオプション) (2) 対象DSIの退避データをエクステント形式で ―――――― rdbdmpコマンド 取得します。 (Nオプション) (3) 業務を実行します。 ★ 媒体障害発生 (4) 媒体障害が発生したディスクに割り付けられたデータ ―――――― rdbinfコマンド ベーススペースより、リカバリ対象のDSIを把握します。 (pオプション) (5) 媒体障害が発生したディスクに割り付けられたデータ ―――――― rdbexspcコマンド ベーススペースを切り離します。 (mdetachオプション) (6) 障害ディスクを取り換えます。 ―――――― CE作業 (7) ディレクトリ構成をリカバリします。 ―――――― mkdirコマンド (8) 切り離したデータベーススペースを接続します。 ―――――― rdbexspcコマンド (mattachオプション) (9) 障害の発生している媒体(表のDSI)をリカバリします。 ―――――― rdbrcvコマンド (REFモード) (10) 目的業務を再実行します。
リカバリ操作例
> rdbrtr -i 在庫管理DB.在庫表DSI1 -rw > rdbdmp -i 在庫管理DB.在庫表DSI1 -f D:\USERS\DEFAULT\BACKUP1.TXT -N -e -y 業務の実行 qdg13039u:データベーススペースのデバイスに異常を検出しました DB名='在庫管理DB' DBS名='DBSP_1' デバイス名='E:\SFWD\RDB\USR\DBSP\DBSP_1' 物理ブロック番号='99' 原因コード='1' 調査コード='2 0 ' (システム名=rdbsys1) qdg03650u:入出力障害のためデータベースをアクセス禁止状態にしました DB名= '在庫管理DB' DSI名= '在庫表DSI1' ページ番号='10' DBS名='DBSP_1' 物理ブロック番号='99' (システム名=rdbsys1) > rdbinf -p 在庫管理DB.DBSP_1 -a > rdbexspc -mdetach -p 在庫管理DB.DBSP_1 CE作業 … 障害ディスクの交換 > mkdir E:\SFWD\RDB\USR\DBSP > rdbexspc -mattach -p 在庫管理DB.DBSP_1 > rdbrcv -R -p 在庫管理DB.DBSP_1 -f D:\USERS\DEFAULT\BACKUP1.TXT -w D:\TEMP qdg02654i:rdbrcvコマンドの処理を開始します (システム名=rdbsys1) qdg12579i:DSI'在庫管理DB.在庫表DSI1'を退避データから復旧します (システム名=rdbsys1) qdg14116i:指定した表のDSIに属するインデックスのDSIの復旧を開始します (システム名=rdbsys1) qdg02595i:指定した資源'在庫管理DB.在庫表DSI1'に属するインデックスのDSI '在庫管理DB.製品名IXDSI1'のリカバリが正常終了しました (システム名=rdbsys1) qdg02655i:rdbrcvコマンドの処理が正常終了しました (システム名=rdbsys1) 目的業務の再実行
D:\USERS\DEFAULT\BACKUP1.TXTの内容を以下に示します。
在庫管理DB.DBSP_1 E:\BACKUP\DBSP\DBSP_1 在庫管理DB.DBSP_2 E:\BACKUP\DBSP\DBSP_2 在庫管理DB.DBSP_3 E:\BACKUP\DBSP\DBSP_3