34,576
社区成员
发帖
与我相关
我的任务
分享
--在sql server 2008上,收缩日志之前必须把数据备份等级设置为simple(简单),切记!
ALTER DATABASE your_database_name SET RECOVERY SIMPLE
GO
-- 收缩
DBCC SHRINKFILE (2,30) --30单位为M,日志文件的大小
GO
-- 更改模式为FULL ,再改回来,如果本身就已是simple,那就不必要了
ALTER DATABASE your_database_name SET RECOVERY FULL
GO
select name from sys.database_files WHERE type_desc = 'LOG'
USE 数据库
GO
DBCC SHRINKFILE (N'文件名' , 1)
GO
LZ上面的方法可以,我下面還有幾種方法,LZ可以看看
方法一:
--BigData为数据库名(該方法在SQL2008無效)
DUMP TRANSACTION BigData WITH NO_LOG
BACKUP LOG BigData WITH NO_LOG
DBCC SHRINKDATABASE(BigData )
方法二:
USE BigData;
GO
BACKUP LOG DATABASENAME TO DISK='d:\test.bak'
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (Bigdata_Log, 1);
GO
方法三:
use DB_NAME
sp_dboption DB_NAME, "trunc. log on chkpt.", true
checkpoint
sp_dboption DB_NAME, "autoshrink", true
--每一行指令请单独执行。其中的DB_NAME是指Database Name,在下完语法后的数小时至数十小时,该LOG档会逐渐释放空间,最后大约都会维持在数1024KB左右