ページの先頭行へ戻る
Symfoware Server V10.1.0 RDB運用ガイド

5.7 参照のみを行っているDSIをリカバリする方法

参照しかしていないDSIは、更新を行っていないため、更新ログの取得は行われません。そこで、rdbrcvコマンドのREFモードにより、アーカイブログを適用せずに、最新の状態にまでリカバリすることができます。また、媒体障害が発生したデータベーススペースに割り当てられているデータのみをリカバリするため、高速なリカバリを行うことができます。

参照のみを行っているDSIとは、退避データを作成したあと、リカバリ時点まで継続して更新抑止を設定してあるDSIのことです。

参照のみを行っているDSIをリカバリする場合には、以下の条件を満足していなければなりません。

参照のみを行っているDSIをリカバリする場合の、リカバリ操作の手順とリカバリ操作例を以下に示します。

リカバリ操作の手順

DBSP: データベーススペース

(1) 対象DSIに“更新抑止”の利用規定を設定します。          ――― rdbrtrコマンド 
                                                                  (rwオプション) 
(2) 対象DSIの退避データをエクステント形式で取得します。    ――― rdbdmpコマンド 
                                                                  (Nオプション) 
(3) 目的業務を実行します。 

              ★ 媒体障害発生 

(4) 事前に作成しておいたディスク上のデータベーススペース
  情報一覧から破壊されているディスク上のデータベースス
  ペース名を確認します。
(5) 媒体障害が発生したボリュームに割り付けられたデータ     ――― rdbinfコマンド 
  ベーススペースより、リカバリ対象のDSIを把握します。             (pオプション) 
(6) 媒体障害が発生したボリュームに割り付けられたデータ     ――― rdbexspcコマンド 
  ベーススペースを切り離します。                                  (mdetachオプション) 
(7) 障害ボリュームを取り換えます。                         ――― CE作業 
(8) ボリュームの構成情報をリカバリします。                 ―――【RHEL-AS4の場合】
                                                                   partedコマンドかつ
                                                                   rawコマンド
                                                                 【RHEL5またはRHEL6の場合】
                                                                   partedコマンド
(9) 切り離したデータベーススペースを接続します。           ――― rdbexspcコマンド 
                                                                  (mattachオプション)
(10) 障害の発生している媒体(表のDSI)をリカバリします。   ――― rdbrcvコマンド 
                                                                  (REFモード) 
(11) 目的業務を再実行します。 
リカバリ操作例

リカバリ操作例を以下に示します。

$ rdbrtr -i  在庫管理DB.在庫表DSI1 -rw

$ rdbdmp -i 在庫管理DB.在庫表DSI1 -f /home/rdb1/backup.data -N -e -y

目的業務の実行

rdb: ERROR: qdg13039u:データベーススペースのデバイスに異常を検出しました DB名='在庫
  管理DB' DBS名='DBSP_1' デバイス名='/dev/raw/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

$ rdbexspc -mdetach -p 在庫管理DB.DBSP_1 

CE作業  …  障害ボリュームの交換およびボリューム構成情報のリカバリ

$ rdbexspc -mattach -p 在庫管理DB.DBSP_1 

$ rdbrcv -R -p 在庫管理DB.DBSP_1  -f /home/rdb1/backup.data
         -w /home/rdb1/work

rdb: INFO: qdg02654i:rdbrcvコマンドの処理を開始します (システム名=rdbsys1)
rdb: INFO: qdg12579i:DSI'在庫管理DB.在庫表DSI1'を退避データから復旧します
  (システム名=rdbsys1)
rdb: INFO: qdg14116i:指定した表のDSIに属するインデックスのDSIの復旧を開始します
  (システム名=rdbsys1)
rdb: INFO: qdg02595i:指定した資源'在庫管理DB.在庫表DSI1'に属するインデックスの
  DSI'在庫管理DB.製品名IXDSI1'のリカバリが正常終了しました (システム名=rdbsys1)
rdb: INFO: qdg02655i:rdbrcvコマンドの処理が正常終了しました (システム名=rdbsys1)

目的業務の再実行

/home/rdb1/backup.dataの内容を以下に示します。

在庫管理DB.DBSP_1  /backup/rdb/raw10
在庫管理DB.DBSP_2  /backup/rdb/raw11
在庫管理DB.DBSP_3  /backup/rdb/raw12