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

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

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

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

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

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

参照

ミラーリングを構成する一部のディスクのみに障害が発生した場合の対処については、“PRIMECLUSTER Global Disk Services 説明書”を参照してリカバリしてください。

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

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

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

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

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

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

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

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

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

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

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

この例での、ディスク上のデータベーススペース情報一覧を以下に示します。

[ディスク上のデータベーススペース情報一覧]

在庫管理DB.DBSP_1 /dev/sfdsk/class0001/dsk/volume0001
在庫管理DB.DBSP_2 /dev/sfdsk/class0002/dsk/volume0002

メッセージに出力されたデバイス名から媒体障害が発生したディスクがPRIMECLUSTER GDSのボリュームであることがわかるので、PRIMECLUSTER GDS運用管理ビューから、PRIMECLUSTER GDSのボリューム名の属するミラーディスクグループに他のボリュームがないか確認します。

参照

運用管理ビューの詳細については、“PRIMECLUSTER Global Disk Services 説明書”を参照してください。

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

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

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

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

障害ディスクを交換します。

参照

PRIMECLUSTER GDSと連携している場合のボリュームのリカバリ方法については、“PRIMECLUSTER Global Disk Services 説明書”を参照してください。

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

PRIMECLUSTER GDSと連携した運用を行っている場合:

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

rdbmrrcvコマンド処理により退避データベーススペースのリカバリ処理が行われます。

この例では、データベーススペース名DBSP_1のリカバリを行っています。

$ rdbmrrcv -M -p 在庫管理DB.DBSP_1 -f /back -w /tmp
バックアップシェルスクリプトと連携した運用を行っている場合:

まず、媒体障害が発生したディスク上に存在したデータベーススペースを、バックアップシェルスクリプトによって採取した退避データベーススペースの内容でリカバリします。その後、媒体障害が発生したディスク上に存在したデータベーススペースを、rdbmrrcvコマンドによりリカバリします。

この例では、データベーススペース名DBSP_1のリカバリを行っています。

リカバリ作業 … 退避データベーススペースの内容をリカバリしたボリュームにリカバリ
$ rdbmrrcv -M -o -p 在庫管理DB.DBSP_1 -f /back -w /tmp 

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

Advanced Backup Controllerのオンラインバックアップを利用し、アーカイブログと連携した運用を行っている場合のリカバリ操作の手順とリカバリ操作例を以下に示します。

ここではDBSP_1とDBSP_2の2つのデータベーススペースにより構成されたデータベースをPRIMECLUSTER GDSと連携したAdvanced Backup Controllerで運用した例を示しています。

リカバリ操作の手順

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

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

              ★ 媒体障害発生 

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

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

$ rdbmrdmp -t /backgrp/bkgrp1a -f /back_a

目的業務の実行

$ rdblog -S -a

$ rdbmrdmp -t /backgrp/bkgrp1b -f /back_b

$ rdbmrdmp -D -t /backgrp/bkgrp1a -f /back_a

$ rdblog -R -a

目的業務の実行

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

PRIMECLUSTER GDS運用管理ビュー  …  デバイス異常の影響範囲を確認

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

PRIMECLUSTER GDS作業  …  ミラーボリュームのリカバリ


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

rdb: INFO: qdg02654i:rdbmrrcvコマンドの処理を開始します(システム名=rdbsys1)
rdb: INFO: qdg02655i:rdbmrrcvコマンドの処理が正常終了しました(システム名=rdbsys1)

目的業務の再実行

データベーススペースリスト/backgrp/bkgrp1aの内容を以下に示します。

在庫管理DB.DBSP_1 sdx13
在庫管理DB.DBSP_2 sdx23

データベーススペースリスト/backgrp/bkgrp1bの内容を以下に示します。

在庫管理DB.DBSP_1 sdx14
在庫管理DB.DBSP_2 sdx24

参考

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

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

注意

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

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

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

リカバリ時に使用する退避データは、rdbmrdmpコマンド実行時にRオプションを指定して取得したものです。

ここではDBSP_1とDBSP_2の2つのデータベーススペースにより構成されたデータベースをPRIMECLUTER GDSと連携したAdvanced Backup Controllerで運用した例を示しています。

リカバリ操作の手順

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

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

              ★ 媒体障害発生 

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

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

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


$ rdbmrdmp -R -t /backgrp/bkgrp1 -f /back

目的業務の実行

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

PRIMECLUSTER GDS運用管理ビュー  …  デバイス異常の影響範囲を確認

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

PRIMECLUTER GDS作業  …  ミラーボリュームのリカバリ

$ rdbinh -p 在庫管理DB.DBSP_2

$ rdbmrrcv -P -t /backgrp/bkgrp1  -f /back -w /tmp

rdb: INFO: qdg02654i:rdbmrrcvコマンドの処理を開始します   (システム名=rdbsys1)
rdb: INFO: qdg02655i:rdbmrrcvコマンドの処理が正常終了しました   (システム名=rdbsys1)

目的業務の再実行

データベーススペースリスト/backgrp/bkgrp1の内容を以下に示します。

在庫管理DB.DBSP_1 sdx14
在庫管理DB.DBSP_2 sdx24

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

PRIMECLUSTER GDSと連携した運用で、外部媒体に出力された退避データを用いてリカバリを行う場合、退避データベーススペースであったスライスの状態を、その退避データを採取した時と同一のアクセスパスで利用可能な状態に戻してからリカバリを行う必要があります。

参照

スライスの状態変更についての詳細は、“PRIMECLUSTER Global Disk Services 説明書”を参照してください。

バックアップ時と同一のtemp状態になっているミラースライスに対して、外部媒体にバックアップしてあった退避データベーススペースのデータをリカバリします。

その後、同じくバックアップしてあったリカバリ制御ファイルを利用して、rdbmrrcvコマンドを実行することにより、対象データベースをリカバリします。

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

  オペレータ操作 … /dev/st0にリカバリ制御ファイルがバックアップされている磁気テープ01を
                    装着する。
$ cd /back 
$ tar xvf /dev/st0 
  オペレータ操作 … /dev/st0からリカバリ制御ファイルがバックアップされている磁気テープ01を
                    離脱する。 

  オペレータ操作 … ミラースライスのアクセスモードを“読み書き用”に設定する。 

  オペレータ操作 … /dev/st0に退避データベーススペースがバックアップされている磁気テープ02を
                    装着する。
$ rdbcpraw -i /dev/st0 -o /dev/sfdsk/class0001/rdsk/disk010001.volume0001
  オペレータ操作 … /dev/st0から退避データベーススペースがバックアップされている磁気テープ02を
                    離脱する。 

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

備考.ミラースライスのアクセスモードは、PRIMECLUSTER GDSのsdxattrコマンドを使用して設定してください。

参照

sdxttrコマンドの詳細については、manコマンドを利用してPRIMECLUSTER GDSのコマンドリファレンスを参照してください。