时间:2019-12-02来源:电脑系统城作者:电脑系统城
事故背景:一大早还在路上,群里陆续有人反馈系统一直报错 “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文件越来越大
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
2、修改默认数据库log增量10% 为 500M(看具体情况,一般够了)
2023-03-15
SQLserver存储过程写法与设置定时执行存储过程方法详解2023-03-11
sql语句将数据库一条数据通过分隔符切割成多列方法实例2023-03-06
MySQL中的常用树形结构设计总结最详细的 SQLSERVER ALWAYSON配置教程 一、准备工作: 二、搭建故障转移群集 三、搭建数据库AlwaysOn 四、过程中可能遇到的问题...
2023-03-06
2.1破解的时候,先要断网,然后再操作,按如图打开界面,点击Manage License 2.2点击Activate 2.3打开SQL.Prompt.Keygen.exe,将生成的注册码拷贝到输入框内,然后点击Activate 2.4 继续点击Activate manually 2.5 按如下步骤操...
2023-03-06