事象
下記のデータベースに対して
$ db2 connect to sample Database Connection Information Database server = DB2/LINUXX8664 11.5.0.0 SQL authorization ID = DB2INST1 Local database alias = SAMPLE
バックアップを取るべく以下コマンドを発行した際に
$ db2 backup db sample to /tmp/
以下エラーにて失敗する。
SQL1035N The operation failed because the specified database cannot be
connected to in the mode requested. SQLSTATE=57019
環境情報
- DB2 v11.5
- CentOS Linux 7 (Core)
原因/解決策
SQL1035Nというエラーメッセージはデータベースへの接続が残っている場合に発生するようです。
実際、以下にて全アプリケーションからのDB接続を切断して
$ db2 force application all DB20000I The FORCE APPLICATION command completed successfully. DB21024I This command is asynchronous and may not be effective immediately.
以下にて非活動化すれば
$ db2 deactivate db sample DB20000I The DEACTIVATE DATABASE command completed successfully.
バックアップコマンドは通りました。
$ db2 backup db sample to /tmp/ Backup successful. The timestamp for this backup image is : 20XX05YY06ZZ06
以下、補足です。
補足
接続の切断→非活動化の順序を逆にすると
$ db2 deactivate db sample SQL1493N The command failed because the application is already connected to an active database.
上記のように失敗します。
ちなみに、そもそもオンラインのオプションを利用すれば切断不要でバックアップを取る事もできます。
$ db2 backup db sample online to /tmp/ Backup successful. The timestamp for this backup image is : ...
以上、ご参考になれば幸いです。