清除(清理)MSSQL事务日志文件的几种方法

 

在系统使用过程中数据库出再出下系统提示:

 

事件类型: 信息
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17055
日期:  2009-2-14
事件:  17:10:57
用户:  N/A
计算机: XXTSQL
描述:
5144:
数据库 'abc' 中文件 'abc_Data' 的自动增长在 29391 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大

小。


有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 18 14 00 00 0a 00 00 00   ........
0008: 07 00 00 00 58 00 58 00   ....X.X.
0010: 54 00 53 00 51 00 4c 00   T.S.Q.L.
0018: 00 00 08 00 00 00 61 00   ......a.
0020: 64 00 63 00 2d 00 78 00   d.c.-.x.
0028: 78 00 74 00 00 00         x.t... 

 

事件类型: 信息
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17055
日期:  2009-2-14
事件:  18:37:21
用户:  N/A
计算机: XXTSQL
描述:
5145:
数据库 'abc' 中文件 'abc_Data' 的自动增长花费了 92375 毫秒。请考虑使用 ALTER DATABASE 为此文件设置更小的 FILEGROWTH。


有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 19 14 00 00 0a 00 00 00   ........
0008: 07 00 00 00 58 00 58 00   ....X.X.
0010: 54 00 53 00 51 00 4c 00   T.S.Q.L.
0018: 00 00 08 00 00 00 61 00   ......a.
0020: 64 00 63 00 2d 00 78 00   d.c.-.x.
0028: 78 00 74 00 00 00         x.t... 

如果使用按照百分比增加,而此时数据库又在繁忙的使用当中。一旦你的数据库文件大了后,上述超时就可能出现。这时候不要简单地以为服务器压力太大了。也许就是你的一个设置导致了超时。是数据库文件在增加的时候超时了。而不是平常常以为的具体的SQL语句超时。把 FILEGROWTH 设置为一个更低的值,ok 一切都恢复了。

FILEGROWTH 的设置就是在数据库的 Enterprise Manager 中,对数据库的属性的如下窗口进行设置:

数据库中配置文件大小 

 

引用:(

默认SQL Server 在数据库文件满了后,是自动增加原数据库文件的10%大小,用来继续使用。
如果你的数据库文件很大了,这时候麻烦就来了,CSDN 论坛就是在增加这个数据库文件的时候超时了。

解决方法就是把上述的文件增长这里设置为一个更低的百分比或者直接指定增加多少兆字节

这是一个很土的问题,然而在企业的生产环境中经常遇到。不仅是数据文件满会导致此问题,日志文件满也一样。
某一条数据更新语句在数据库或日志文件即将满的时候执行,数据库增长的IO操作会导致延时,此延时会阻塞其他数据库操作,连锁反应,形成blocking。
其实此时找出一条正在阻塞的更新语句,在查询分析器中执行,此时是没有超市时间的。忍过几分钟,当这条语句执行完后,数据文件就会增长完成,所有的blocking也就解开了。
另外,用SQL2005就不容易遇到这个问题了哦。
数据库增加10G的大小也不过就是3秒钟。

遇到数据库中很多进程被阻塞或死锁的情况怎么解决?(就是在sql2000的企业管理器的“管理”中的“当前活动”“锁/进程ID”中发现的)

然后其它所有的新增操作都会报超时,而这时候其实CPU、内存占用率都非常非常的低。

 

清除(清理)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)
/*******************************/

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值