欢迎来到代码驿站!

MsSql

当前位置:首页 > 数据库 > MsSql

sql server日志处理不当造成的隐患详解

时间:2020-10-08 13:28:46|栏目:MsSql|点击:

事故背景:一大早还在路上,群里陆续有人反馈系统一直报错 “ Unknown error 258 ”,后来查询日志发现错误日志

第一反应是不是数据库连接不够用了?导致超时?但是通过sql查询当时连接也只有40个左右,于是继续排查问题,发现dbserver机器这段时间磁盘io操作特别的高,很不正常,详见下图


发现磁盘io问题,继续查看sqlserver日志,发现原因: “Autogrow of file ‘xxxx_log' in database ‘xxxx' was cancelled by user or timed out after 3398 milliseconds.  Use ALTER DATABASE to set a smaller FILEGROWTH value for this file or to explicitly set a new file size.”


发现这种问题因为log日志文件太大了一直没有压缩过,并且创建数据库的时候默认选择了10%的增量来扩大log增量文件,这样日志文件的10%会越来越大从而产生超时高io操作

解决方案:

1、定期清理log文件,防止log文件越来越大

 USE [master]
 GO
 ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT
 GO
 ALTER DATABASE 数据库名 SET RECOVERY SIMPLE
 GO
 USE 数据库名
 GO
 DBCC SHRINKFILE (N'数据库名_Log' , 11, TRUNCATEONLY) 
 GO
 USE [master]
 GO
 ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT
 GO
 ALTER DATABASE 数据库名 SET RECOVERY FULL
 GO 

2、修改默认数据库log增量10% 为 500M(看具体情况,一般够了)

总结

上一篇:win2003上安装SQL2000时CD-KEY(序列号)无法验证解决方法

栏    目:MsSql

下一篇:查询Sqlserver数据库死锁的一个存储过程分享

本文标题:sql server日志处理不当造成的隐患详解

本文地址:http://www.codeinn.net/misctech/8641.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有