如果沒有限制資料庫的Log成長,一不小心某天就發現硬碟竟然滿了,此時會出現這樣的錯誤訊息:
訊息 9002 ....
資料庫 'TestDB' 的交易記錄已滿。如果要了解為何無法重複使用記錄中的空間,請參閱 sys.databases 中的 log_reuse_wait_desc 資料行。結果發現都是Log檔佔掉了空間,高達幾十GB都有可能,這時候只好先想辦法清空Log資料,SQL Server 2008的話可以嘗試以下的指令來做清除:
SQL SERVER 2008
|
1
2
3
4
5
6
|
USE [資料庫名稱]GOALTER DATABASE [資料庫名稱] SET RECOVERY SIMPLE WITH NO_WAITDBCC SHRINKFILE(記錄檔邏輯名稱, 1)ALTER DATABASE [資料庫名稱] SET RECOVERY FULL WITH NO_WAITGO |
邏輯名稱可在資料庫上按右鍵=>[屬性]=>[檔案]中查看,注意邏輯名稱不一定會和檔名相同,例如:
|
1
2
3
4
5
6
|
USE [TestDB]GOALTER DATABASE [TestDB] SET RECOVERY SIMPLE WITH NO_WAITDBCC SHRINKFILE(TestDB_log, 1)ALTER DATABASE [TestDB] SET RECOVERY FULL WITH NO_WAITGO |
資料來源:http://emn178.pixnet.net/blog/post/76202708-%E6%B8%85%E9%99%A4sql-server-log%E6%AA%94
文章標籤
全站熱搜
