結果發現都是Log檔佔掉了空間,高達幾十GB都有可能,這時候只好先想辦法清空Log資料,SQL Server 2008的話可以嘗試以下的指令來做清除:
SQL SERVER 2008
1 2 3 4 5 6
USE [資料庫名稱] GO ALTER DATABASE [資料庫名稱] SET RECOVERY SIMPLE WITH NO_WAIT DBCC SHRINKFILE(記錄檔邏輯名稱, 1) ALTER DATABASE [資料庫名稱] SET RECOVERY FULLWITH NO_WAIT GO
邏輯名稱可在資料庫上按右鍵=>[屬性]=>[檔案]中查看,注意邏輯名稱不一定會和檔名相同,例如:
1 2 3 4 5 6
USE [TestDB] GO ALTER DATABASE [TestDB] SET RECOVERY SIMPLE WITH NO_WAIT DBCC SHRINKFILE(TestDB_log, 1) ALTER DATABASE [TestDB] SET RECOVERY FULLWITH NO_WAIT GO
之前的版本的話可以使用以下指令,網路上找到的順便整理進來,沒有實際使測過:
SQL SERVER 2000, 2005
1 2 3 4 5 6
USE [資料庫名稱] GO DBCC SHRINKFILE(記錄檔邏輯名稱, 1) BACKUP LOG [資料庫名稱] WITH TRUNCATE_ONLY DBCC SHRINKFILE(記錄檔邏輯名稱, 1) GO
例如:
1 2 3 4 5 6
USE [TestDB] GO DBCC SHRINKFILE(TestDB_log, 1) BACKUP LOG [TestDB] WITH TRUNCATE_ONLY DBCC SHRINKFILE(TestDB_log, 1) GO