茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671760 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00112.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

DB研討會 : [轉貼]清除SQL Server Log檔

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]清除SQL Server Log檔

清除SQL Server Log檔

How to clear database transaction log file

如果沒有限制資料庫的Log成長,一不小心某天就發現硬碟竟然滿了,此時會出現這樣的錯誤訊息:


訊息 9002 ....
資料庫 'TestDB' 的交易記錄已滿。如果要了解為何無法重複使用記錄中的空間,請參閱 sys.databases 中的 log_reuse_wait_desc 資料行。

結果發現都是Log檔佔掉了空間,高達幾十GB都有可能,這時候只好先想辦法清空Log資料,SQL Server 2008的話可以嘗試以下的指令來做清除:

SQL SERVER 2008


 USE [資料庫名稱]
GO
ALTER DATABASE [資料庫名稱] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC SHRINKFILE(記錄檔邏輯名稱, 1)
ALTER DATABASE [資料庫名稱] SET RECOVERY FULL WITH NO_WAIT
GO

邏輯名稱可在資料庫上按右鍵=>[屬性]=>[檔案]中查看,注意邏輯名稱不一定會和檔名相同,例如:


 USE [TestDB]
GO
ALTER DATABASE [TestDB] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC SHRINKFILE(TestDB_log, 1)
ALTER DATABASE [TestDB] SET RECOVERY FULL WITH NO_WAIT
GO

之前的版本的話可以使用以下指令,網路上找到的順便整理進來,沒有實際使測過:

SQL SERVER 2000, 2005


 USE [資料庫名稱]
GO
DBCC SHRINKFILE(記錄檔邏輯名稱, 1)
BACKUP LOG [資料庫名稱] WITH TRUNCATE_ONLY
DBCC SHRINKFILE(記錄檔邏輯名稱, 1)
GO

例如:


 USE [TestDB]
GO
DBCC SHRINKFILE(TestDB_log, 1)
BACKUP LOG [TestDB] WITH TRUNCATE_ONLY
DBCC SHRINKFILE(TestDB_log, 1)
GO


原文出處: 清除SQL Server Log檔 @ 小殘的程式光廊 :: 痞客邦 PIXNET ::
冷日提醒:
MSSQL 預設安裝完新增的資料庫『預設是不限制大小的』!
前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|