更新ログの取得を行わないデータベースの更新を行う以下のコマンドが異常終了した場合、システムメッセージ“qdg03400u”または“qdg13217u”が、RDBREPORTで指定したメッセージログファイルに出力される場合があります。この場合、データベースをリカバリする必要がありますが、システムでは自動的に行わないため、利用者がデータベースのリカバリを行う必要があります。
rdbfmtコマンド(DSIの初期化)
rdbsloaderコマンド(データベースの初期創成)
rdbsaloaderコマンド(データベースの更新(データの追加))
rdbsuloaderコマンド(データベースの更新)
rdbgcdsiコマンド(DSIの再編成)
これらのコマンドが異常終了した場合のリカバリ操作の手順およびリカバリ操作例を以下に示します。
各コマンドの異常終了後に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構造のインデックス