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

5.5 複数のDSIを一括してリカバリする方法

データのバックアップおよびリカバリの処理時間を短縮するために、同一データベース内の複数のDSIを指定したディレクトリに一括して、バックアップおよびリカバリすることができます。

スケーラブルログ運用を行っている場合は、同一ロググループに属するDSIを指定してください。

業務の障害で退避データ取得時点にリカバリする場合の、複数DSIのリカバリ操作の手順とリカバリ操作例を以下に示します。

リカバリ操作の手順

(1) 対象となるすべてのDSIの退避データを取得します。    ――― rdbdmpコマンド 
(2) 目的業務を実行します。 

              ★ 媒体障害発生 

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

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

$ rdbdmp -t /home/rdb1/dsi.list   -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
$ rdbinf -p 在庫管理DB.DBSP_2 -a
$ rdbinf -p 在庫管理DB.DBSP_3 -a

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

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

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

$ rdbinh -i 在庫管理DB.在庫表DSI1
$ rdbinh -i 在庫管理DB.在庫表DSI2
$ rdbinh -i 在庫管理DB.在庫表DSI3

$ rdbrcv -L -t /home/rdb1/dsi.list -w /home/rdb1/work

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

目的業務の再実行

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

在庫管理DB.在庫表DSI1 dmp1@/backup/rdb
在庫管理DB.在庫表DSI2 dmp2
在庫管理DB.在庫表DSI3 dmp3