恢复db2uncatlog_DB2数据库备份及恢复操作

本文详细介绍了如何使用DB2进行数据库的offline和online备份及恢复操作,包括创建数据库、表,执行备份,以及在数据库被恶意删除后的恢复步骤。同时,还详细阐述了online备份的不同类型:完全备份、增量备份、delta备份及其恢复过程。
摘要由CSDN通过智能技术生成

一、创建数据库及表

--创建数据库,数据库名为maxdb7;

create database maxdb7;

--连接数据库

connect to maxdb7;

--建表表名为test1

create table test1(

id    integer  not null,

name    varchar(20),

email    varchar(20),

primary key(id)

);

--插入数据

insert into test1 values(1,'one','one@hikescom.com');

insert into test1 values(2,'two','two@hikescom.com');

insert into test1 values(3,'three','three@hikescom.com');

--提交

commit;

二、offline备份及恢复

2.1、offline备份

--首先要断开当前服务器链接

connect reset;

--离线备份,指定备份存放的地址,备份之后会返回一个时间戳

backup db maxdb7 to d:\DB2\backup\

2.2、数据恢复

--恶意删除数据库

drop database maxdb7;

--恢复备份

restore db maxdb7 from d:\DB2\backup taken at 20100720120756;

--其中201007201207561是备份的时间戳,可以在备份文件名中找到

--然后再连接数据库并查询表test1可以得到结果

connect to maxdb7;

select * from test1;

三、online备份及恢复

3.1、online备份

--连接

connect to maxdb7;

--修改数据库参数,使之支持在现联机备份

update db cfg for maxdb7 using logretain on trackmod on;

--此时会提示:对于这些配置参数,必须在所有应用程序都与此数据库断开连接之后,更改才会生效。

--此时,也需要做一次数据库的全备份,否则不能联机备份,试过很多次必须要这样。

connect reset;

backup db maxdb7 to d:\DB2\backup1\;

--然后在连接数据库,做在线备份

connect to maxdb7;

--指定归档日志的存放路径

update db cfg using logarchmeth1 disk:d:\DB2;

--插入几条数据

insert into test1 values(4,'four','eight@hikescom.com');

insert into test1 values(5,'five','nine@hikescom.com');

insert into test1 values(6,'six’,'six@hikescom.com');

--提交

commit;

--数据库on备份

à完全备份:备份所有数据库

backup db maxdb7 online to d:\DB2\backup1\

à增量备份:备份与上次完全备份以来更改过的数据

backup db maxdb7 online incremental to d:\DB2\backup1\

àdelta备份:备份自最近以来最近一次备份更改过的数据

backup db maxdb7 online incremental delta to d:\DB2\backup1\

à这里可以指定并行数,缓冲区数目还有每个缓冲区的大小,例如指定并行数为2,缓冲区数目为4,缓冲区大小为1024,则进行delta备份的话为:

backup db maxdb7 online incremental delta to d:\DB2\backup1\ with 2 buffers buffer 1024 parallelism 4 without prompting;

3.2、备份恢复

--恶意删除库,以此来进行数据库恢复

drop db maxdb7;

--数据库恢复

restore db maxdb7 from d:\DB2\backup1 taken at 20100720140108;

--前滚数据库,并指定归档日志位置,这个很重要,因为此时如果去连接数据库根本连不上

rollforward database maxdb7 to end of logs and complete overflow log path("d:\DB2");

--结果

------------------------------ 输入的命令------------------------------

rollforward database maxdb7 to end of logs and complete overflow log path("d:\DB2");

------------------------------------------------------------------------------

rollforward database maxdb7 to end of logs and complete overflow log path("d:\DB2")

前滚状态

输入数据库别名= maxdb7

节点数已返回状态= 1

节点号= 0

前滚状态= 未暂挂

下一个要读取的日志文件=

已处理的日志文件= S0000002.LOG - S0000002.LOG

上次落实的事务= 2010-07-20-07.39.13.000000 UTC

DB20000I  ROLLFORWARD 命令成功完成。

ok,此时online数据恢复完成,试着做个测试

connect maxdb7; --此时连接到maxdb7没问题了。

Select * from test1;--查询结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值