1. 程式人生 > >SQL server2008無法收縮日誌

SQL server2008無法收縮日誌

正常的 解決辦法 機器 發現 滿了 tab 網上 邏輯 use

SQL server2008無法收縮日誌,錯誤信息為:

1:由於最小日誌空間要求,無法收縮日誌文件

2:無法收縮日誌文件 2 (XXX_log),因為該文件結尾的邏輯日誌文件正在使用


描述:

用的是網上普遍有的收縮代碼
USE [master]
GO
ALTER DATABASE shujuku SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE shujuku SET RECOVERY SIMPLE --簡單模式
GO
USE shujuku
GO
DBCC SHRINKFILE (N‘shujuku_Log‘ , 11)
GO
USE [master]
GO

ALTER DATABASE shujuku SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE shujuku SET RECOVERY FULL --還原為完全模式
GO
最後收縮失敗,失敗信息如下:
無法收縮日誌文件 2 (shujuku_log),因為該文件結尾的邏輯日誌文件正在使用
始終無法收縮成功!找了各種解決辦法,試了各種SQL

但是首先有個事情我是很確定的。這個日誌的增長是因為我創建了發布和訂閱,並且在剛創建的幾天都能正常的收縮,運行了幾天後才發現突然不能收縮了。

最後我發現故障出現在訂閱的客戶機上,由於我只關註了發布機器的日誌,忽略了訂閱客戶機的日誌。發現訂閱客戶機的日誌已經把客戶機磁盤撐滿了,造成發布和訂閱無法正常完成。

因此發布機的事務一直未得到正常的執行,所以日誌文件不能收縮。

解決:

1:在訂閱客戶機上收縮日誌,並且創建一個定時任務。

2:當同步完成後,再收縮發布機,日誌正常收縮成功。

SQL server2008無法收縮日誌