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

11.7.1 ロールバック不可からのリカバリ

ロールバック不可が発生した場合のリカバリ方法は、以下の運用形態により異なります。

参照

以下のコマンドがエラーになった場合にも、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一覧を表示し、アクセス禁止の原因を確認してください。