ページの先頭行へ戻る
Symfoware Server V12.2.0 RDB運用ガイド
FUJITSU Software

15.4.2 媒体障害からのリカバリ

データベースの媒体が破壊された場合のデータベースのリカバリ方法について説明します。

15.4.2.1 障害の検出からリカバリまでの手順

データベースの媒体に入出力障害が発生した場合、システムメッセージ“qdg13039u”が出力されます。この場合のリカバリは、メディアリカバリにより行います。

なお、ここでの媒体障害とは、ETERNUS上に割り当てたデータベースにまったくアクセスできない状態となり、上記システムメッセージが出力される障害のことです。

媒体障害が発生した場合の、障害の検出からリカバリまでの手順を説明します。

運用ごとのリカバリ操作の手順や操作例の詳細は、“15.5.2.2 アーカイブログ適用によるリカバリ”以降で説明します。

  1. システムメッセージの確認および障害ディスクの特定

  2. 障害ディスク上のデータベーススペースの切離し

  3. 障害ディスクのリカバリ

  4. 障害データベーススペースのリカバリ

在庫管理DBに属する在庫表DSI1、製品名IXDSI1、在庫表DSI2、製品名IXDSI2が、ETERNUS上のボリュームに以下のように配置されている場合を例にとって、検出方法と確認方法を説明します。

DBS名: データベーススペース名

1) システムメッセージの確認および影響範囲の特定

データベースのアクセス中に媒体障害が発生した場合、Symfoware/RDBは、以下のメッセージを出力します。このメッセージから、媒体障害が発生したデータベース名、データベーススペース名およびデータベーススペースが割り付けられているデバイス名を確認してください。

rdb: ERROR: qdg13039u:データベーススペースのデバイスに異常を
  検出しました DB名='在庫 管理DB' DBS名='DBSP_1' デバイス名
   ='/dev/rdsk/c1t0d1s3' 物理ブロック番号='99' 原因コード='1'
   調査コード='2 0 ' (システム名=rdbsys1) 
rdb: ERROR: qdg03650u:入出力障害のためデータベースをアクセス
  禁止状態にしました DB名='在庫管理DB' DSI名='在庫表DSI1'
  ページ番号='10' DBS名='DBSP_1' 物理ブロック番号='99' 
  (システム名=rdbsys1) 

AdvancedCopy Managerの構成管理機能を用いて、障害が発生したディスクに他のデータベーススペースが割り付けられていないか確認してください。

参照

詳細は、“ETERNUS SF AdvancedCopy Manager運用手引書”、“ETERNUS SF AdvancedCopy Manager 運用ガイド”または“Softek AdvancedCopy Manager運用手引書”を参照してください。

2) 障害ディスク上のデータベーススペースの切離し

媒体障害からのリカバリを行うためにはディスクを交換します。交換作業を行う間、そのディスク上のすべてのデータベーススペースに対するアクセスを抑止する必要があります。そのため、Symfoware/RDBから一時的にそれらのデータベーススペースを切り離します。切り離されたすべてのデータベーススペースには、アクセス禁止状態が設定されます。データベーススペースの切離しは、rdbexspcコマンドのmdetachオプションにより行います。

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

3) 障害ディスクのリカバリ

CE作業により、ETERNUSのディスクをリカバリします。

4) 障害データベーススペースのリカバリ

データベーススペースを一括してリカバリする場合:

Advanced Backup Controllerでは、媒体障害が発生したディスク上に存在したデータベーススペースを、swstrestoreコマンドによりリカバリします。

$ swstrestore -g 2 /dev/rdsk/c1t0d1s3 

参照

swstrestoreコマンドの指定方法の詳細については、“ETERNUS SF AdvancedCopy Manager運用手引書”、“ETERNUS SF AdvancedCopy Manager 運用ガイド”または“Softek AdvancedCopy Manager運用手引書”を参照してください。

特定のデータベーススペースのみリカバリする場合:

ロググループ単位など複数のデータベーススペースのリカバリが必要な場合に、特定のデータベーススペースを優先してリカバリすることができます。

特定のデータベーススペースのリカバリは、swstrestoreコマンドによりログを適用しないリカバリを実施したあと、rdbmrrcvコマンドによりアーカイブログを適用して行います。

swstrestoreコマンドでは、リカバリ処理のみを行いデータベーススペースのリカバリは行わないオプションnologを指定します。さらに、リカバリ処理で利用するためのリカバリ制御ファイルの出力先ディレクトリを指定します。

$ swstrestore -nolog /rcvctl /dev/rdsk/c1t0d1s3 

参照

swstrestoreコマンドの指定方法の詳細については、“ETERNUS SF AdvancedCopy Manager運用手引書”、“ETERNUS SF AdvancedCopy Manager 運用ガイド”または“Softek AdvancedCopy Manager運用手引書”を参照してください。

swstrestoreコマンドによりリカバリ処理の行われたデータベーススペースを、rdbmrrcvコマンドによりアーカイブログを適用してリカバリします。

この例では、swstrestoreコマンドで取り出したリカバリ制御ファイルを指定して、データベーススペース名DBSP_1のリカバリを行っています。

$ rdbmrrcv -M -o -p 在庫管理DB.DBSP_1 -f /rcvctl -w /tmp

参照

rdbmrrcvコマンドの指定方法の詳細については、“コマンドリファレンス”を参照してください。

15.4.2.2 アーカイブログ適用によるリカバリ

Advanced Backup Controllerのオンラインバックアップを利用し、アーカイブログと連携した運用を行っている場合のリカバリ操作の手順とリカバリ操作例を以下に示します。リカバリ時に使用する退避データは、通常ダンプを使用してください。

ここではDBSP_1とDBSP_2の2つのデータベーススペースにより構成され、ロググループ名が“grp1”であるデータベースをAdvanced Backup Controllerで運用した例を示しています。

リカバリ操作の手順

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

(1) 同期処理を行います。                             ――― swststartsyncコマンド 
(2) 同期処理の完了を確認します。                     ――― swstsyncstatコマンド 
(3) Advanced Backup Controllerにより退避データを     ――― swstbackupコマンド 
  取得します。                                              (nオプション) 
(4) 次回の退避データ取得に備えて、同期処理を行い     ――― swststartsyncコマンド
  ます。
(5) 目的業務を実行します。 
(6) 同期処理の完了を確認します。                     ――― swstsyncstatコマンド 
(7) アーカイブログファイルの強制切替えを行います。   ――― rdblogコマンド 
                                                            (Sオプションかつ
                                                             aオプションかつ
                                                             gオプション) 
(8) Advanced Backup Controller により退避データを    ――― swstbackupコマンド 
  取得します。                                              (nオプション) 
(9) 次回の退避データ取得に備えて、同期処理を行い     ――― swststartsyncコマンド
  ます。 
(10) アーカイブログを破棄します。                    ――― rdblogコマンド 
                                                            (Rオプションかつ
                                                             aオプションかつ
                                                             gオプション) 
(11) 目的業務を実行します。 

               ★ 媒体障害発生 

(12) デバイス異常の影響範囲を確認します。 
       他ボリュームがある場合    → (13)へ 
       他ボリュームがない場合    → (14)へ 
(13) ディスク上のデータベーススペース名を確認し      ――― rdbexspcコマンド 
   ます。                                                   (mpオプション) 
(14) 媒体障害が発生したデータベーススペースを切り    ――― rdbexspcコマンド 
   離します。                                               (mdetachオプション)
(15) 媒体障害が発生していたデータベーススペースの    ――― swstcancelsyncコマンド
   同期処理をキャンセルします。 
(16) ETERNUSのディスクをリカバリします。             ――― CE作業 
(17) 媒体障害が発生していたデータベーススペースを    ――― swstrestoreコマンド 
   メディアリカバリモードで最新状態にリカバリします。       (gオプション) 
(18) 次回の退避データ取得に備えて、媒体障害が発生    ――― swststartsyncコマンド 
   していたデータベーススペースの同期処理を行います。 
(19) 目的業務を再実行します。 
リカバリ操作例

以下の例は、デバイス異常の影響範囲に他ボリュームがない場合を想定しています。

$ swststartsync -n grp1 

$ swstsyncstat -n grp1 

$ swstbackup -n grp1 

$ swststartsync -n grp1 

目的業務の実行 

$ swstsyncstat -n grp1 

$ rdblog -S -a -g grp1 

$ swstbackup -n grp1 

$ swststartsync -n grp1 

$ rdblog -R -a -g grp1 

目的業務の実行 

rdb: ERROR: qdg13039u:データベーススペースのデバイスに異常を検出しました 
     DB名='在庫 管理DB' DBS名='DBSP_1' デバイス名='/dev/rdsk/c1t0d1s3' 
     物理ブロック番号='99' 原因コード='1' 調査コード='2 0 ' (システム名=rdbsys1) 
rdb: ERROR: qdg03650u:入出力障害のためデータベースをアクセス禁止状態にしました 
     DB名='在庫管理DB' DSI名='在庫表DSI1' ページ番号='10' DBS名='DBSP_1' 
     物理ブロック番号='99' (システム名=rdbsys1) 

デバイス異常の影響範囲を確認 

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

$ swstcancelsync /dev/rdsk/c1t0d1s3 

CE作業 … ETERNUSのディスクリカバリ 

$ swstrestore -g 1 /dev/rdsk/c1t0d1s3 

/dev/rdsk/c1t0d1s3 swstrestore completed 

$ swststartsync /dev/rdsk/c1t0d1s3 

目的業務の再実行 

参考

  • アーカイブログ適用によるリカバリでは、バックアップ時点へのリカバリおよびrdbsetrpコマンドで設定したリカバリポイントまでのリカバリも可能です。

    詳細については、“ETERNUS SF AdvancedCopy Manager運用手引書”、“ETERNUS SF AdvancedCopy Manager 運用ガイド”または“Softek AdvancedCopy Manager運用手引書”を参照してください。

  • Advanced Backup Controllerを利用したリカバリは、ロググループまたはデータベーススペース単位に行われます。このため、iオプション指定でrdbsetrpコマンドを実行することによってDSI単位に設定したリカバリポイントを、Advanced Backup Controllerを利用したリカバリ時に使用した場合、リカバリポイント設定時点の状態を保証できません。

15.4.2.3 バックアップ時点へのリカバリ

以下の運用の場合は、swstrestoreコマンドにより、退避データ取得時点の状態にデータベースをリカバリします。

リカバリ時に使用する退避データは、参照ダンプを使用してください。

ここではDBSP_1とDBSP_2の2つのデータベーススペースにより構成され、ロググループ名が“grp1”であるデータベースをAdvanced Backup Controllerで運用した例を示しています。

リカバリ操作の手順

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

(1) 対象データベーススペース群に存在するすべて        ――― rdbrtrコマンド 
  のDSIに“更新抑止”の利用規定を設定します。                (rwオプション) 
(2) 同期処理を行います。                              ――― swststartsyncコマンド 
(3) 同期処理の完了を確認します。                      ――― swstsyncstatコマンド 
(4) Advanced Backup Controllerにより退避データを      ――― swstbackupコマンド 
  取得します。                                               (nオプションかつ
                                                              kオプション) 
(5) 次回の退避データ取得に備えて、同期処理を行い      ――― swststartsyncコマンド
  ます。
(6) 目的業務を実行します。 

              ★ 媒体障害発生 

(7) デバイス異常の影響範囲を確認します。 
      他ボリュームがある場合    → (8)へ 
      他ボリュームがない場合    → (9)へ 
(8) ディスク上のデータベーススペース名を確認します。  ――― rdbexspcコマンド 
                                                             (mpオプション) 
(9) 媒体障害が発生したデータベーススペースを切り      ――― rdbexspcコマンド 
  離します。                                                 (mdetachオプション) 
(10) 媒体障害が発生していたデータベーススペースの     ――― swstcancelsyncコマンド 
   同期処理をキャンセルします。 
(11) ETERNUSのディスクをリカバリします。              ――― CE作業 
(12) 同時にリカバリするデータベーススペースを“アク   ――― rdbinhコマンド 
   セス禁止”にします。                                      (pオプション) 
(13) 媒体障害が発生していたデータベーススペース       ――― swstrestoreコマンド 
   をポイントリカバリモードでバックアップ取得                (gオプション) 
   時点にリカバリします。
(14) 次回の退避データ取得に備えて、媒体障害が         ――― swststartsyncコマンド 
   発生していたデータベーススペースの同期処理
   を行います。 
(15) 目的業務を再実行します。 
リカバリ操作例

以下の例は、デバイス異常の影響範囲に他ボリュームがない場合を想定しています。

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

$ swststartsync -n grp1 

$ swstsyncstat -n grp1 

$ swstbackup -n -k grp1 

$ swststartsync -n grp1 

目的業務の実行 

rdb: ERROR: qdg13039u:データベーススペースのデバイスに異常を検出しました 
     DB名='在庫 管理DB' DBS名='DBSP_1' デバイス名='/dev/rdbk/c1t0d1s3' 
     物理ブロック番号='99' 原因コード='1' 調査コード='2 0 ' (システム名=rdbsys1) 
rdb: ERROR: qdg03650u:入出力障害のためデータベースをアクセス禁止状態にしました 
     DB名='在庫管理DB' DSI名='在庫表DSI1' ページ番号='10' DBS名='DBSP_1' 
     物理ブ ロック番号='99' (システム名=rdbsys1) 

デバイス異常の影響範囲を確認 

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

$ swstcancelsync /dev/rdsk/c1t0d1s3 

CE作業 … ETERNUSのディスクリカバリ 

$ rdbinh -p 在庫管理DB.DBSP_2 

$ swstrestore -g 1 /dev/rdsk/c1t0d1s3 

/dev/rdsk/c1t0d1s3 swstrestore completed 

$ swststartsync /dev/rdsk/c1t0d1s3 

目的業務の再実行 

15.4.2.4 外部媒体の退避データからのリカバリ

ネットワークストレージサーバを利用して磁気テープなどの外部媒体に二次退避した退避データを用いてリカバリを行うことができます。

参照

詳細は“ダイレクトバックアップ運用手引書”を参照してください。