DB2のバックアップ&リストア
DB2のバックアップ&リストアについての備忘録です。以下のケースの場合の想定で作成されたものになります。
" データベースをオンラインバックアップで取得している。 " データベースのバックアップにログを含めている。 上記条件に当てはまらない場合は、リストア、およびロールフォワードの手順が若干違いますので、ご注意をお願いします。
以下作業手順
1.RESTOREDBのバックアップファイルをローカルにコピーし、コピー内容に差異がないか確認
[code lang=text] [root@server1 ~]# cd /usr/local/export/backup/RESTOREDB [root@server1 RESTOREDB]# cp -rp RESTOREDB.0.develop.NODE0000.CATN0000.20101101031607.001 /home/develop/backup/ [root@server1 RESTOREDB]# diff ./RESTOREDB.0.develop.NODE0000.CATN0000.20101101031607.001 /home/develop/backup/RESTOREDB.0.develop.NODE0000.CATN0000.20101101031607.001 [/code]
2.インスタンスユーザーにSUし、オンラインバックアップのリストアを行う
[code lang=text] [root@server1 RESTOREDB]# su develop [develop@server1 logtarget]$ cd /home/develop/backup/ [develop@server1 backup]$ db2 "restore database RESTOREDB from /home/develop/backup logtarget /home/develop/backup/RESTOREDB/logtarget" DB20000I RESTORE DATABASE コマンドが正常に完了しました。 [/code]
[code lang=text] [develop@server1 backup]$ db2 connect to RESTOREDB SQL1117N 「ロールフォワード・ペンディング」のために、データベース "RESTOREDB" の接続またはアクティブ化を行うことはできません。 SQLSTATE=57019 [/code]
4.ロールフォワードを実施
[code lang=text] [develop@server1 backup]$ db2 "rollforward database RESTOREDB TO END OF LOGS AND STOP OVERFLOW LOG PATH (/home/develop/backup/RESTOREDB/logtarget)" ロールフォワード状況 入力データベース別名 = RESTOREDB 状況を返したノードの数 = 1 ノード番号 = 0 ロールフォワード状況 = 非ペンディング 次に読み込むログ・ファイル = 処理したログ・ファイル = S0011000.LOG S0011000.LOG 最後にコミットしたトランザクション = 2010-10-31-18.16.28.000000 UTC DB20000I ROLLFORWARD コマンドが正常に完了しました。 5.リストアしたDBに正常に接続できることを確認 [develop@server1 backup]$ db2 connect to RESTOREDB データベース接続情報 データベース・サーバー = DB2/LINUXX8664 9.7.1 SQL 許可 ID = DEVELOP ローカル・データベース別名 = RESTOREDB [/code]