网页链接我是用这个方法收缩的,可以将日志收缩到1MB
守得云开见月明,花了一个上午结合前辈的博客,终于弄好了sqlserver2008的数据库日志收缩到1MB,分享给大家
# 方法步骤
1、执行SQL语句改成“简单模式”
2、收缩数据库
3、执行SQL语句改回“完全模式”
## 第一步:执行SQL语句改成“简单模式”
USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名) SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名) SET RECOVERY SIMPLE --改成简单模式
GO
## 第二步:进行数据库 *** 作
相关界面截图和 *** 作
假定:
数据库名:SlowXWebDB
日志文件名:SlowXWebDB_Log
数据库日志文件过大需要清理
**1.选择数据库右键点击任务-收缩-文件 注意:文件类型选为日志**
2.如下图选择需要收缩的大小,最小为0MB,本人实测最小只能到1MB,不过已经很满足了哈哈**
3.点击确认,几十G的日志文件,嗖的一下就瘦身完成了****看下数据库日志文件清理后的效**果
## 第三步:执行SQL语句改成“完全模式”
USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名)SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE datebaseName(改成你需要进行收缩的数据库名)SET RECOVERY FULL --还原为完全模式
GO
==最后不要忘记实测下数据库是否能够正常使用==
网页链接
如果数据库是镜像,那么日志文件无法变小,除非备份日志后并重启数据库;
不过,备份日志可以截断日志文件,让日志文件空间重复使用,此时虽然日志文件有370G,但是实际上只用了一部分,未使用的,会用新日志覆盖上去,你定期备份日志来截断,sql:
备份日志可以截断日志,让日志空间可以循环使用,这样可以使日志文件的大小不再增长。
BACKUP LOG dbname TO DISK = 'e:\log20111122.bak'--备份完整日志
简单的办法就是设置日志模式为Simple了
ALTER DATABASE [数据库名] SET RECOVERY SIMPLE
再给一个看日志文件使用率的sql:
-- 查看当前数据库日志文件大小和使用率,size以8 KB 为单位,所以除128就是MBSELECT name, data_space_id 文件组id, size/128 [文件大小(兆)],
FILEPROPERTY(name, 'SpaceUsed')/128 [已用空间(兆)],
size/128 - FILEPROPERTY(name, 'SpaceUsed')/128 [未用空间(兆)],
FILEPROPERTY(name, 'SpaceUsed')*100.0/size [使用率(%)],
max_size/128 [最大值(兆)],
case is_percent_growth when 0 then cast(growth/128 as nvarchar) + '兆' else cast(growth as nvarchar) + '%' end 增长值,
physical_name 物理路径
FROM sys.database_files a ORDER BY a.[name]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)