none
如何知道备份日志中每次操作发生的时间点? RRS feed

  • 问题

  • 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)以来所发生每个操作(插入,更新)的时间点?

    2011年7月4日 1:56

答案

全部回复