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

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

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

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

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

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

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

運用ごとのリカバリ操作の手順や操作例の詳細は、“15.4.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_symfoware/raw10' 物理ブロック番号='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 運用ガイド”を参照してください。

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

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

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

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

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

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

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

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

$ swstrestore -g 2 /dev_symfoware/raw10

参照

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

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

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

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

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

$ swstrestore -nolog /rcvctl /dev_symfoware/raw10

参照

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

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

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

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

参照

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

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

アーカイブログ適用によるリカバリについて説明します。

ETERNUSのEC機能を利用する場合

ETERNUSのEC(Equivalent Copy)機能を利用した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_symfoware/raw10' 
     物理ブロック番号='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_symfoware/raw10

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

$ swstrestore -g 1 /dev_symfoware/raw10

/dev_symfoware/raw10 swstrestore completed 

$ swststartsync /dev_symfoware/raw10

目的業務の再実行 

ETERNUSのOPC機能を利用する場合

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

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

リカバリ操作の手順

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

(1) Advanced Backup Controllerにより退避データを     ――― swstbackupコマンド 
  取得します。                                              (nオプション) 
(2) 目的業務を実行します。 
(3) アーカイブログファイルの強制切替えを行います。   ――― rdblogコマンド 
                                                            (Sオプションかつ
                                                             aオプションかつ
                                                             gオプション) 
(4) Advanced Backup Controller により退避データを    ――― swstbackupコマンド 
  取得します。                                              (nオプション) 
(5) アーカイブログを破棄します。                     ――― rdblogコマンド 
                                                            (Rオプションかつ
                                                             aオプションかつ
                                                             gオプション) 
(6) 目的業務を実行します。 

               ★ 媒体障害発生 

(7) デバイス異常の影響範囲を確認します。 
       他ボリュームがある場合    → (8)へ 
       他ボリュームがない場合    → (9)へ 
(8) ディスク上のデータベーススペース名を確認し       ――― rdbexspcコマンド 
   ます。                                                   (mpオプション) 
(9) 媒体障害が発生したデータベーススペースを切り     ――― rdbexspcコマンド 
   離します。                                               (mdetachオプション)
(10) ETERNUSのディスクをリカバリします。             ――― CE作業 
(11) 媒体障害が発生していたデータベーススペースを    ――― swstrestoreコマンド 
   メディアリカバリモードで最新状態にリカバリします。       (gオプション) 
(12) 目的業務を再実行します。 
リカバリ操作例

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

$ swstbackup -n grp1 

目的業務の実行 

$ rdblog -S -a -g grp1 

$ swstbackup -n grp1 

$ rdblog -R -a -g grp1 

目的業務の実行 

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) 

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

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

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

$ swstrestore -g 1 /dev_symfoware/raw10

/dev_symfoware/raw10 swstrestore completed 

目的業務の再実行 

参考

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

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

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

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

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

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

ETERNUSのEC機能を利用する場合

ここではDBSP_1とDBSP_2の2つのデータベーススペースにより構成され、ロググループ名が“grp1”であるデータベースをETERNUSのEC(Equivalent Copy)機能を利用して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_symfoware/raw10' 
     物理ブロック番号='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_symfoware/raw10

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

$ rdbinh -p 在庫管理DB.DBSP_2 

$ swstrestore -g 1 /dev_symfoware/raw10

/dev_symfoware/raw10 swstrestore completed 

$ swststartsync /dev_symfoware/raw10

目的業務の再実行 

ETERNUSのOPC機能を利用する場合

ここではDBSP_1とDBSP_2の2つのデータベーススペースにより構成され、ロググループ名が“grp1”であるデータベースをETERNUSのOPC(One Point Copy)機能を利用してAdvanced Backup Controllerで運用を行っている場合のリカバリ操作の手順とリカバリ操作例を以下に示します。

リカバリ操作の手順

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

(1) 対象データベーススペース群に存在するすべて        ――― rdbrtrコマンド 
  のDSIに“更新抑止”の利用規定を設定します。                (rwオプション) 
(2) Advanced Backup Controllerにより退避データを      ――― swstbackupコマンド 
  取得します。                                               (nオプションかつ
                                                              kオプション) 
(3) 目的業務を実行します。 

              ★ 媒体障害発生 

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

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

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

$ swstbackup -n -k grp1 

目的業務の実行 

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) 

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

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

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

$ rdbinh -p 在庫管理DB.DBSP_2 

$ swstrestore -g 1 /dev_symfoware/raw10

/dev_symfoware/raw10 swstrestore completed 

目的業務の再実行