ページの先頭行へ戻る
Symfoware Analytics Server(Operational Data Store編) 運用ガイド
FUJITSU Software

2.4.5 テンポラリログファイルのリカバリ

資源管理の運用中に、テンポラリログファイルに入出力障害が発生した場合のリカバリ方法について説明します。

テンポラリログファイルに入出力障害が発生した場合は、システムメッセージ“qdg12111u”、“qdg12440u”、“qdg12441u”または“qdg12442u”が出力されます。これらのシステムメッセージが出力されたあと、テンポラリログファイルは閉塞状態となります。

ログ管理ファイルとテンポラリログファイルを同一のボリュームに配置している場合と配置していない場合でリカバリ手順が異なるので、注意してください。


テンポラリログファイルの入出力障害が発生した場合のリカバリ方法は、以下の形態により異なります。

資源管理を正常停止した場合の操作

テンポラリログファイルの閉塞状態から資源管理を正常停止した場合は、rdblogコマンドを実行することでテンポラリログファイルの再作成または作成を行ってください。

参照

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

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


図2.4 リカバリ操作の流れ


リカバリ操作の手順
(1)業務中にテンポラリログファイルのアクセスエラーが発生した場合、システム
  メッセージを出力して、テンポラリログファイルを閉塞します。
(2) トランザクションの状態(Tran)の“TINH”が無くなる ――― rdbcninfコマンド 
  まで待ちます。 
(3) 資源管理を停止します。                             ――― rdbstopコマンド 
(4) 障害ボリュームを取り換えます。                     ――― CE作業 
(5) ボリュームの構成情報をリカバリします。             ――― partedコマンド
      ログ管理ファイルとテンポラリログファイルを同一のボリュームに配置している場合      → (6)へ 
      ログ管理ファイルとテンポラリログファイルを同一のボリュームに配置していない場合    → (10)へ 
(6) ログ管理ファイルを作成します。                     ――― rdblogコマンド 
      (Iオプション) 
      アーカイブログ運用を行っている場合      → (7)へ 
(7) アーカイブログファイルを再登録します。             ――― rdblogコマンド 
                                                              (Aオプションかつ
                                                               aオプション) 
(8) アーカイブログファイルが正常に登録されたことを確認 ――― rdblogコマンド 
  します。 
                                                              (Vオプションかつ
                                                               aオプション) 
      ログ管理ファイルを作成していない場合     → (9)へ
      ログ管理ファイルを作成した場合           → (10)へ
(9) テンポラリログファイルを強制的に削除します。       ――― rdblogコマンド
                                                              (Dオプションかつ
                                                               tオプションかつ
                                                               eオプション)
(10) テンポラリログファイルを再作成します。
                                                              (Gオプションかつ
                                                               tオプション
                                                               [かつrオプション]) 
(11) テンポラリログファイルが正常に再作成されたことを  ――― rdblogコマンド 
   確認します。 
                                                              (Vオプションかつ
                                                               tオプション) 
(12) 資源管理を起動します。                            ――― rdbstartコマンド 
(13) ロールバック不可閉塞となった資源をリカバリします。
   “2.7 資源管理の管理領域のリカバリ”を実行してください。 

ここでは、ログ管理ファイルとテンポラリログファイルを同一のボリュームに配置していないの場合を想定しています。

Linuxrdb: ERROR: qdg12111u: テンポラリログファイルに 入出力障害が発生しました 
     ファイル名='/dev/raw/raw22' errno=5  
rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg12111u'が発生しました

rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました
rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg13303e'が発生しました 

rdbcninf -s  <Enter>

rdbstop <Enter>
CE作業 … 障害ボリュームの交換およびボリューム構成情報のリカバリ rdblog -G -t -r -c 10M /dev/raw/raw29 -in -in 30M 30M 20 <Enter>

rdblog -V -t <Enter>

rdbstart <Enter>
Windowsrdb: ERROR: qdg12111u: テンポラリログファイルに 入出力障害が発生しました 
     ファイル名='c:\sfwd\rdb\usr\log\log3.ix ' errno=5  
rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg12111u'が発生しました

rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました
rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg13303e'が発生しました 

rdbcninf -s  <Enter>

rdbstop <Enter>
CE作業 … 障害ボリュームの交換およびボリューム構成情報のリカバリ rdblog -G -t -r -c 10M c:\sfwd\rdb\usr\log\log.ix -in -in 30M 30M 20 <Enter>

rdblog -V -t <Enter>

rdbstart <Enter>

注意

資源管理の停止は、ロードコマンドや資源管理コマンドなど資源管理を操作するコマンドおよび資源管理常駐プロセスを終了させてから行ってください。終了しているかの確認は、rdbcninfコマンドで行います。


資源管理を強制停止した場合の操作

テンポラリログファイルの閉塞状態から資源管理を強制停止(rdbstopコマンドのeオプション)した場合は、rdbadjrcvコマンドを実行することで資源管理のリカバリを行ってください。

参照

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


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

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


図2.5 リカバリ操作の流れ


リカバリ操作の手順
(1) 業務中にテンポラリログファイルのアクセスエラーが発生した場合、システム
  メッセージを出力して、テンポラリログファイルを閉塞します。 
(2) 資源管理を強制停止します。                    ――― 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オプション)
       RDBディクショナリ、または、RDBディレクトリファイルも
       破壊されている場合                       → (11)へ
(10) アーカイブログファイルを使用したデータベースの復  ――― rdbadjrcvコマンド 
   旧を行います。 
       rdbadjrcvコマンドによって、RDBディクショナリが
                                    リカバリできなかった場合                → (11)へ
       rdbadjrcvコマンドによって、RDBディクショナリがリカバリできた場合     → (12)へ 
(11) RDBディクショナリをリカバリします。               ――― rdbrcvdicコマンド 
                                                              (Fオプション) 
       RDBディクショナリのリカバリができた場合    → (10)へ 
(12) 資源管理を起動します。                       ――― rdbstartコマンド 
(13) rdbadjrcvコマンドでリカバリできなかった資源をリカバリしてください。
     “2.8 資源管理の管理領域のリカバリ”を実行してください。
(14)資源管理の管理領域の退避データを取得します。
    “2.5.3.5 資源管理の管理領域バックアップ”を実行してください。
(15) RDBディクショナリのリカバリを行った場合は、       ――― rdbdmpdicコマンド 
   RDBディクショナリの退避データも取得します。
   “2.5.3.6 RDBディクショナリのバックアップ”を実行してください。

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

  • ログ管理ファイル、テンポラリログファイルを同一のボリュームに配置していない

  • rdbadjrcvコマンドでRDBディクショナリがリカバリできない

  • rdbadjrcvコマンドでリカバリできない資源が存在する

Linuxrdb: ERROR: qdg12111u: テンポラリログファイルに 入出力障害が発生しました 
     ファイル名='/dev/raw/raw1' errno=5  
rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg12111u'が発生しました 


rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました
rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg13303e'が発生しました 


rdbstop -e  <Enter>
rdb: ERROR: qdg02842u: シグナル9を受信したため RDBIIシステム空間が異常終了しました CE作業 … 障害ボリュームの交換およびボリューム構成情報のリカバリ rdblog -G -t -r -c 10M /dev/raw/raw9 -in -in 30M 30M 20 <Enter>

rdblog -V -t <Enter>

rdbadjrcv -w /home/rdb1/work <Enter>

rdb: ERROR:qdg13038u: アジャストリカバリが不可能なためRDBディクショナリをアクセス 禁止状態にしました rdbrcvdic -F -f dicback@/backup/rdb -du 1M -w /tmp <Enter>
rdbadjrcv -w /home/rdb1/work <Enter>
rdb: ERROR:qdg13037e: アジャストリカバリが不可能なため データベースをアクセス禁止 状態にしました DB名='INFOSTORAGEDB' DSI名='CATEGORY_TDSI' rdbstart <Enter>

rdbinh -i INFOSTORAGEDB.CATEGORY_TDSI <Enter>

rdbrcv -F -i INFOSTORAGEDB.CATEGORY_TDSI -f stock@/backup/rdb
-w /home/rdb1/work <Enter>

rdbdmp -i INFOSTORAGEDB.CATEGORY_TDSI -f stock1@/backup/rdb -e -y <Enter>

rdbdmpdic -f dicback@/backup/rdb -y -e <Enter>
Windowsrdb: ERROR: qdg12111u: テンポラリログファイルに 入出力障害が発生しました 
     ファイル名='c:\sfwd\rdb\usr\log\log3.ix' errno=5  
rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg12111u'が発生しました 


rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました
rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg13303e'が発生しました 


rdbstop -e  <Enter>
rdb: ERROR: qdg02842u: シグナル9を受信したため RDBIIシステム空間が異常終了しました CE作業 … 障害ボリュームの交換およびボリューム構成情報のリカバリ rdblog -G -t -r -c 10M c:\sfwd\rdb\usr\log\log.ix -in -in 30M 30M 20 <Enter>

rdblog -V -t <Enter>

rdbadjrcv -w C:\Users\rdb1\work <Enter>

rdb: ERROR:qdg13038u: アジャストリカバリが不可能なためRDBディクショナリをアクセス 禁止状態にしました rdbrcvdic -F -f dicback@C:\backup\rdb -du 1M -w C:\tmp <Enter>
rdbadjrcv -w C:\Users\rdb1\work <Enter>
rdb: ERROR:qdg13037e: アジャストリカバリが不可能なため データベースをアクセス禁止 状態にしました DB名='INFOSTORAGEDB' DSI名='CATEGORY_TDSI' rdbstart <Enter>

rdbinh -i INFOSTORAGEDB.CATEGORY_TDSI <Enter>

rdbrcv -F -i INFOSTORAGEDB.CATEGORY_TDSI -f stock@C:\backup\rdb
-w C:\Users\rdb1\work <Enter>

rdbdmp -i INFOSTORAGEDB.CATEGORY_TDSI -f stock1@C:\backup\rdb -e -y <Enter>

rdbdmpdic -f dicback@C:\backup\rdb -y -e <Enter>

注意

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

  • テンポラリログファイルの入出力障害が発生する少し前に行ったデータの格納や削除が資源管理上では取り消されている可能性があります。データをリカバリしたあと、不整合検出コマンド(dcccheck)を実行して、蓄積データファイルと資源管理の管理レコードとの不整合がないかを確認してください。