【故障公告】再次出现数据库 CPU 居高不下的问题以及找到问题的线索
非常非常抱歉,今天上午的故障又一次给大家带来麻烦了,再次恳请大家的谅解。
在昨天升级阿里云 RDS SQL Server 实例的配置后(详见昨天的博文),万万没有想到,今天上午更高配置的阿里云 RDS 实例依然出现了 CPU 居高不下的问题。

在数据库 CPU 高的情况下,有时对访问速度影响不大,有时巨慢无边,在今天上午的故障期间,我们通过2次主备切换才恢复了正常。
下午,我们我们调整了服务器的部署,用了更多服务器进行混合部署(docker-compose与docker swarm),情况有了明显改善。

但是,15:15 开始数据库 CPU 又飚了上去,但访问速度没有受到明显影响,一致坚持到 16:50 左右,在扛不住的时候,我们再次通过主备切换恢复了正常。
这次恢复正常后,我们才突然想到,数据库每天一大早会跑一个整理索引碎片的任务,是不是升级后这个任务不能正常执行了?打开 SSMS 一看,果然是。
昨天因为升级 SQL Server 后重建备库,整理索引碎片任务失败了。
Date 9/5/2019 06:30:00
Log Job History (Reorganize Index) Step ID 1
Server SD39184A
Job Name Reorganize Index
Step Name Reorganize Index
Duration 00:00:00
Sql Severity 14
Sql Message ID 927 Message
Executed as user: xxx. Database 'xxx' cannot be opened. It is in the middle of a restore. [SQLSTATE 42000] (Error 927). The step failed.
今天不知什么原因整理索引碎片的任务也失败了。
Date 9/6/2019 06:30:00
Log Job History (Reorganize Index) Step ID 1
Server SD39184A
Job Name Reorganize Index
Step Name Reorganize Index
Duration 00:00:00
Sql Severity 14
Sql Message ID 954 Message
Executed as user: xxx. The database "xxx" cannot be opened. It is acting as a mirror database. [SQLSTATE 42000] (Error 954). The step failed.
CPU 高的问题很可能就是索引碎片没有被及时整理引起的,是否真的是这个原因,要等下周的访问高峰才能得到验证。
对于升级后整理索引碎片任务失败的问题,我们向阿里云提交工单后,阿里云建议我们先关闭 mirror database 。
alter database 库名 set partner off
目前我们没有采用这个建议,还在考虑更好的解决方法。
【更新】
7:40 非常奇怪,今天凌晨负载极低的时候,阿里云 RDS 实例竟然也出现了 CPU 居高不下的问题,而且 CPU 近 100% 。

主备切换后才恢复正常。
8:30 手动完成了索引碎片的整理。
9月10日更新:经后来的验证,CPU 高的确是索引碎片引起的。
【故障公告】再次出现数据库 CPU 居高不下的问题以及找到问题的线索的更多相关文章
- 【故障公告】阿里云 RDS 数据库突发 CPU 近 100% 引发全站故障
		
今天晚上9点我们收到阿里云的告警通知: [阿里云监控]华东1(杭州)-云数据库RDS版<cnblogsdb> [instanceId=xxx] 于21:00 发生告警, 前往诊断 CPU使 ...
 - 【故障公告】数据库服务器 CPU 100% 引发网站故障
		
悄悄地它又突然来了 -- 数据库服务器 CPU 100% 问题,上次光临时间是 3-30 8:48,这次是 4-28 9:41. 这次我们做出了快速反应,发现后立即进行主备切换,这次一次切换成功,CP ...
 - 【故障公告】数据库服务器 CPU 100% 引发全站故障
		
今天 11:12-12:03 期间,园子使用的阿里云 RDS 实例(SQL Server2016 标准版,16核CPU)出现 CPU 100% 问题,引发全站故障,由此给您带来麻烦,请您谅解. 发现故 ...
 - 【故障公告】数据库服务器 CPU 近 100% 引发的故障(源于 .NET Core 3.0 的一个 bug)
		
非常抱歉,这次故障给您带来麻烦了,请您谅解. 今天早上 10:54 左右,我们所使用的数据库服务(阿里云 RDS 实例 SQL Server 2016 标准版)CPU 突然飙升至 90% 以上,应用日 ...
 - 【故障公告】数据库服务器 CPU 近 100% 引发的故障
		
抱歉,今天上午 10:48 ~ 10:33 期间,我们所使用的数据库服务(阿里云 RDS 实例 SQL Server 2016 标准版)又出现了 CPU 近 100% 问题,由此给您带来麻烦,请您谅解 ...
 - 【故障公告】访问高峰数据库服务器 CPU 100% 引发全站故障
		
今天上午11:10,我们又中"奖"了,我们使用的阿里云 RDS 实例(SQL Server 2016 标准版,16核32G)突发出现 CPU 100%,引发全站故障,直到 12:1 ...
 - 【故障公告】阿里云 RDS SQL Server 数据库实例 CPU 100% 引发全站故障
		
非常抱歉,今天 8:48 开始,我们使用的阿里云 RDS SQL Server 数据库实例突然出现 CPU 100% 问题,引发全站故障,由此给您带来麻烦,请您谅解. 发现故障后立即进行主备切换,和 ...
 - 【故障公告】再次遭遇SQL语句执行超时引发网站首页访问故障
		
非常抱歉,昨天 18:40~19:10 再次遭遇上次遇到的 SQL 语句执行超时引发的网站首页访问故障,由此您带来麻烦,请您谅解. 上次故障详见故障公告,上次排查下来以为是 SQL Server 参数 ...
 - 【故障公告】升级阿里云 RDS SQL Server 实例故障经过
		
昨天晚上,我们使用的阿里云 RDS SQL Server 2008 R2 实例突然出现持续 CPU 100% 问题,后来我们通过重启实例恢复了正常(详见故障公告).但是在恢复正常后发现了新问题,这台 ...
 
随机推荐
- Codeforces Round #219(Div. 2)373  B. Making Sequences is Fun(二分+找规律)
			
题目意思大概是给你w,m,k三个数,让你从m开始找 m m+1 m+2 m+3...........m+m', 使得他们的权值之和不超过w,计算权值的方法如下S(n)·k . S(n)表示n有多少位数 ...
 - codeforces 576 div2 A-D题解
			
A题 Description 题目链接: https://codeforces.com/contest/1199/problem/A 题意: 给定长度为n(1≤n≤100000)的一个序列a,以及两个 ...
 - 在.NET CORE中使用配置文件:对 ConfigurationBuilder 的使用说明
			
示例:ASP.NET MVC 使用示例: 如何覆写默认行为?如取消热更新支持,方法如下: 示例:控制台 使用应用程序参数 使用键值对枚举(这里以字典来说明) 使用JSON文件 注册配置文件中的某一个段 ...
 - Linux基础用户管理
			
一.用户管理 (一).用户和组的基本概念 Users and groups:. Every process (running program) on the system runs as a part ...
 - GridView 使用详解
			
极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以 ...
 - java并发编程(六)----(JUC)Semaphore
			
Semaphore,从字面意义上我们知道他是信号量的意思.在java中,一个计数信号量维护了一个许可集.Semaphore 只对可用许可的号码进行计数,并采取相应的行动.拿到信号量的线程可以进入代码, ...
 - 使用top查看进程和系统负载信息
			
引言 使用top命令,可以查看正在运行的进程和系统负载信息,包括cpu负载.内存使用.各个进程所占系统资源等,top可以以一定频率更新这些统计信息.下面我们来学习top命令的具体使用方法. ...
 - todaytt
			
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.Drawe ...
 - mysql的引擎问题,主键和外键的创建问题,以及创建外键不成功,却创建了一个索引
			
mysql的引擎问题: 需要知道的三个引擎:InnoDB--是一个事务处理引擎,不支持全文检索,支持事务操作,即DML操作: Memory--是一个数据存储在内存,速度很快,功能上等同于MyIsam, ...
 - 服务注册组件——Eureka高可用集群搭建
			
服务注册组件--Eureka高可用集群搭建 什么是Eureka? 服务注册组件:将微服务注册到Eureka中. 为什么需要服务注册? 微服务开发重点在一个"微"字,大型应用拆分成微 ...