ロールバック不可が発生した場合のリカバリ方法は、以下の運用形態により異なります。
アーカイブログ運用を行っている場合
アーカイブログ運用を行っていない場合
参照
以下のコマンドがエラーになった場合にも、DSIがロールバック不可のアクセス禁止状態となります。
この場合のリカバリ方法に関しては、“11.7.2 コマンドがエラーになった場合のロールバック不可からのリカバリ”を参照してください。
rdbfmtコマンド(DSIの初期化)
rdbsloaderコマンド(データベースの初期創成)
rdbsaloaderコマンド(データベースの更新(データの追加))
rdbsuloaderコマンド(データベースの更新)
rdbgcdsiコマンド(DSIの再編成)
システムメッセージ“qdg03400u”または“qdg03401u”が出力されます。この場合は、rdbrcvコマンドのFWモードによりデータベースのリカバリを行ってください。
ロールバック不可からのリカバリ操作の手順とリカバリ操作例を以下に示します。
(1) 対象DSIの退避データを取得します。 ――― rdbdmpコマンド (2) 目的業務を実行します。 ★ ロールバック不可 (3) リカバリ対象のDSIを把握します。 ――― rdbinfコマンド (lオプションかつaオプション または iオプションかつaオプション) (4) 対象DSIをリカバリします。 ――― rdbrcvコマンド (FWモード) (5) 目的業務を再実行します。
$ rdbdmp -i 在庫管理DB.在庫表DSI -f stock@/backup/rdb -e -y 目的業務の実行 rdb: ERROR: qdg03400u:ロールバックが不可能なため データベースをアクセス禁止状態に しました DB名='在庫管理DB' DSI名='在庫表DSI' (システム名=rdbsys1) rdb: ERROR: qdg03401u:ロールバックが不可能なため データベースをアクセス禁止状態に しました DB名='在庫管理DB' DSI名='在庫表DSI' ページ識別番号='32' (システム名=rdbsys1) $ rdbinf -l inh -a $ rdbrcv -F -i 在庫管理DB.在庫表DSI -f stock@/backup/rdb -w /home/rdb1/work rdb: INFO: qdg02654i:rdbrcvコマンドの処理を開始します (システム名=rdbsys1) rdb: INFO: qdg14116i:指定した表のDSIに属するインデックスのDSIの復旧を開始します (システム名=rdbsys1) rdb: INFO: qdg02595i:指定した資源'在庫管理DB.在庫表DSI'に属するインデックスの DSI'在庫管理DB.製品名IXDSI'のリカバリが正常終了しました (システム名=rdbsys1) rdb: INFO: qdg02655i:rdbrcvコマンドの処理が正常終了しました (システム名=rdbsys1) 目的業務の再実行
備考.システムメッセージ“qdg03400u”または“qdg03401u”からリカバリ対象のDSIが限定できる場合は、rdbinfコマンドのiオプションおよびaオプションでもアクセス禁止の原因を確認することができます。
リカバリ対象のDSIが限定できない場合は、rdbinfコマンドのlオプションおよびaオプションで閉塞されたDSI一覧を表示し、アクセス禁止の原因を確認してください。
注意
スケーラブルログ運用を行っている場合で、アーカイブログ退避データを指定する場合は、リカバリ対象のDSIが属するロググループのアーカイブログ退避データを指定する必要があります。
システムメッセージ“qdg03400u”または“qdg03401u”が出力されます。この場合は、rdbrcvコマンドのLOADモードによりデータベースのリカバリを行ってください。
ロールバック不可からのリカバリ操作の手順およびリカバリ操作例を以下に示します。
(1) 対象DSIに“更新抑止”の利用規定を設定します。 ――― rdbrtrコマンド (rwオプション) (2) 対象DSIの退避データを取得します。 ――― rdbdmpコマンド (Nオプション) (3) 対象DSIの“更新抑止”の利用規定を解除します。 ――― rdbrlsコマンド (rwオプション) (4) 目的業務の実行 ★ ロールバック不可 (5) リカバリ対象のDSIを把握します。 ――― rdbinfコマンド (lオプションかつaオプション または iオプションかつaオプション) (6) 対象DSIをリカバリします。 ――― rdbrcvコマンド (LOADモード) (7) 目的業務の再実行
$ rdbrtr -i 在庫管理DB.在庫表DSI -rw $ rdbdmp -i 在庫管理DB.在庫表DSI -f stock@/backup/rdb -e -N -y $ rdbrls -i 在庫管理DB.在庫表DSI -rw 目的業務の実行 rdb: ERROR: qdg03400u:ロールバックが不可能なため データベースをアクセス禁止状態に しました DB名='在庫管理DB' DSI名='在庫表DSI' (システム名=rdbsys1) rdb: ERROR: qdg03401u:ロールバックが不可能なため データベースをアクセス禁止状態に しました DB名='在庫管理DB' DSI名='在庫表DSI' ページ識別番号='32' (システム名=rdbsys1) $ rdbinf -l inh -a $ rdbrcv -L -i 在庫管理DB.在庫表DSI -f stock@/backup/rdb -w /home/rdb1/work rdb: INFO: qdg02654i:rdbrcvコマンドの処理を開始します (システム名=rdbsys1) rdb: INFO: qdg14116i:指定した表のDSIに属するインデックスのDSIの復旧を開始します (システム名=rdbsys1) rdb: INFO: qdg02595i:指定した資源'在庫管理DB.在庫表DSI'に属するインデックスの DSI'在庫管理DB.製品名IXDSI'のリカバリが正常終了しました (システム名=rdbsys1) rdb: INFO: qdg02655i:rdbrcvコマンドの処理が正常終了しました (システム名=rdbsys1) 目的業務の再実行
備考.システムメッセージ“qdg03400u”または“qdg03401u”からリカバリ対象のDSIが限定できる場合は、rdbinfコマンドのiオプションおよびaオプションでもアクセス禁止の原因を確認することができます。
リカバリ対象のDSIが限定できない場合は、rdbinfコマンドのlオプションおよびaオプションで閉塞されたDSI一覧を表示し、アクセス禁止の原因を確認してください。