db2备份与恢复

时间:2024-03-10 16:00:25

备份数据库:


离线备份

1、连接至数据库:

db2 connect to test user db2admin using db2admin

2、显示数据库应用状态

db2 list applications

3、停止数据库应用

db2 force applications  all

4、备份数据库

db2 backup db test to d:\backup

备份路径必须存在

5、查看备份历史记录

db2 list history backup all for test

 

在线备份

1、设置userexit、logretain参数的状态为on

db2 update db cfg for test using userexit on

db2 update db cfg for test using logretain on

注意:修改配置参数必须是数据库管理员,并且必须停掉全部应用后更改才会生效。

2、连接需要备份的数据库并做一次离线的全备份

db2 connect to test user db2admin using db2admin

db2 backup db test to d:\backup

3、在线备份

db2 backup db test online  to D:\backup


增量备份

1、修改trackmod为on状态

db2 update db cfg for ncc using trackmod yes


2、停掉数据库

db2 force applications all

3、增量备份

db2 backup database test online incremental delta to d:\backup


恢复:

恢复完全备份

1、删除原先的数据库

drop db  test

2、恢复某个时间点的数据

db2 restore db test from d:\backup taken  at 20131015154021

3、回滚到日志结束(可不执行,即不恢复日志)

db2 rollforward database test to end of logs and stop

当回滚日志找不到日志文件而出错时,数据库处于roll-forward pending状态,

此时不能连接或激活数据库。解决方案如下:

db2 rowforward db test stop


恢复增量备份

1、连接至数据库

db2 connect to test user db2admin using db2admin

2、停掉数据库的应用

db2 force applications all

3、恢复增量备份

db2 restore database ncc incremental automatic from d:\db2\backup taken at 20120206133457

注意:上述语句中,有一个 automatic ,它表示无论有多少个增量备份,系统将全自动检索恢复

数据库的顺序并自动恢复数据库。如果没有 automatic ,则需要多次手动恢复数据库,很麻烦

而且容易出错。

4、回滚到日志结束(可不执行,即不恢复日志)

db2 rollforward database ncc to end of logs and stop

检查备份完整性:

当备份完成后,使用db2ckbkp命令不仅可以用来检查DB2数据库备份文件的完整性,

而且还可以用来查询DB2数据库备份文件的元数据。同时可以使用db2ckbkp –h<备份文件>

来检查DB2数据库备份的类型。

db2ckbkp -h d:\db2\backup\NCC.0.DB2.NODE0000.CATN0000.20120206133232.001

 

incremental和delta的说明如下:

db2   backup  db   TestDB   incremental   to   D:\backup

db2 backup database test online incremental delta to d:\backup


数据库恢复:

如果一个数据库启用了归档日志记录,那么当该数据库被恢复时,它将自动被置于

rollforward pending状态。可以使用如下命令告诉DB2不要将该数据库置于

rollforward pending状态。

restore database ncc from d:\db2\backup taken at 20120206151346 without rolling forward