MSSQL 2005,2008,2012收缩清空删除大日志文件

由于SQL2008,2012对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:

SQL2005清空删除日志:


-- 这里的DNName是要收缩的数据库名,注意修改下面的数据库名。
-- 用sqlperf查看log大小及使用率

use master
dbcc sqlperf(logspace)
go

-- 先用sp_helpdb找出目标数据库的逻辑文件名
sp_helpdb DNName
-- 用以下语句也可以
use DNName
SELECT * FROM sys.database_files; 
go


-- 截断事务日志
use master
Backup Log DNName with no_log  
go

-- 设置事务日志为空
use master
dump transaction DNName with no_log 
go


-- DBCC SHRINKFILE   ({ file_name | file_id }{  [  , target_size ] }  )  
-- file_name 要收缩的文件的逻辑名称。
-- file_id 要收缩的文件的标识 (ID) 号。 
-- target_size 用兆字节表示的文件大小(用整数表示)。 如果未指定,
-- 则 DBCC SHRINKFILE 将文件大小减少到默认文件大小。 默认大小为创建文件时指定的大小。

USE DNName
DBCC SHRINKFILE (2)
Go




--------------------------------------------------------------

(SQL2008,2012):
在SQL2008,2012中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

<pre name="code" class="sql">USE[master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE   --简单模式
GO


-- 先用sp_helpdb找出目标数据库的逻辑文件名  
sp_helpdb DNName  
-- 用以下语句也可以  
USE DNName  
SELECT * FROM sys.database_files;   
GO 

USE DNName
GO
DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
GO
USE[master]
GO

ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO

ALTER DATABASE DNName SET RECOVERY FULL  --还原为完全模式
GO



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值