worksummary

一、创建数据库及表

--创建数据库,数据库名为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.1offline备份

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

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.1online备份

--连接

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;--查询结果如下:

 

 

分类:

技术点:

相关文章: