网页链接我是用这个方法收缩的,可以将日志收缩到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
==最后不要忘记实测下数据库是否能够正常使用==
网页链接
--此为数据文件、数据库日志文件收缩 *** 作语句--保存时间:2017-1-9
--使用说明:
--“DataBase”为数据库名称,在进行数据收缩 *** 作前,先做好数据备份
--将语句中的“DataBase”替换为需要进行数据收缩的数据库名称,如:test
--在进行数据库收缩的时候,要留出 *** 作时间,期间不要进行任何用户 *** 作
--确认无误后,执行语句,即可进行数据收缩!
use master
go
alter database DataBase set recovery simple with NO_WAIT
go
alter database DataBase set recovery simple
go
declare @name varchar(20)
declare @sql varchar(100)
select @name = name from sys.database_files where type = 1
set @sql = 'DBCC SHRINKFILE (N'''+ @name +''' , 11, TRUNCATEONLY)'
exec(@sql)
go
dbcc shrinkdatabase(DataBase)
go
alter database DataBase set recovery full with NO_WAIT
go
--设置恢复模式('SIMPLE'表示简单;'FULL'表示完整)
alter database DataBase set recovery full
go
--设置数据库兼容性级别为sql 2008
alter database DataBase set compatibility_level = 100
go
解决方法:方法一
右键选择数据库-》任务-》收缩-》文件-》文件类型-》日志-》在释放未使用的空间前重新组织页
方法二(不推荐)
1 必须先改成简单模式
2 然后用
----Logical Files :
--CMS1.5_Data
--CMS1.5_Log
DBCC SHRINKFILE (N'CMS1.5_Log' , 1)
GO
注:Data是数据文件,Log是日志文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)