ページの先頭行へ戻る
Interstage Information StorageV10.0.0 運用ガイド

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

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

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

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


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

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

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

参照

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

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


図2.5 リカバリ操作の流れ


リカバリ操作の手順
(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 資源管理の管理領域のリカバリ”を実行してください。 

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

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

    rdb: ERROR: qdg12111u: テンポラリログファイルに 入出力障害が発生しました 
         ファイル名='/dev/raw/raw22' errno=5  
    rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg12111u'が発生しました
    
    rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました
    rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg13303e'が発生しました 
    
    $ rdbcninf -s 
    
    $ rdbstop 
    
    CE作業 … 障害ボリュームの交換およびボリューム構成情報のリカバリ
    
    $ rdblog -G -t -r -c 10M /dev/raw/raw29 -in -in 30M 30M 20
    
    $ rdblog -V -t 
    
    $ rdbstart 

注意

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


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

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

参照

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


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

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


図2.6 リカバリ操作の流れ


リカバリ操作の手順
(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コマンドでリカバリできない資源が存在する

    rdb: ERROR: qdg12111u: テンポラリログファイルに 入出力障害が発生しました 
         ファイル名='/dev/raw/raw1' errno=5  
    rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg12111u'が発生しました 
    
    
    rdb: ERROR: qdg13303e: テンポラリログファイルを閉塞しました
    rdb: INFO : qdg13239i: ロググループ'system'において事象'qdg13303e'が発生しました 
    
    
    $ rdbstop -e 
    
    rdb: ERROR: qdg02842u: シグナル9を受信したため RDBIIシステム空間が異常終了しました
    
    
    CE作業 … 障害ボリュームの交換およびボリューム構成情報のリカバリ
    
    $ rdblog -G -t -r -c 10M /dev/raw/raw9 -in -in 30M 30M 20
    
    $ rdblog -V -t 
    
    $ rdbadjrcv -w /home/rdb1/work 
    
    rdb: ERROR:qdg13038u: アジャストリカバリが不可能なためRDBディクショナリをアクセス
         禁止状態にしました
    
    $ rdbrcvdic -F -f dicback@/backup/rdb  -du 1M -w /tmp 
    
    $ rdbadjrcv -w /home/rdb1/work 
    
    rdb: ERROR:qdg13037e: アジャストリカバリが不可能なため データベースをアクセス禁止
         状態にしました DB名='INFOSTORAGEDB' DSI名='CATEGORY_TDSI'
    
    $ rdbstart 
    
    $ rdbinh -i INFOSTORAGEDB.CATEGORY_TDSI
    
    $ rdbrcv -F -i INFOSTORAGEDB.CATEGORY_TDSI -f stock@/backup/rdb 
             -w /home/rdb1/work
    
    $ rdbdmp -i INFOSTORAGEDB.CATEGORY_TDSI -f stock1@/backup/rdb -e -y 
    
    $ rdbdmpdic -f dicback@/backup/rdb -y -e 

注意

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

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