use Test1 -- 测试数据库
backup database test1 to test_bak with init,name='full' --完全备份
create table b1(c1 int not null,c2 char(10) not null) --建立测试表
backup log test1 to test_bak with name='log1' --日志备份log1
insert b1 values(1,'a') --第一次插入操作
waitfor delay '00:00:02' --延迟两秒
insert b1 values(-1,'aa') --第二次插入操作
waitfor delay '00:00:02' --延迟两秒
insert b1 values(-2,'aaa')--第三次插入操作backup log test1 to test_bak with name='log2' --日志备份log2上述脚本在日志log1与log2之间有三次插入操作
通过语句restore headeronly from test_bak的BackupFinishDate字段可知
log1的日志备份完成于2011-07-04 08:41:23.000
log2的日志备份完成于2011-07-04 08:41:27.000
可通过逆向推导出:
第一个插入语句于2011-07-04 08:41:23.000时间点执行的
第二个插入语句于2011-07-04 08:41:25.000时间点执行的,
第三个插入语句于2011-07-04 08:41:27.000时间点执行的,
那么SqlServer中有什么办法可以知道一个日志备份(如:log2)中自上次日志备份(如:log1)以来所发生每个操作(插入,更新)的时间点?
那么 在restore log 语句中指定stopat选项岂不是没有意义了?
因为不知道要恢复到某个语句的发生时间啊?
从05版本后的数据库好像没法看到日志里面记录了些什么,有方法知道的,ls的可以贴出来学习学习