2012-01-04 220 views
5

在SQL Server 2008中有什麼辦法可以禁用事務日誌或清除日誌文件?如何在SQL Server 2008中禁用事務日誌

當我在我的項目中執行一個查詢時(在事務方面非常大),那個時候這個日誌文件的大小將增加(2到3 GB)。

請給我一些不錯的選擇。

+1

您的問題已經在SO上提出並解答。這裏的鏈接http://stackoverflow.com/questions/996403/disable-transaction-log – GuZzie 2012-01-04 08:23:02

+0

@GuZzie是的,但鏈接只是爲恢復模型 - 和OP也問清除它.....所以不要把不完整的相關鏈接。 – 2012-01-04 08:24:26

+1

@RoyiNamir 2年前問過問題,但仍未清除?在這種情況下,同樣的決議應該回答Arun的問題。對不起,幫助lol – GuZzie 2012-01-04 08:28:26

回答

3

你可能會縮小它

DECLARE @sql NVARCHAR(MAX) = '' 
SELECT @sql = @sql + N'DBCC SHRINKFILE('+CAST(file_id AS NVARCHAR)+N', 0);' 
FROM sys.database_files 
WHERE type = 1 

EXEC(@sql) 

它僅適用於簡單恢復模式,而不是你需要備份日誌了,後來它收縮

你不能在所有即使您的數據庫是只讀模式刪除日誌文件。

AND嘗試在處理sql server的數據庫時重新設計和檢查你的方法。收縮文件不是正確的選擇或最佳做法 - 尤其是定期進行!

+0

感謝您的支持努力,是否爲此創建工作是正確的選擇,因此在特定的時間間隔內它將執行並縮小該文件? – 2012-01-04 08:36:03

+0

是的 - 只是在你的情況可能是,但嘗試重新設計和審查你的方法時,處理sql服務器的數據庫。收縮文件不是正確的選擇或最佳做法 - 尤其是定期進行! – 2012-01-04 08:39:52

+0

這適用於完全恢復,但會破壞您的日誌備份鏈。您需要完整備份來重置日誌備份鏈。這也不是答案,真的。它只是修復症狀併產生更多問題。我不會因爲你已經縮小縮小而降低你的評價。這個問題得到一個雖然 – gbn 2012-01-04 08:51:11

0

更改恢復模式:simple

ALTER DATABASE myDB SET RECOVERY SIMPLE 

和運行

DBCC SHRINKFILE (MyLog, 1); // to 1 MB 

但是,從你在哪裏得到的日誌名稱?

sp_helpdb MyDb 
+3

然後它再次增長,導致物理碎片和VLF問題。 – gbn 2012-01-04 08:25:10

+0

@gbn命令是不是沒有。我建立一個哈希工具,它需要一個bak - 恢復它,Hasha數據,並創建一個新的bak.Now,截斷日誌文件,幫助了我很多。 – 2012-01-04 08:27:17

+0

該命令用於特定用途。我知道你做了什麼:你問dba.se.但這並不意味着它適合使用adhoc。 -1 – gbn 2012-01-04 08:37:15

8

不能禁用事務日誌在SQL Server中。沒門。

您可以切換到簡單恢復模式

ALTER DATABASE YourDatabase SET RECOVERY SIMPLE 

,紀錄少 - 但事務日誌是SQL Server這樣一個基本的,核心理念,你不能只把它們關掉。

2

您無法禁用事務日誌。

如果您的日誌需要大3GB,那就這樣吧。如果縮小它,它會再次增長並導致其他問題。

如果它是一關,你可以通過