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

11.5.2 Symfoware/RDBを強制停止した場合のリカバリ(アーカイブログ運用)

テンポラリログファイルの閉塞状態から、Symfoware/RDBを強制停止した場合でアーカイブログ運用を行っている場合は、rdbadjrcvコマンドにより、データベースのリカバリを行ってください。

参照

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

この場合のリカバリ操作の手順とリカバリ操作例を以下に示します。

なお、RDBディクショナリ、またはRDBディレクトリファイルが破壊されている場合は、rdbadjrcvコマンドは実行できないため、(10)の手順を迂回して実施してください。rdbadjrcvコマンドでRDBディクショナリのリカバリが失敗した場合は、rdbrcvdicコマンドでRDBディクショナリ、RDBディレクトリファイルをリカバリ後、rdbadjrcvコマンドを実行してください。

リカバリ操作の手順

(1) 業務中にテンポラリログファイルのアクセスエラー
    が発生した場合、システムメッセージを出力して、
    テンポラリログファイルを閉塞します。
    スケ-ラブルログ運用を行っている場合は、シス
    テムメッセージにより、リカバリすべきテンポラリログ
    ファイルのロググループを特定します。
(2) Symfoware/RDBを強制停止します。                   ―――――― rdbstopコマンド
                                                                   (eオプション)
(3) 障害ディスクを取り換えます。                      ―――――― CE作業
(4) ディレクトリ構成をリカバリします。                ―――――― mkdirコマンド
      ログ管理ファイルとテンポラリログファイルを
    同一のディスクに配置している場合                  →  (5)へ
      ログ管理ファイルとテンポラリログファイルを
    同一のディスクに配置していない場合                →  (8)へ
(5) ログ管理ファイルを作成します。                    ―――――― rdblogコマンド
      スケーラブルログ運用を行っていない場合また
    はシステムロググループの場合                                   (Iオプション)
      ユーザロググループの場合                                     (Iオプションかつ
                                                                   rオプションかつ
                                                                   gオプション)
(6) アーカイブログファイルを再登録します。            ―――――― rdblogコマンド
                                                                   (Aオプションかつ
                                                                   aオプション)
(7) アーカイブログファイルが正常に登録されたことを確認―――――― rdblogコマンド
    します。                                                 
      スケーラブルログ運用を行っていない場合                       (Vオプションかつ
                                                                   aオプション)
      スケーラブルログ運用を行っている場合                         (Vオプションかつ
                                                                   aオプションかつ
                                                                   gオプション)
(8) テンポラリログファイルを再作成します。            ―――――― rdblogコマンド
      スケーラブルログ運用を行っていない場合                       (Gオプションかつ
                                                                   tオプションかつ
                                                                   rオプション)
      スケーラブルログ運用を行っている場合                         (Gオプションかつ
                                                                   tオプションかつ
                                                                   rオプションかつ
                                                                   gオプション)
(9) テンポラリログファイルが正常に再作成されたことを  ―――――― rdblogコマンド
    確認します。                                              
      スケーラブルログ運用を行っていない場合                       (Vオプションかつ
                                                                   tオプション) 
      スケーラブルログ運用を行っている場合                         (Vオプションかつ
                                                                   tオプションかつ
                                                                   gオプション)
       RDBディクショナリ、または、RDBディレクトリファイルも
       破壊されている場合                             → (11)へ
(10) アーカイブログファイルを使用したデータベースの     ―――――― rdbadjrcvコマンド
   リカバリを行います。
      ユーザロググループの場合                                     (gオプション)
      rdbadjrcvコマンドによって、RDB
    ディクショナリがリカバリできなかった場合          →  (11)へ
      ユーザロググループの場合または、
    rdbadjrcvコマンドによって、RDB
    ディクショナリがリカバリできた場合                →  (14)へ
(11) RDBディクショナリをリカバリします。              ――――――  rdbrcvdicコマンド
                                                                    (FWモード)
       スケーラブルディレクトリ運用を行っていない場合 →  (10)へ
       スケーラブルディレクトリ運用を行っている場合   →  (12)へ
(12) すべてのユーザロググループ用のRDBディレクトリ   ―――――― rdbscldirコマンド
     ファイルを再登録します。                                     (Aオプションかつ
                                                                  gオプション)
(13) ユーザロググループ用のRDBディレクトリファイル   ―――――― rdbscldirコマンド
     情報を確認します。                                           (Vオプション)
     状態(Status)が“inhibit”の場合は、
     “11.2.5 ユーザロググループ用のRDBディレクトリファイルのリカバリ”
     の(7)と(8)を実行してください。                   →  (10)へ
(14) Symfoware/RDBを起動します。                    ―――――― rdbstartコマンド
(15) rdbadjrcvコマンドでリカバリできなかった            ―――――― rdbinhコマンド
     資源を“アクセス禁止状態”にします。       
(16) rdbadjrcvコマンドでリカバリできなかった            ―――――― rdbrcvコマンド
     資源に対してリカバリ処理を行います。                            (FWモード)
(17) rdbadjrcvコマンドでリカバリできなかった            ―――――― rdbdmpコマンド
     資源の退避データを取得します。
(18) RDBディクショナリのリカバリを行った場合は、        ―――――― rdbdmpdicコマンド
     RDBディクショナリの退避データも取得します。

リカバリ操作例

リカバリ操作は、以下の運用形態により異なります。

ここでは、以下の場合を想定しています。

スケーラブルログ運用を行っていない場合およびシステムロググループの場合

以下の例では、システムロググループの場合を想定しています。

rdblogコマンドのgオプション(ロググループ名指定)は省略しています。

qdg12111u:テンポラリログファイルに 入出力障害が発生しました 
  ファイル名='D:\SFWD\RDB\USR\LOG\TMPLOG' errno=5 (システム名=rdbsys1) 
qdg13239i:ロググループ'system'において事象'qdg12111u'が発生しました 
  (システム名=rdbsys1) 

qdg13303e:テンポラリログファイルを閉塞しました (システム名=rdbsys1) 
qdg13239i:ロググループ'system'において事象'qdg13303e'が発生しました 
  (システム名=rdbsys1) 

> rdbstop -e 

qdg02842u:シグナル9を受信したため RDBIIシステム空間が異常終了しました 
  (システム名=rdbsys1) 

CE作業  …  障害ディスクの交換 

> mkdir D:\SFWD\RDB\USR\LOG

> rdblog -G -t -r -c 10M D:\SFWD\RDB\USR\LOG\TMPLOG -in -in 30M 30M 20 

> rdblog -V -t 

> rdbadjrcv -w D:\TEMP 

qdg13038u:アジャストリカバリが不可能なためRDBディクショナリをアクセス禁止状態
  にしました(システム名=rdbsys1) 

> rdbrcvdic -F -f DICBACK@E:\BACKUP\DIC -du 1M -w D:\TEMP 

> rdbadjrcv -w D:\TEMP 

qdg13037u:アジャストリカバリが不可能なため データベースをアクセス禁止状態にしました
  DB名='在庫管理DB' DSI名='在庫表DSI1' (システム名=rdbsys1) 

> rdbstart 

> rdbinh -i 在庫管理DB.在庫表DSI1 

> rdbrcv -F -i 在庫管理DB.在庫表DSI1 -f STOCK@E:\BACKUP\DB 
            -w D:\TEMP

> rdbdmp -i 在庫管理DB.在庫表DSI1 -f STOCK@E:\BACKUP\DB -e -y 

> rdbdmpdic -f DICBACK@E:\BACKUP\DIC -e -y 
ユーザロググループの場合およびスケーラブルディレクトリ運用のユーザロググループの場合
qdg12111u:テンポラリログファイルに 入出力障害が発生しました 
  ファイル名='D:\SFWD\RDB\USR\LOG\TMPLOG errno=5'(システム名=rdbsys1) 
qdg13239i:ロググループ'grp1'において事象'qdg12111u'が発生しました 
  (システム名=rdbsys1) 

qdg13303e:テンポラリログファイルを閉塞しました (システム名=rdbsys1) 
qdg13239i:ロググループ'grp1'において事象'qdg13303e'が発生しました 
  (システム名=rdbsys1) 

> rdbstop -e 

qdg02842u:シグナル9を受信したため RDBIIシステム空間が異常終了しました 
  (システム名=rdbsys1) 

CE作業  …  障害ディスクの交換 

> mkdir D:\SFWD\RDB\USR\LOG

> rdblog -G -t -r -g grp1 -c 10M D:\SFWD\RDB\USR\LOG\TMPLOG -in -in 30M 30M 20 

> rdblog -V -t -g grp1 

> rdbadjrcv -g grp1 -w D:\USER\RDB1\WORK 

qdg13037u:アジャストリカバリが不可能なためデータベースをアクセス禁止状態にしました
  DB名='在庫管理DB' DSI名='在庫表DSI1' (システム名=rdbsys1) 

> rdbstart 

> rdbinh -i 在庫管理DB.在庫表DSI1 

> rdbrcv -F -i  在庫管理DB.在庫表DSI1  -f STOCK@E:\BACKUP\DB 
            -w D:\USER\RDB1\WORK

> rdbdmp -i 在庫管理DB.在庫表DSI1 -f STOCK1@E:\BACKUP\DB -e -y 
スケーラブルディレクトリ運用のシステムロググループの場合

システムロググループの場合、rdblogコマンドのgオプション(ロググループ名の指定)を、省略することができます。以下の例では、ロググループ名を省略しています。

qdg12111u:テンポラリログファイルに 入出力障害が発生しました 
  ファイル名='D:\SFWD\RDB\USR\LOG\TMPLOG' errno=5 (システム名=rdbsys1) 
qdg13239i:ロググループ'system'において事象'qdg12111u'が発生しました 
  (システム名=rdbsys1) 
qdg13303e:テンポラリログファイルを閉塞しました (システム名=rdbsys1) 
qdg13239i:ロググループ'system'において事象'qdg13303e'が発生しました 
  (システム名=rdbsys1) 

> rdbstop -e 

qdg02842u:シグナル9を受信したため RDBIIシステム空間が異常終了しました 
  (システム名=rdbsys1) 

CE作業  …  障害ディスクの交換 

> mkdir D:\SFWD\RDB\USR\LOG

> rdblog -G -t -r -c 10M D:\SFWD\RDB\USR\LOG\TMPLOG -in -in 30M 30M 20 

> rdblog -V -t 

> rdbadjrcv -w D:\USER\RDB1\WORK 

qdg13038u:アジャストリカバリが不可能なためRDBディクショナリをアクセス禁止状態に
しました(システム名=rdbsys1)

> rdbrcvdic -F -f DICBACK@E:\BACKUP\DIC -du 1M -w c:\rdb\tmp

> rdbscldir -A -g grp1 D:\SFWD\RDB\USR\ULOG\DIR_FILE_G1
> rdbscldir -A -g grp2 D:\SFWD\RDB\USR\ULOG\DIR_FILE_G2

> rdbscldir -V 

   RDBII rdbscldir DATA:2007/04/14 TIME: 16/30/31 
     LogGroup    status    DBspace    Size(Used rate)  Directory file path 
     system      normal    Exist      1024K( 14%)      D:\SFWD\RDB\USR\DIR\DIR_FILE1
     grp1        normal    Exist      1024K( 23%)      D:\SFWD\RDB\USR\ULOG\DIR_FILE_G1
     grp2        normal    Exist      1024K( 23%)      D:\SFWD\RDB\USR\ULOG\DIR_FILE_G2

> rdbadjrcv -w D:\USER\RDB1\WORK 

qdg13037u:アジャストリカバリが不可能なためデータベースをアクセス禁止状態にしました
  DB名='在庫管理DB' DSI名='在庫表DSI1' (システム名=rdbsys1) 

> rdbstart 

> rdbinh -i 在庫管理DB.在庫表DSI1 

> rdbrcv -F -i 在庫管理DB.在庫表DSI1  -f STOCK@E:\BACKUP\DB 
           -w D:\USER\RDB1\WORK

> rdbdmp -i 在庫管理DB.在庫表DSI1 -f STOCK1@E:\BACKUP\DB -e -y 

> rdbdmpdic -f DICBACK@E:\BACKUP\DIC -e -y 

注意

  • rdbadjrcvコマンドによりデータベースのリカバリを行う場合、トランザクションの整合性を保証するため、テンポラリログファイルの作成時に指定したAIログ域サイズ以上のアーカイブログ量が必要になります。したがって、この機能を利用する場合には、最低限それだけのアーカイブログを保持する運用を行う必要があります。

  • テンポラリログファイルの入出力障害が発生する少し前にコミットした更新がロールバックになっている可能性があります。データリカバリ後、どこまでの更新が完了しているか確認し、必要に応じて再更新などを行ってください。

  • スケーラブルログ運用を行っていてアーカイブログ退避データを指定する場合は、リカバリ対象のDSIが属するロググループのアーカイブログ退避データを指定する必要があります。