Chinaunix首页 | 论坛 | 博客
  • 博客访问: 51850
  • 博文数量: 20
  • 博客积分: 825
  • 博客等级: 准尉
  • 技术积分: 210
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-15 12:03
文章分类

全部博文(20)

文章存档

2010年(20)

我的朋友

分类: DB2/Informix

2010-09-13 16:11:16


onbar实验
实验一(时间点恢复):
原始库userdbs上有表user
备份整个系统 onbar -b -w  (默认将当前日志也进行备份)
实验二(恢复到时间点)
1,原始表user中没有数据
2,全系统备份(onbar -b -w)
3,t1时间点插入数据1 (t1为 18:07:49之前)
4,t2时间点继续添加数据2 (t2为18:09:26之前)
5,逻辑日志备份
6,恢复到时间点t1,(onbar -r -t "2010-06-26 18:07:49")查看数据,表中只有数据1
7,恢复到时间点t2,(onbar -r -t "2010-06-26 18:09:26")再查看数据,表中有数据1和2
结论:时间点恢复:是一种冷恢复,可以用来撤销其他方法可能无法恢复的错误。例如误删了一个表,完全恢复会在物理恢复期间恢复该表而在逻辑恢复期间再次将其删除。而时间点恢复可以将该表恢复到表被删除的前异一个时间点状态;

 
实验二(整个系统的备份与还原):
1,表t中初始状态无数据,
2,执行存储过程插入一百万条数据到t表
3,在存储过程没有执行完之前进行全系统备份:onbar -b -w (此时这个存储过程为正在打开的事务)
4,存储过程先于onbar备份完成 (onbar -b -w完成以后自动备份了没有备份的日志)
5,关闭数据库,仅仅执行物理还原(onbar -r -p)
6,查看t表,发现无数据。
7,关闭数据库,执行系统还原(onbar -r)通过日志可以看到此步骤为在步骤5后面添加了逻辑日志还 原,此逻辑日志就是第4步备份的日志
8,查看表t发现表中有一百万条记录
结论:onbar备份之前会执行一个检查点,此检查点进行时如果事务是打开的,而且还原时只是进行物理还原,不进行逻辑日志还原,则此打开的事务没有完全完成,因此被插入进去的部分数据被回滚,即使存储过程先于备份操作,表t中依然没有数据。
同时也印证了这样一个观点:
  全系统备份是某一指定时间点(即归档检查点)上整个系统的快照。并且可以不使用任何逻辑日志来还原它们。如果没有逻辑日志,则系统被还原到某个一致的点上,即归档检查点。归档检查点上存在的所有打开事务都将被回滚。(归档检查点即是备份前执行的检查点操作)
阅读(2034) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~