程序员人生 网站导航

数据库xxx中的文件xxx_log的自动增长已由用户取消的解决方案

栏目:Sqlserver时间:2013-10-19 17:25:56

今天访问WEB时怎么也登陆不上去,一直超时,于是到服务器上看了下日志,提示的信息是:数据库 'web' 中文件 'web_Log' 的自动增长在 17719 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。又看了下SQLSERVER的日志大小,吓了一跳,竟然有518GB!我靠,幸好最火软件站的服务器硬盘比较大。

找到了问题,就知道怎么解决了,把日志清空或压缩一下吧。下边是清除(清理)MSSQL事务日志文件的几种方法

1、删除LOG

   1):分离数据库企业管理器->服务器->数据库->右键->分离数据库

   2):删除LOG文件

   3):附加数据库企业管理器->服务器->数据库->右键->附加数据库

   此法生成新的LOG,大小只有500多K

   再将此数据库设置自动收缩

2、清空日志

   1):在查询分析器中输入:DUMP TRANSACTION 库名 WITH NO_LOG ,执行

   2):企业管理器 -- 右键你要压缩的数据库 -- 所有任务 -- 收缩数据库 -- 收缩文件 -- 选择日

志文件 -- 在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

3、如果想以后不让它增长

企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M

Sql Server 日志清理 (数据库压缩方法)

Declare @db nvarchar(20)
-- 数据库名称
SET @db = 'DBName'

-- 清空日志
DUMP TRANSACTION @db WITH NO_LOG

-- 截断事务日志
BACKUP LOG @db WITH NO_LOG

-- 收缩数据库
DBCC SHRINKDATABASE (@db)

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐