簡體   English   中英

SQL Server數據庫的LOG文件大小沒有減少是什么原因?

[英]What is the reason that the LOG file size of the SQL Server database does not decrease?

我使用以下查詢來查看數據庫日志文件。

declare @templTable as table 
(   DatabaseName  nvarchar(50),
    LogSizeMB nvarchar(50), 
    LogSpaceUsedPersent nvarchar(50),
    Statusee bit
)
INSERT INTO @templTable
EXEC('DBCC SQLPERF(LOGSPACE)')
SELECT * FROM @templTable ORDER BY convert(float , LogSizeMB) desc

DatabaseName    LogSizeMB   LogSpaceUsedPersent 
===============================================
MainDB           6579.93    65.8095             

我還使用以下代碼查看主數據庫文件使用的空間量。

with CteDbSizes
as
(
    select database_id, type, size * 8.0 / 1024 size , f.physical_name
    from sys.master_files f
)
select 
    dbFileSizes.[name] AS DatabaseName,
    (select sum(size) from CteDbSizes where type = 1 and CteDbSizes.database_id = dbFileSizes.database_id) LogFileSizeMB,
    (select sum(size) from CteDbSizes where type = 0 and CteDbSizes.database_id = dbFileSizes.database_id) DataFileSizeMB
    --, (select physical_name from CteDbSizes where type = 0 and CteDbSizes.database_id = dbFileSizes.database_id) as PathPfFile
from sys.databases dbFileSizes ORDER BY DataFileSizeMB DESC

DatabaseName    LogFileSizeMB    DataFileSizeMB
===============================================
MainDB           6579.937500     7668.250000

但無論我做什么,數據庫日志空間的數量都不小於 6 GB。 您認為有一個多月沒有更改數據庫日志的原因嗎? 有沒有辦法減少這個數量? 我還使用了不同的方法和查詢來減小日志文件的大小。 我在其他數據庫上得到了很好的答案。 像下面這樣:

use [master];
GO
USE [master]
GO
ALTER DATABASE [MainDB] SET RECOVERY SIMPLE WITH NO_WAIT
GO    
USE [MainDB]
GO
DBCC SHRINKDATABASE(N'MainDB')
GO
DBCC SHRINKFILE (N'MainDB_log' , EMPTYFILE)
GO
ALTER DATABASE [MainDB] SET RECOVERY FULL WITH NO_WAIT
GO

但是在這個特定的數據庫中,數據庫日志仍然不少於6GB。 請幫忙。 謝謝。

正如我在主要帖子中所告知的那樣,一段時間后,我們的數據庫文件日志的大小達到了大約 25 個 gig,我們甚至無法再壓縮數據庫文件。 經過一番搜索,我得出的結論是我應該備份日志文件,然后壓縮日志文件。 為此,我定義了一個幾乎每 30 分鍾從一個日志備份文件准備一個文件的作業,這些文件的大小通常不超過 150 MB。 然后,在每次備份日志文件后,我運行一次日志壓縮命令。 使用這種方法,日志文件的大小大大減少,現在我們有大約 500 MB 的日志文件。 當然,由於數據庫上有大量事務,提到的作業必須始終處於活動狀態。 如果作業不活躍,我會再次增加日志量。

暫無
暫無

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

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