sqlserver日志处理不当而造成的隐患「建议收藏」

sqlserver日志处理不当而造成的隐患「建议收藏」sqlserver日志处理不当而造成的隐患 事故背景:一大早还在路上,群里陆续有人反馈系统一直报错 “Unknown error 258”,后来查询日志发现错误日志 第一反应是不是数据库连接不够用了?

sqlserver日志处理不当而造成的隐患

 

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

       sqlserver日志处理不当而造成的隐患「建议收藏」

 

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

 

    sqlserver日志处理不当而造成的隐患「建议收藏」

 

 

发现磁盘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.”

 

 sqlserver日志处理不当而造成的隐患「建议收藏」

 

 

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

解决方案:

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

 

 1 USE [master]
 2 GO
 3 ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT
 4 GO
 5 ALTER DATABASE 数据库名 SET RECOVERY SIMPLE
 6 GO
 7 USE 数据库名
 8 GO
 9 DBCC SHRINKFILE (N"数据库名_Log" , 11, TRUNCATEONLY) 
10 GO
11 USE [master]
12 GO
13 ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT
14 GO
15 ALTER DATABASE 数据库名 SET RECOVERY FULL
16 GO

代码100分

 

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

 

sqlserver日志处理不当而造成的隐患「建议收藏」

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10685.html

(0)
上一篇 2022-12-23
下一篇 2022-12-23

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注