(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Db2】SQL1117N cannot be made because of ROLL-FORWARD PENDINGというエラー

スポンサーリンク

事象

下記コマンドで取得したバックアップファイルを

$ db2 backup db sample to /tmp/

下記コマンドでリストアを試み

$ db2 restore db sample from /tmp

該当データベースに接続を試みるも以下エラーとなる。

$ db2 connect to sample
SQL1117N  A connection to or activation of database "SAMPLE" cannot be made
because of ROLL-FORWARD PENDING.  SQLSTATE=57019
環境情報
  • DB2 v11.5
  • CentOS Linux 7 (Core)

原因/解決策

リストア後に行うロールフォワード処理が不足しているため、リストア処理が完了していない。

よって以下コマンドを実行することで

$ db2 rollforward database sample to end of logs and complete

正常に接続が可能になる。

$ db2 connect to sample
   Database Connection Information
 Database server        = DB2/LINUXX8664 11.5.0.0
 SQL authorization ID   = DB2INST1
 Local database alias   = SAMPLE

以下、補足です。

補足

以下の記事でも紹介したDb2バックアップユーテリティですが

同じくユーティリティを利用したDb2のリストアにおいてはトランザクションログを適用する必要があります。

$ db2 restore db sample from /tmp taken at ....
DB20000I  The RESTORE DATABASE command completed successfully.
$ db2 rollforward database sample to end of logs and complete

                                 Rollforward Status

 Input database alias                   = sample
 Number of members have returned status = 1

 Member ID                              = 0
 Rollforward status                     = not pending
 Next log file to be read               =
 Log files processed                    =  -
 Last committed transaction             = ...

DB20000I  The ROLLFORWARD command completed successfully.

ちなみにオフラインバックアップであれば、リストア時にWITHOUT ROLLING FORWARDを付与すれば同様のエラーにはなりません。

以上、ご参考になれば幸いです。