星期二, 9月 25, 2012

MSSQL 2008 如何清空交易記錄檔(*_Log.LDF)

在 MSSQL 2000 可以下 T-SQL 指令

backup log database_name with TRUNCATE_ONLY

dbcc shrinkdatabase (database_name, TRUNCATEONLY)

“database_name”是資料庫檔案的實際名稱。

來清空交易記錄檔(*_Log.LDF)。

但在 MSSQL 2005 以後,此 T-SQL 指令就不能使用了,必須改用其他方法,以下是方法之一。
(提醒您執行處理之前,務必先備份原來的資料庫。)

一、將資料庫切換至【簡單】復原模式。
use master
go
ALTER DATABASE 【database_name】 SET RECOVERY SIMPLE WITH NO_WAIT


二、查詢資料庫交易記錄檔的邏輯名稱(如果已經知道【database_log_name】的名稱可以省略 select 那一行指令 )。
use 【database_name】
go
select name from sys.database_files where type_desc = 'log'

三、將交易記錄檔還原成 1MB。
DBCC SHRINKFILE(【database_log_name】, 1)

四、將資料庫切換回【完正】復原模式。
use master
go
ALTER DATABASE 【database_name】SET RECOVERY FULL WITH NO_WAIT

最後再次提醒您,在執行任何處理之前,請務必先備份原來的資料庫。

沒有留言: