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

11.7.2 コマンドがエラーになった場合のロールバック不可からのリカバリ

更新ログの取得を行わないデータベースの更新を行う以下のコマンドが異常終了した場合、システムメッセージ“qdg03400u”または“qdg13217u”が、RDBREPORTで指定したメッセージログファイルに出力される場合があります。この場合、データベースをリカバリする必要がありますが、システムでは自動的に行わないため、利用者がデータベースのリカバリを行う必要があります。

これらのコマンドが異常終了した場合のリカバリ操作の手順およびリカバリ操作例を以下に示します。

コマンドごとのリカバリ操作

各コマンドの異常終了後にDSIの状態をrdbinfコマンドで確認し、各ケースごとに以下のリカバリ操作に従ってリカバリしてください。

コマンド

DSIの状態

リカバリ操作

rdbfmt

ロールバック異常

異常原因を取り除いた後に、mオプションにidを指定して再実行してください。

rdbsloader

ロールバック異常

異常原因を取り除いた後に、再実行してください。

rdbsaloader

追記処理の異常

異常原因を取り除いた後に、再実行してください。

ロールバック異常

リカバリ操作の手順”を参照してください。

rdbsuloader

ロールバック異常

リカバリ操作の手順”を参照してください。

rdbgcdsi

ロールバック異常

7.9.1 データベースの再配置”を参照してください。

リカバリ操作の手順

(1) 対象DSIのアンロードを行います。                     ――― rdbunlコマンド 
(2) 対象DSIの更新を行います。                           ――― rdbsaloaderコマンドまたは 
                                                               rdbsuloaderコマンド
        正常終了                                      → (4)へ 
        異常終了(ロールバック異常の場合)              → (3)へ 
        異常終了(ロールバック異常以外の場合)          → 異常原因を取り除いた後に、
                                                         (2)へ 
(3) 異常原因を取り除いた後に、対象DSIのデータ           ――― rdbsloaderコマンド
  をロードします。                                    → (2)へ 
(4) 業務開始
リカバリ操作例
$ rdbunl -i 在庫管理DB.在庫表DSI /home/testdir/unl.stock 

$ rdbsuloader -mu -i 在庫管理DB.在庫表DSI -t /home/testdir/sul.stock 

rdb: ERROR: qdg13209u:ファイル' /home/testdir/sul.stock 'において 5件目のデータの文字列
     属性の列に対して囲み文字のないデータが存在します 列名=製品名 (システム名= rdbsys1)
rdb: INFO: qdg12075u:rdbsuloaderが異常終了しました 復帰コード -2 (システム名=rdbsys1) 

              ★ ロールバック不可

入力ファイル(sul.stock)を修正

$ rdbsloader -mi -i 在庫管理DB.在庫表DSI /home/testdir/unl.stock 

$ rdbsuloader -mu -i 在庫管理DB.在庫表DSI -t /home/testdir/sul.stock 

rdb: INFO: qdg13195i:DSI'在庫管理DB.在庫表DSI'に格納されている100件のデータを更新して
     100件を格納します
rdb: INFO: qdg12074i:rdbsuloaderが正常終了しました 復帰コード 00 (システム名=rdbsys1) 

業務開始

注意

  • 上記のリカバリ操作はアーカイブログ運用を行っている場合も行っていない場合も同じです。

  • 上記のコマンドが完了したあと、コマンド実行以前にrdbdmpコマンドにより取得した退避データを用いたメディアリカバリが実行できなくなります。上記のコマンドが正常終了したあとには、異常時に備えて、rdbdmpコマンドによるDSIの退避データを取得してください。

参考

rdbfmtコマンドおよびrdbsloaderコマンドは、以下のいずれかの条件を満たす場合、対象DSIの割付け領域のデータ内容が保証されないため、DSI割付け量に依存した処理時間になります。なお、条件に当てはまらない場合は、DSI割付け量には依存しません。

  • 対象DSIの定義直後

  • 対象DSIがアクセス禁止状態

  • 格納構造が、以下のいずれかの場合

    • RANDOM構造の表

    • RANDOM構造の表のDSIに付加されたBTREE構造のインデックス

    • OBJECT構造の表

    • OBJECT構造の表のDSIに付加されたBTREE構造のインデックス