实现DB2备份恢复的步骤与操作中的问题

数据库
以下的文章主要描述的是DB2备份恢复在实际操作中的有感有问,同时也包括了对实现DB2备份恢复的实际操作步骤的描述。

下面的文章主要介绍的是DB2备份恢复在实际操作中的有感有问,如果你对DB2备份恢复心存好奇的话,以下的文章将会揭开它的神秘面纱,以下就是具体内容的描述,希望在你今后的学习中会有所帮助。

 

练手DB2备份与恢复,盲人摸象一般捣腾了好几天,终于成功实现联机DB2备份恢复了。

 

先讲下我怎么做的

创建数据库testdb

 

  1. db2 create database testdb using codeset UTF-8 territory US 

开启联机备份

 

  1. db2 update db cfg for testdb using userexit on logretain on trackmod on 

创建备份目录

 

  1. mkdir /backup/db2inst1  
  2. chown db2inst1:db2grp1 /backup/db2inst1 

重启db2实例,进行一次冷备,时间戳为20100224111110

 

  1. db2stop force  
  2. db2start  
  3. db2 backup db testdb to /backup/db2inst1 

创建数据库表

 

  1. create table T(  
  2. a int,  
  3. b int,  
  4. c int  

在T表中插入100条数据0,0,0

 

进行一次联机备份,时间戳为20100224113029

  1. db2 backup db testdb online to /backup/db2inst1 

查看***活动日志,为S00000001.LOG

  1. db2 get db cfg for testdb 

在T表中插入100条数据1,1,1

进行一次联机备份,时间戳为20100224113530

  1. db2 backup db testdb online to /backup/db2inst1 

查看***活动日志,为S0000002.LOG

  1. db2 get db cfg for testdb 

在T表中删除100条0,0,0

将活动日志目录SQLOGDIR下的所有归档日志和活动日志都拷到/temp目录下

将testdb整个删除

 

  1. db2 drop db testdb 

DB2备份恢复到***一个备份点20100224113530

 

  1. db2 restore database testdb from /backup/db2inst1 taken at 20100224113530 

将所有归档日志和活动日志都拷到SQLOGDIR下,并更改用户和用户组

 

  1. chown db2inst1:db2grp1 * 

日志回滚

 

因为备份的时间戳日期和归档日志的时间似乎有点不同,我现在的做法只能是先执行下面这句,得到一个时间,然后再rollforward到那个时间才能成功回滚

 

  1. db2 rollforward db testdb stop 

执行上面语句以后提示以下内容

 

  1. SQL1276N Database "TESTDB" cannot be brought out of rollforward pending state   
  2. until roll-forward has passed a point in time greater than or equal to   
  3. "2010-02-24-03.12.34.000000 UTC", because node "0" contains information later  

than the specified time.

 

根据这里的提示信息,得到时间2010-02-24-03.12.34.000000,再rollforward到这个时间

 

  1. db2 rollforward db testdb to 2010-02-24-03.12.34.000000 and stop 

不知道正常情况下高手们是怎么知道回滚到什么时间点的?特别请教一下。谢谢!

 

在做回滚的时候我还发现了一个情况:根据活动日志可以DB2备份恢复到故障点到***一次备份点之间的数据。

 

在rollforward的时候将时间点往后多写一点

 

  1. $ db2 rollforward db testdb to 2010-02-24-03.15.00 and stop  
  2. 然后他会提示SQL4970N Roll-forward recovery on database "TESTDB" cannot reach the   
  3. specified stop point (end-of-log or point-in-time) on database partition(s)   
  4. "0". Roll-forward recovery processing has halted on log file "S0000005.LOG". 

在这个时候数据库依旧是pending状态,再执行一次db2 rollforward db testdb stop就可以DB2备份恢复到删除数据库之前的状态了

 

【编辑推荐】

  1. 选择IBM DB2的5大理由是什么?
  2. 初学者必看的DB2数据库的一些经验总结
  3. DB2 9打开打开通往 XML 之门的钥匙
  4. DB2编程的正确应用程序
  5. DB2 Cube View元数据桥的正确构建方案
责任编辑:佚名 来源: 博客园
相关推荐

2010-08-04 13:15:21

2010-08-03 09:44:42

DB2在线增量备份

2011-05-11 13:01:07

DB2数据恢复数据备份

2010-08-18 15:14:08

DB2恢复命令

2010-08-03 09:32:19

DB2在线备份

2009-06-25 11:47:59

DB2数据备份

2015-10-23 16:37:13

提高DB2数据备份

2010-08-13 17:54:14

DB2 dart恢复数

2010-08-17 09:18:29

DB2 备份

2010-07-30 10:24:18

2010-08-03 13:18:15

DB2数据备份

2010-08-12 10:15:27

DB2 分区数据库备份

2010-08-12 10:27:21

DB2数据库备份

2010-07-27 10:57:27

2010-08-12 17:14:25

DB2备份恢复数据库步

2010-08-03 09:49:58

DB2恢复数据库

2010-08-12 09:06:30

DB2数据库自动备份

2010-08-06 18:01:13

DB2数据备份

2009-03-25 17:43:09

备份DB2IBM

2010-08-17 09:55:33

DB2备份测试
点赞
收藏

51CTO技术栈公众号