簡體   English   中英

SQL Server日志文件-當不使用數據庫時,為什么它的大小增加了?

[英]SQL Server Log File - Why it increases in size when the database is not in use?

我們有一個使用SQL Server數據庫的ERP應用程序。 盡管當前未使用該應用程序,但其日志文件不斷增加,目前為28GB。 我花了幾周的時間進行完整備份,以截斷日志文件(當時它是85GB),現在又回到了28GB。 我已將日志文件大小設置為20GB,增量為100MB,並且不受限制地增長。

為什么在不使用應用程序時日志文件的大小會增加,如何查看導致日志文件增加的事務以及如何對其進行更好的管理? 在這種情況下,設置服務器跟蹤是否有用?

檢查sys.dm_exec_requestssys.dm_exec_sessions的輸出,以查找正在運行的查詢以及連接到數據庫的對象。

如果那對您沒有幫助,那么您當然可以設置服務器跟蹤或擴展事件會話-如果您真的認為沒有人在連接和查詢,則可以使用以下方法進行驗證:

IF EXISTS (SELECT * FROM sys.server_event_sessions WHERE name = 'EE_Queries')
DROP EVENT SESSION EE_Queries ON SERVER;
GO

CREATE EVENT SESSION EE_Queries ON SERVER
ADD EVENT sqlserver.sql_statement_completed
(ACTION (sqlserver.sql_text,sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.nt_username, sqlserver.username)
WHERE sqlserver.database_id = /* fill in your DB_ID() here */)
ADD TARGET package0.asynchronous_file_target
(SET FILENAME = N'C:\logs\EE_Queries.xel', METADATAFILE = N'C:\logs\EE_Queries.xem')
WITH (max_dispatch_latency = 1 seconds);
GO


ALTER EVENT SESSION EE_Queries ON SERVER STATE = START;

它將記錄對數據庫進行的所有查詢-只需將注釋部分替換為要跟蹤的數據庫的DB_ID() 這將啟動擴展事件會話,該會話跟蹤所有查詢,包括查詢的文本,應用程序名稱,主機名以及運行查詢的用戶的用戶名(NT和/或SQL用戶名)。 那應該很快就提示您。 請注意在繁忙數據庫中的生產環境中的事件會話-如果您有很多查詢,它可能會降低性能並可能很快填滿磁盤 擴展事件在本地的輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM