1. 程式人生 > 實用技巧 >檢視SQL Server備份後的日誌(轉載)

檢視SQL Server備份後的日誌(轉載)

Part1中我們提到可以用fn_dblog檢視Active的Log,但是如果Log被備份以後我們還可以檢視嗎?

  

答案是可以的,使用fn_dump_dblog。

 

下面是我自己做的測試:

  

1.  --insert data to table

 INSERT INTO ProdTable2DEFAULTVALUES;

 GO 1000

 

2.   ---查詢Log資訊

 select * from fn_dblog(null,null)whereOperation='LOP_INSERT_ROWS'

查到100條記錄。



3.  --備份Log

backup log
FNDBLogTesttodisk='d:\mssql\FNDBLogTest.trn' 4. ---查詢Log資訊 select * from fn_dblog(null,null)whereOperation='LOP_INSERT_ROWS' (0 row(s) affected) 可以看到Log已經被備份了,沒有Active的Log存在,所以fn_dblog沒有返回任何資訊。 我們用下面的語句在查一下: 5. –從備份Log查詢: SELECT * FROMfn_dump_dblog( NULL, NULL,'DISK', 1,'d:\mssql\FNDBLogTest.trn
', DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT, DEFAULT, DEFAULT,DEFAULT
,DEFAULT,DEFAULT,DEFAULT, DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT, DEFAULT, DEFAULT, DEFAULT,DEFAULT,DEFAULT,DEFAULT,DEFAULT) whereOperation ='LOP_INSERT_ROWS' GO 查詢結果顯示1000記錄: 比對一下查詢結果跟日誌備份前fn_dblog的查詢結果相同。 注意:需要指定63個預設NULL引數,否則無法返回資料。前5個引數含義如下: 1. 開始LSN 2. 結束LSN 3. 備份檔案型別(disk或者Type) 4. 備份檔案順序號(假設多個備份到同一個檔案) 5. 備份檔名 更詳細的資訊可以參考Paul在SQLSkill上的文章(Using fn_dblog, fn_dump_dblog, and restoring with STOPBEFOREMARK to an LSN)

https://blog.csdn.net/kevinsqlserver/article/details/7817540