事故背景:一大早还在路上,群里陆续有人反馈系统一直报错 “ 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(看具体情况,一般够了)
总结
以上就是【sql server日志处理不当造成的隐患详解】的全部内容了,欢迎留言评论进行交流!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容