ページの先頭行へ戻る
Interstage Business Application Server 運用ガイド(高信頼性ログ編)
FUJITSU Software

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

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

参照

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

Symfoware/RDB停止中にテンポラリログファイルをリカバリする場合のリカバリ操作の手順とリカバリ操作例を以下に示します。

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

リカバリ操作の手順

 (1) 業務中にテンポラリログファイルのアクセスエラーが発生した場合、システム
  メッセージを出力して、テンポラリログファイルを閉塞します。
(2) Symfoware/RDBを強制停止します。                    ――― rdbstopコマンド
                                                               (eオプション)
(3) 障害ボリュームを取り換えます。                     ――― CE作業
(4) ボリュームの構成情報を復元します。                 ――― fmthardコマンド
      ログ管理ファイルとテンポラリログファイルを同一のボリュームに
                                                配置している場合    → (5)へ
      ログ管理ファイルとテンポラリログファイルを同一のボリュームに
                                                配置していない場合  → (8)へ
(5) ログ管理ファイルを作成します。                     ――― rdblogコマンド
                                                               (Iオプション)
(6) アーカイブログファイルを再登録します。             ――― rdblogコマンド
                                                               (Aオプションかつ
                                                                aオプション)
(7) アーカイブログファイルが正常に登録されたことを確認 ――― rdblogコマンド
  します。                                                     (Vオプションかつ
                                                                aオプション)
(8) テンポラリログファイルを再作成します。             ――― rdblogコマンド
                                                               (Gオプションかつ
                                                                tオプションかつ
                                                                rオプション)
(9) テンポラリログファイルが正常に再作成されたことを   ――― rdblogコマンド
   確認します。                                                (Vオプションかつ
                                                                tオプション)
(10) アーカイブログファイルを使用したデータベースの復  ――― rdbadjrcvコマンド
   旧を行います。
       rdbadjrcvコマンドによって、RDBディクショナリが
             リカバリできなかった場合                → (11)へ
       rdbadjrcvコマンドによって、RDBディクショナリが
                                リカバリできた場合   → (12)へ
(11) RDBディクショナリを復元します。                   ――― rdbrcvdicコマンド
                                                               (FWモード)
                                                     → (10)へ
(12) Symfoware/RDBを起動します。                       ――― rdbstartコマンド


(13) rdbadjrcvコマンドでリカバリできなかった資源に     ――― rdbrcvコマンド
   対してリカバリ処理を行います。                              (Cオプション)
(14) FULL状態のエントリをすべて出力ファイルに          ――― rdbcycexpコマンド
   エクスポートします。
(15) RDBディクショナリのリカバリを行った場合は、       ――― rdbdmpdicコマンド
   RDBディクショナリの退避データも取得します。

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

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

リカバリ操作例

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

rdb: ERROR: qdg12111u: テンポラリログファイルに入出力障害が発生しました
     ファイル名=/dev/rdsk/c1t0d0s1 errno=5 (システム名=rdbsys1)

rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました(システム名=rdbsys1)

$ rdbstop -e

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

CE作業 … 障害ボリュームの交換

$ fmthard -s c1t0d0_vtoc.txt /dev/rdsk/c1t0d0s2

$ rdblog -G -t -c 10M -r /dev/rdsk/c1t0d0s1 -in -in 30M 30M 20

$ rdblog -V -t

$ rdbadjrcv -w /home/rdb1/work

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

$ rdbrcvdic -F -f dicback@/backup/rdb  -du 1M -w /tmp -y

$ rdbadjrcv -w /home/rdb1/work

rdb: ERROR:qdg13037e: アジャストリカバリが不可能なため データベースをアクセス禁止
     状態にしました DB名='ULOG_DB' DSI名='業務ログ表DSI1' (システム名
     =rdbsys1)

$ rdbstart

$ rdbrcv -C -i ULOG_DB.業務ログ表DSI1 -w /home/rdb1/work

$ rdbcycexp -me -i ULOG_DB.業務ログ表DSI -o  /home/rdb2/ulog20040602_001.dat

$ rdbdmpdic -f dicback@/backup/rdb -y -e

rdb: ERROR: qdg12111u: テンポラリログファイルに入出力障害が発生しました
     ファイル名=/dev/raw/raw1 errno=5 (システム名=rdbsys1)

rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました(システム名=rdbsys1)

$ rdbstop -e

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

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


$ rdblog -G -t -c 10M -r /dev/raw/raw9 -in -in 30M 30M 20

$ rdblog -V -t

$ rdbadjrcv -w /home/rdb1/work

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

$ rdbrcvdic -F -f dicback@/backup/rdb  -du 1M -w /tmp -y

$ rdbadjrcv -w /home/rdb1/work

rdb: ERROR:qdg13037e: アジャストリカバリが不可能なため データベースをアクセス禁止
     状態にしました DB名='ULOG_DB' DSI名='業務ログ表DSI1' (システム名
     =rdbsys1)

$ rdbstart

$ rdbrcv -C -i ULOG_DB.業務ログ表DSI1 -w /home/rdb1/work

$ rdbcycexp -me -i ULOG_DB.業務ログ表DSI -o  /home/rdb2/ulog20040602_001.dat

$ rdbdmpdic -f dicback@/backup/rdb -y -e

rdb: ERROR: qdg12111u: テンポラリログファイルに入出力障害が発生しました
     ファイル名=D:\SFWD\RDB\USR\LOG\TMPLOG errno=5 (システム名=rdbsys1)

rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました(システム名=rdbsys1)

> rdbstop -e

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

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

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

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

> rdblog -V -t

> rdbadjrcv -w D:\TEMP

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

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

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

rdb: ERROR:qdg13037e: アジャストリカバリが不可能なため データベースをアクセス禁止
     状態にしました DB名='ULOG_DB' DSI名='業務ログ表DSI1' (システム名
     =rdbsys1)

> rdbstart > rdbrcv -C -i ULOG_DB.業務ログ表DSI1 -w D:\USER\RDB1\WORK > rdbcycexp -me -i ULOG_DB.業務ログ表DSI -o D:\USER\RDB1\WORK > rdbdmpdic -f DICBACK@E:\BACKUP\DIC -y -e

注意

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

  • rdbadjrcvコマンドによってデータベースのリカバリを行う場合、アーカイブログファイル内のアーカイブログ量によっては、コマンドが異常終了する場合があります。この場合には、さらに以前の退避アーカイブログファイルを併せて指定して、コマンドを再実行してください。

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