從 fn_dbLog 解析操作日志(補充update)


過去經常聽到SQL server 日志,可是在提供的界面上看到的Log不是我們想要的,我們想窺探具體的數據操作日志。專業恢復追蹤數據庫操作日志的軟件:ApexSQLLog,偶然發現SQL Server提供了一個系統函數暴露了日志接口。目前可以查閱到insert和delete的代碼案例,在前人的基礎上增加了update了解析。

代碼在這里:https://github.com/jk464479460/SQLSERVERLOG

詳細觀察代碼可以看到原創的地址,進入去細細研究insert和delete,這里不列出了。文章很好的說明了每一列的16進制排列順序,要點:先固定列,后變長列

關於update的解析,通過DBCC PAGE窺探到每一列的字節位置,結合dbLog中的:PageIDSLotoffset 信息,根據數據庫的部分更新原則去解析。

通過解析十六進制,能夠揣摩一二微軟日志上如何記錄的,值得我們借鑒。

 

參考:

https://raresql.com/2012/02/01/how-to-recover-modified-records-from-sql-server-part-1/

https://www.sqlskills.com/blogs/paul/finding-table-name-page-id/

https://learningintheopen.org/2015/12/10/sql-server-fn_dblog-approx-date-time/

https://raresql.com/2012/02/01/how-to-recover-modified-records-from-sql-server-part-2/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM