数据库日志文件过大如何收缩?

数据库日志文件过大如何收缩?,第1张

网页链接我是用这个方法收缩的,可以将日志收缩到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是日志文件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9544026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存