Sql-Server

日誌文件不會縮小 - 建議?

  • August 19, 2019

我有一個 225GB 的數據庫和一個 390GB 的日誌文件,它的大小最近才爆炸式增長。我正在嘗試縮小它 - 根據這些說明:https ://www.brentozar.com/blitz/transaction-log-larger-than-data-file/

我無法在 SSMS 或 DBCC SHRINKFILE 命令上收縮它。我試著等到它不被使用,還嘗試了日誌備份,然後再次執行 DBCC SHRINKFILE,但無濟於事。關於我能做什麼的任何想法?

我在這篇文章(https://www.mssqltips.com/sqlservertutorial/3311/how-to-shrink-the-transaction-log/)中看到它說我可以嘗試將恢復模型翻轉為簡單,執行收縮,然後將其翻轉回Full,但這對我來說聽起來很冒險,所以我很謹慎地嘗試。

另外值得注意的是,我的數據庫正在鏡像,目前處於掛起狀態。

想問問各位大俠能不能給點建議。我們是您典型的無 DBA 商店,因此我感謝任何新手良心指示或建議!謝謝!

log_reuse_wait_descdatabase_mirroring並且您提到它目前卡在 Suspended 狀態

select name, log_reuse_wait_desc from sys.databases

您應該找到您的鏡像被暫停的原因。嘗試在主體上搜尋包含Database mirroring has been suspended在 ERRORLOG 文件中的消息。它可能如下所示:

2019-08-13 11:40:48.98 spid64s 錯誤:1453,嚴重性:16,狀態:1。

2019-08-13 11:40:48.98 spid64s ‘TCP://xxx.com:5022’,數據庫 ‘DB’ 的遠端鏡像夥伴,遇到錯誤5149,狀態 3,嚴重性 25。數據庫鏡像已暫停。解決遠端伺服器上的錯誤並恢復鏡像,或者刪除鏡像並重新建立鏡像伺服器實例。

使用錯誤號,您可以從以下位置獲取其描述sys.messages

select * from sys.messages where message_id = 5149

這個案例:

MODIFY FILE 在嘗試擴展物理文件 ‘%ls’ 時遇到作業系統錯誤 %ls。

這意味著沒有足夠的物理空間來擴展鏡像上的文件。

解決任何發現的錯誤後,您必須打開鏡像。在主體上執行:

ALTER DATABASE YourDBName SET PARTNER RESUME;

如果您在 中找不到任何相關錯誤ERRORLOG,只需嘗試使用上面的命令恢復鏡像,然後ERRORLOG在鏡像數據庫進入掛起狀態(如果確實如此)後查看數據庫並檢查您的錯誤.

引用自:https://dba.stackexchange.com/questions/245611