2022年4月14日 星期四

[研究]檢視 SQL Server Database Transaction Log File 資料庫交易記錄檔 (.ldf) 內容

[研究]檢視 SQL Server Database Transaction Log File 資料庫交易記錄檔 (.ldf) 內容

2022-04-14

環境:SQL Server 2019 Standard

.mdf 是 SQL Server Database Primary Data File
.ldf 是 SQL Server Database Transaction Log File

交易記錄檔,是用在資料庫交易記錄與災難復原時。一般在做完完整備份後,就可以清空(一定要是完整備份)。它主要目的不是給人類閱讀的,若一定要閱讀,也是有辦法。

T-SQL 未公開語法,可於 SQL Server Management Studio ( SMSS ) 上執行

SQL Server Undocumented Command: DBCC log
DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )   

參數說明

PARAMETERS:
Dbid or dbname - Enter either the dbid or the name of the database in question.

type - is the type of output:

0 - minimum information (operation, context, transaction id)

1 - more information (plus flags, tags, row length)

2 - very detailed information (plus object name, index name, page id, slot id)

3 - full information about each operation

4 - full information about each operation plus hexadecimal dump of the current transaction log's row.

by default type = 0

To view the transaction log for the master database, you can use the following command:

DBCC log (master)

實際測試一下

DBCC Log(TestDB,0);

DBCC Log(TestDB,1);

DBCC Log(TestDB,2);

DBCC Log(TestDB,3);

DBCC Log(TestDB,4);


(下圖) click 可看 100% 原始尺寸

後面不列了,基本上參數愈大,資訊愈多,但基本上不是給人閱讀的。

********************************************************************************
檢視 LDF 的 T-SQL 內容

要檢視 .ldf 到底執行了甚麼 T-SQL 命令,一般要借助 3rd Party 工具。此處找了一個7天免費試用版,而且每個資料表只能看前50筆的 Demo 版工具 SQL Log Analyzer 試用一下。

SysTools - Global Leader in Digital Technology Software Solutions
https://www.systoolsgroup.com/

點 SOLUTIONS,點 SQL Log Analyzer 的下載圖示,點 Free Download 按鈕,輸入 Email 和姓名進行下載
https://www.systoolsgroup.com/sql-log-analyzer.html

根據網頁上最下方說明

Trial Limitations

Demo Version of SQL Log Analyzer Software provides 7 Days Free Trial to preview all the tables (50 records per table). Free Version does not provide option to export data

雖然畫面上說8.1版支援

Microsoft Windows 7 / 8 / 8.1 / 10 (32-Bit & 64-Bit), Windows 11 (64-Bit) & Windows Server 2008 / 2012 / 2016

SQL Server 2005, 2008 R2, 2012, 2014, 2016, 2017</li>

敝人實際使用環境是 Windows Server 2019 + SQL Server 2019 Standard,是可以用的。

教學可看下面網頁

https://www.systoolsgroup.com/sql-log-analyzer/how-it-works.html

敝人實際測試,Trial版可以使用 Online DB Options 和 Offline DB Options 去存取資料庫 Log,後者要把資料庫服務先停用 (控制台\系統及安全性\系統管理工具\服務\SQL Server (MSSQLSERVER)),但讀取分析速度較快)。



大略可以看一下,那些 table 被頻繁的存取。(左邊資料表列表後方括弧內有次數)

(完)

相關

[研究] SQL Server 資料庫 的交易紀錄已滿,因為發生 'LOG_BACKUP'。
http://shaurong.blogspot.com/2022/04/sql-server-database-transaction-log_14.html

[研究] 資料庫 'xxx' 的交易記錄已滿,因為發生 'LOG_BACKUP'。

[研究] SQL Server 2016 刪除 .ldf 檔案

[研究]檢視 SQL Server Database Transaction Log File 資料庫交易記錄檔 (.ldf) 內容

[研究][ASP.NET]Elmah寄信通知「資料庫...的交易記錄已滿,因為發生 'LOG_BACKUP'」https://shaurong.blogspot.com/2022/04/aspnetelmah-logbackup.html

[研究]檢視 SQL Server Database Transaction Log File 資料庫交易記錄檔 (.ldf) 內容https://shaurong.blogspot.com/2022/04/sql-server-database-transaction-log.html

[研究]縮小 SQL Server Database Transaction Log File 資料庫交易記錄檔 (.ldf) 大小https://shaurong.blogspot.com/2022/04/sql-server-database-transaction-log_14.html

沒有留言:

張貼留言