Question & Answer
Question
Cause
オンライン・バックアップはデフォルトでロールフォワードに必要な最低限のログファイルをバックアップ・イメージに含めるため、このログを取り出してロールフォワードを完了できます。
オフライン・バックアップをリストアした場合、リストア時にロールフォワード不要と指定することで、ロールフォワード・ペンディングを回避できます。
Answer
以下の例では、/data/backup に置いた SAMPLE データベースのオンライン・バックアップ・イメージをリストアし、/tmp/logs にバックアップ・イメージに含まれるログを取り出します。
- インスタンス・オーナーでリストアするシステムにログインします。
- バックアップ・イメージをリストアし、かつ logtarget で指定したパスにログを取り出します。
$ db2 restore db sample from /data/backup logtarget /tmp/logs
$ db2 restore db sample logs from /data/backup logtarget /tmp/logs
- logtarget へ取り出したログを使ってロールフォーワードします。
$ db2 "rollforward db sample to end of backup and stop overflow log path ('/tmp/logs') noretrieve"
オフライン・バックアップのリストア
以下の例では、/data/backup に置いた SAMPLE データベースのオフライン・バックアップ・イメージをリストアします。
- インスタンス・オーナーでリストアするシステムにログインします。
- ロールフォワード不要 (without rolling forward) オプションを指定してリストアします。
$ db2 restore db sample from /data/backup without rolling forward
運用上の考慮点
- オンラインとオフラインの確認、およびログを含むかどうかの確認方法
バックアップ・イメージがオンラインで採取されたものか、オフラインで採取されたものかおよび、オンラインの場合トランザクション・ログを含んでいるかは db2ckbkp コマンドで確認できます。
(Unix/Linux)
$ db2ckbkp -h <path_to_backup_image> | grep -e Mode -e Includes
(Windows)
C:\>db2ckbkp -h <path_to_backup_image> | findstr "Mode Includes"
例:
$ db2ckbkp -h /data/backup/SAMPLE.0.db2inst1.DBPART000.20171107164502.001 | grep -e Mode -e Includes Backup Mode -- 1 (Online) Includes Logs -- 1 (Yes)
- リストア先にデータベース管理者が定義されていない場合の考慮点
バックアップ元のデータベース管理者がリストア先のシステムに存在しない場合、DB2_RESTORE_GRANT_ADMIN_AUTHORITIES を ON に設定すると、リストアするユーザーにデータベース管理者権限 (SECADM 権限、DBADM 権限、DATAACCESS 権限、および ACCESSCTRL 権限) を付与できます。
例db2set DB2_RESTORE_GRANT_ADMIN_AUTHORITIES=ON db2stop db2start db2 restore db ...
- リストア後にデータベース接続が SQL0752N で失敗する場合 db2 restore database 実行後に続けて db2 connect ステートメントを実行すると SQL0752N で失敗することがあります。この場合は db2 terminate コマンドで CLP を再起動してください。
- データベースが生成したログを最後まで適用しないもしくは適用できない場合、ROLLFORWARD DATABASE コマンドに NORETRIEVE オプションを付与してください。このオプションによって現在利用可能でないログの検索による SQL1268N を防げます。
Was this topic helpful?
Document Information
Modified date:
13 November 2023
UID
swg22010348