设为首页 加入收藏

TOP

SQL Server 2008下日志清理方法
2014-11-24 02:52:27 来源: 作者: 【 】 浏览:1
Tags:SQL Server 2008 日志 清理 方法
每次看到暴涨的 数据库日志就有些头大,于是乱搜一通找个办法把日志干掉,下次又头大,又搜半天,于是还是写篇blog,不用乱找了。
1.将数据库设置成 简单 模式
选择要收缩的数据库,点右键 属性->选项,选择 简单模式


2.选择任务->收缩->文件
3.选择日志
或者用如下语句
代码
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY SIMPLE
GO
USE DNName
GO
DBCC SHRINKFILE (N'LogFileName' , 0,TRUNCATEONLY)
GO
USE [master]
GO
ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE DNName SET RECOVERY FULL
GO


SQL Server 2000要清理日志使用的是dump语句,但是在SQL Server2008里,这个语句不管用了,如果日志文件很大,比如超过1G,就需要截断一下日志文件以加快sqlserver的运行速度,在SQL Server2008里,方法改为:
有数据库 xxdb 在 SQL Server 2008 下,日志文件已经超过1G。
以往使用BACKUP语句-BACKUP LOG xxdb WITH NO_LOG 已经失效,在查阅 MSDN 之后发现 MS 提供的标准截断日志语句已经变为了 “BACKUP LOG 语句不指定 WITH COPY_ONLY”
使用语句 BACKUP LOG xxdb to disk='x:\work\1.bak' 成功将日志文件备份,并截断日志文件。这里x:代表你想要备份文件的盘符。
然后使用 DBCC SHRINKFILE (xxdb_log,10) 收缩日志文件到 10M
总结:
完整的收缩日志文件的 T-SQL 语句:


BACKUP LOG xxdb to disk='x:\work\1.bak'
DBCC SHRINKFILE (xxdb_log,10)
GO

--

BACKUP LOG to disk=<'backupfilename'>
DBCC SHRINKFILE (,10)
GO
里面的x:\work是随意设置的。当然也可以收缩到比如5M或1M。



在用的:
USE[master]
GO
ALTERDATABASEYHDBSETRECOVERYSIMPLEWITHNO_WAIT
GO
ALTERDATABASEYHDBSETRECOVERYSIMPLE--简单模式
GO
USEYHDB
GO
DBCCSHRINKFILE(N'YHDB_log', 11,TRUNCATEONLY)
GO
USE[master]
GO
ALTERDATABASEYHDBSETRECOVERYFULLWITHNO_WAIT
GO
ALTERDATABASEYHDBSETRECOVERYFULL--还原为完全模式
GO

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sqlserver2008时间查询 下一篇SQL Server附加数据库时报1813错..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Sphinx : 高性能SQL (2025-12-24 10:18:11)
·Pandas 性能优化 - (2025-12-24 10:18:08)
·MySQL 索引 - 菜鸟教 (2025-12-24 10:18:06)
·Shell 基本运算符 - (2025-12-24 09:52:56)
·Shell 函数 | 菜鸟教 (2025-12-24 09:52:54)