![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DB故障处理案例
文章平均质量分 57
胡儿胡儿
好记性不如烂博客
展开
-
Server has authorization schema version 3,but found a schema version 1 user
原创 2018-05-17 17:41:39 · 468 阅读 · 0 评论 -
故障案例--mongo 3.0鉴权导致cpu居高不下
故障现象CPU奇高,达到接近物理机核数上限;错误日志中的业务SQL执行较快,SQL不存在问题;错误日志大量的刷屏以下信息原因分析从错误日志看,绝大部分情况都处于saslStart,查看资料发现这是mongo 3.0的鉴权机制正是SCRAM-SHA-1,于是怀疑是这个鉴权机制导致了CPU飙升;通过了解,业务采用的是短连接,进一步确定原因应该是短时间大量的连接过来触发的原创 2017-05-25 21:37:43 · 1163 阅读 · 0 评论 -
故障案例--mongodb writeconcern为majority时的又一个bug
前言之前的文章有提到过majority的一个坑,还谈不上bug,链接如下点击打开链接故障现象majority下应用层一直报错,但实际数据写入成功,包括主从节点都成功;w设置为1以后没有报错,写入成功 044dd16e-7706-4a49-b4ff-73d86a99d6fd:PRIMARY> db.setWriteConcern({w:"majority",wtimeout:30原创 2017-04-14 14:40:21 · 2361 阅读 · 0 评论 -
故障案例--寻找瓶颈SQL的一种方法
故障现象DB响应非常慢,连接数暴涨直到打满;任何SQL看起来都是慢查询,都要几十秒以上;show processlist时SQL种类非常多,短时间无法分辨哪个是引起故障的SQL,挑了几个看SQL问题不大;CPU,IO都非常低,看样子无系统瓶颈,也无任何硬件层面的报错;故障原因和定位方法猜测是高并发引起的性能瓶颈,通过show engine innodb status\G结原创 2017-04-11 15:11:27 · 916 阅读 · 0 评论 -
故障案例--通过create server创建federate引擎导致主从失败
故障现象主从同步失败,报错如下Error 'Unknown storage engine 'FEDERATED'' on query. Default database: 'test'. Query: 'create table test_federated(`id` int(20) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NUL原创 2017-04-11 14:19:39 · 1062 阅读 · 0 评论 -
主从同步失败---Illegal mix of collations
故障现象:主从同步报错,Error 'Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE), (latin1_swedish_ci,IMPLICIT), (utf8mb4_unicode_ci,COERCIBLE) for operation 'concat'' on query. Default database: 'hhrchin原创 2017-03-31 15:18:57 · 844 阅读 · 0 评论 -
config server高可用的怀疑(非副本集模式)
SCCC和CRCS的区别在mongo3.4版本之前,configsvr的高可用有两种方式,一种是SCCC,即非副本集模式,一种是CSRS(副本集模式)。在mongo3.4以后已经不支持SCCC了,就我使用SCCC模式的经验看,SCCC确实太坑。个人认为,CSRS相对SCCC大概有以下优点1 节点宕机后SCCC模式只读不可写,这时mongos无法负载均衡。而CSRS存在副本集的高可用,宕机一原创 2017-03-21 15:44:16 · 1623 阅读 · 0 评论 -
mongos删除库表的一个bug
ISSUE SUMMARYWhen dropping a database / collection in a sharded cluster, even if the drop is reported as successful it is possible the database / collection may still be present in some nodes in the转载 2017-03-06 15:50:08 · 538 阅读 · 0 评论 -
故障案例--在线ddl的一个bug
现象:mysql> ALTER TABLE mabang_order.`Db_Order4` ADD `trackNumber1` VARCHAR(45) DEFAULT NULL COMMENT '内部单号' AFTER `trackNumber`;ERROR 1062 (23000): Duplicate entry '8026379' for key 'PRIMARY'处理方法:原创 2016-04-28 23:53:09 · 650 阅读 · 0 评论 -
mongodb启动很慢
故障现象mongodb重启后,等了几十分钟还一直没启动完成,单节点副本集,状态一直处于startup原因分析查看mongod的错误日志,发现一直处于building index,但根据之前的经验,只有在重做secondary节点的时候才会经常处于building index状态,而这个db是primary节点,于是详细查看了关于这个building index的全部信息 201原创 2017-01-05 20:09:37 · 4469 阅读 · 0 评论 -
5.6mysqldump gtid的一个小坑
故障现象Master-slave+GTID架构下,从master导入5.6的备份,发现数据没有同步到从库,通过查看备份文件内容,发现sql_log_bin被设置为0从而在导入时禁用了binlog引起。/*!40101 SET@OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;/*!40111 SET@OLD_SQL原创 2017-01-05 17:04:13 · 5869 阅读 · 1 评论 -
故障案例:高可用切换后数据不一致,旧主库数据丢失
故障现象:有台物理机宕机,复制架构是master-master+半同步,期间触发了高可用容灾切换,后台显示成功切换到了备库。但是等旧主库起来后,主从状态正常,但是旧主库上却丢失了一部分数据,通过对比发现这些数据都是在宕机瞬间的写操作原因分析:1 假设旧主库A丢失的数据记录为X,我们去A上解析发现宕机那段时间并无X记录的binlog信息,可确定在宕机瞬间该记录X没有binlog落盘;原创 2016-12-27 14:16:53 · 1077 阅读 · 0 评论 -
故障案例--mysql5.5分区表的一个坑
故障现象db每隔一段时间就异常重启,查看DB错误日志的错误日志Database was not shut down normally相关的信息,而查看/var/log/message并没有发现什么异常,没有发生OOM。由于每次异常重启的间隔都比较相近,所以怀疑是业务的某个sql引起的,后来经过业务层排查,发现每隔一段时间都会执行一条如下SQL语句select sid as sid,sour...原创 2016-07-21 17:19:21 · 8261 阅读 · 5 评论 -
故障案例---innodb表出现大量的Waiting for table level lock
故障现象show full processlist发现大量的innodb表出现Waiting for table level lock,业务将近不可用原因分析1 一开始当然是认为这是myisam引擎导致的,扫了一圈发现该db下确实有一个myisam表;2 不过故障时无论是show processlist还是innodb_trx等结果看,都没有发现这个myisam表的记录;3原创 2017-06-21 16:23:20 · 21573 阅读 · 2 评论 -
warning: ClientCursor::staticYield can't unlock b/c of recursive lock ns:
故障现象大量的日志刷屏warning: ClientCursor::staticYield can't unlock b/c of recursive lock ns: 日志级别已经是quiet大概每小时就写十几G,分分钟磁盘要被刷爆mongo版本:2.6故障原因没去深究处理方法对应的查询没有索引,加上索引以后就没有类似的warning信息了原创 2017-06-12 19:55:26 · 657 阅读 · 0 评论 -
sql_log_bin在GTID复制下的一个现象
背景现网环境是M-M GTID+haproxy+组成的高可用需要做一个基于时间点的回档之前的方法:1 新建出另外一组M-M GTID高可用集群。我们将新的集群成为B,旧的集群称为A2 分别导入A的历史备份到B集群的两个实例上,分开导入,导入期间双主同步不关,但会关闭sql_log_bin3 分别导入A的增量binlog到B集群的两个实例上,分开导入,导入期间双主同步不关,但会原创 2017-07-04 17:48:53 · 614 阅读 · 0 评论 -
Gone away故障原因排查
原创 2018-05-04 11:17:20 · 514 阅读 · 0 评论 -
mongos数据分布不均匀,move chunk失败
现象2018-02-06T14:41:05.130+0800 I SHARDING [Balancer] moveChunk result: { cause: { ok: 0.0, errmsg: "can't accept new chunks because there are still 1236 deletes from previous migration" }, ok: 0.0,原创 2018-02-07 18:41:48 · 1505 阅读 · 0 评论 -
跨版本导入数据导致mysqld崩溃
现象mysqld突然崩溃,错误日志Attempting backtrace. You can use the following information to find outwhere mysqld died. If you see no messages after this, something wentterribly wrong...stack_bottom = 7f原创 2018-01-29 11:56:31 · 2015 阅读 · 0 评论 -
故障案例--mariadb 10.0向mysql5.6官方版本迁移的一个坑
故障现象:mysql.proc mysql.event表有问题,对应的information_schema库里的表无法查询,导致mysqldump失败,大概的报错如下mysql> select * from information_schema.events;ERROR 1545 (HY000): Failed to open mysql.event处理措施:第一时间想到的是运行一次mysql原创 2016-06-07 12:09:09 · 3108 阅读 · 0 评论 -
大量短连接导致haproxy服务器端口耗尽
现象现象1:在haproxy中间件层查看netstat会有大量的time_wait,大概有几万个以上现象2:查看haproxy日志会有部分显示端口耗尽Jan 9 14:59:04 127.0.0.1 haproxy[37]: Connect() failed for backend ha-proxy: no free ports.Jan 9 14:59:04 127.0原创 2018-01-09 15:38:18 · 6552 阅读 · 0 评论 -
mongo3.0.9库命名的一个S级bug
现象db每隔一段时间崩溃一次,完全停服的情况下不会崩溃,mongod日志如下2018-01-16T20:21:43.573+0800 E STORAGE [conn18] no cursor for uri: table:asd()/collection-15-28950403216381666652018-01-16T20:21:43.573+0800 I - [co原创 2018-01-16 20:55:37 · 732 阅读 · 0 评论 -
故障处理--mongos count不准
故障现象业务上并无对这个表的delete操作,通过mongostat可以查看。但是mongos对一个表进行count操作时,发现它的计数结果会慢慢变少,然后突然有一个大幅增长,随后又逐渐减少,现象如下mongos> db.ebay_us_detail.count()154462481mongos> db.ebay_us_detail.count()154462463mong原创 2017-12-26 15:19:01 · 843 阅读 · 0 评论 -
mongodb存储的集合和database太多容易引起的问题
在数据库表和对象设计过程中,碰到有些客户的db表数量非常多,达到几w以上的级别,这时往往容易引起一些运维难度和复杂度,以mongodb举例,分享下遇到的一些问题1 mongod启动非常慢,db大概有2w多个,后台mongod显示先等了很长一段时间后,一直显示opening db...所以如果没有副本集,哪次db挂了或者变更需要重启db,漫长的等待往往无法接受(将近1小时)2 mongos内存消耗...原创 2016-10-08 20:02:54 · 7476 阅读 · 1 评论 -
故障案例--mysql如何定位执行完但未提交的事务内容
问题描述我们经常会碰到这样的情况,某个事务执行完了未提交,后续再来一个DDL和DML操作,导致后面的session要么处于waiting for metalock,要么是锁等待超时。这时我们往往只能找到这个未提交的事务的事务id和session id,但是一般都处于sleep状态,不好分析事务内容到底是什么,所以通常都是粗鲁地kill这个session后解决问题,但是应用层的研发人员往往找原创 2016-07-27 15:37:15 · 4998 阅读 · 0 评论 -
双主+haproxy手工切换的一个注意点
之前设计的切换逻辑1 查询slve的延迟情况,超过N秒延迟则等待或者返回失败,确保业务影响时间最短2 登陆proxy节点,disable当前hproxy,使得后续通过proxy的业务连接失败3 登陆proxy节点,shutdown当前通过proxy连接的会话(如果sql能快速完成,这步其实可用不做,可以做个时间阈值检测,当N秒以后还有业务层连接则kill)4 记录当前主库的binl原创 2017-07-06 11:23:39 · 1987 阅读 · 0 评论 -
gtid主从报错When@@SESSION.GTID_NEXT is set to a GTID
故障现象gtid主从报错信息When@@SESSION.GTID_NEXT is set to a GTID, you must explicitly set it to a differentvalue after a COMMIT or ROLLBACK. Please check GTID_NEXT variable manual pagefor detailed explana原创 2017-08-18 17:18:12 · 6213 阅读 · 0 评论 -
db故障:mysql无法连接的排错指南
基本上平均几天下来都会处理一个mysql无法连接的case,现总结如下,能解决99%以上的mysql无法连接问题1 先弄清楚mysql.user表的host和user列的含义,host列表示ip地址或者hostname,它和user列组成联合主键,host列的约束关系:比如172.%即代表只能172开头的网段才能登 陆该db;%表示任何网段都能登陆;同一user下如果既有172.%和...原创 2015-11-13 16:11:36 · 1681 阅读 · 0 评论 -
innodb_index_stats导入备份数据时报错表主键冲突
故障描述percona5.6,mysqldump全备份,导入备份数据时报错Duplicate entry 'hoc_log99-item_log_27-PRIMARY-n_diff_pfx01' for key 'PRIMARY'故障原因查看了下这个主键应该是mysql系统库下的系统表innodb_index_statsmysql> show create table innodb原创 2016-10-08 18:43:30 · 2118 阅读 · 0 评论 -
5.5.24,一个怪异的死锁问题导致DB无法连接
故障现象:mysql 5.5.24,突然所有新连接卡住,db无法连接,无任何报错故障原因分析:找到对应的mysqld进程号,pstack $pid > /tmp/jj.sqlThread 28 (Thread 0x7fc08bb32700 (LWP 3402)):#0 0x000000364f800614 in ?? () from /lib64/libaio.so.原创 2016-11-10 12:26:05 · 1111 阅读 · 0 评论 -
故障案例--DDL中断后,再次执行失败
现象第一次执行ddl操作时由于oom导致中断,再次执行这个ddl报错ALTER TABLE `Db_Order4` ADD `trackNumber1` VARCHAR(45) DEFAULT NULL COMMENT '内部单号' AFTER `trackNumber`;ERROR 1050 (42S01): Table 'mabang_order/#sql-ib9302' al原创 2016-04-28 23:58:37 · 1306 阅读 · 0 评论 -
故障案例--mongodb添加副本集成员报错
现象: 之前有一对2.6的副本集为A,一对3.0的副本集为B,2.6上有业务数据,想将其升级为3.0,于是做的跨版本副本集,到时候再做业务切换。在执行rs.add命令后报错"name" : "10.10.69.181:28081","health" : 0,"state" : 8,"stateStr" : "(not reachable/healthy)","up原创 2016-04-14 23:48:09 · 4641 阅读 · 1 评论 -
故障案例,db启动失败,报错mysqld: File binlog not found (Errcode: 2)
现象采用停掉主库,copy物理文件的方式创建slave,copy过去后启动报错原因分析:因为我将binlog文件目录也一并copy过来了,主库会去检测这个目录是否存在,是否有效解决方法:只copy数据目录,删除binlog原创 2016-04-13 20:35:06 · 6461 阅读 · 0 评论 -
故障案例 mongodb configserver启动失败
现象:修改了mongodb的shardserver的oplogsize大小,虽然启动后无效,但不至于启动失败;oplogsize的正确修改方法参见我的另外一篇blog http://blog.csdn.net/cug_jiang126com/article/details/41943237但是如果是mongos的config server,修改oplog参数大小后启动就会报错,报错截图如原创 2016-04-07 17:08:12 · 1837 阅读 · 0 评论 -
故障案例,mongo副本集主节频繁切换
接到个case,mongod版本为2.4,三个节点组成高可用,发现经常频繁地切换,错误信息如下Mon Mar 7 14:29:15.379 [initandlisten] pthread_create failed: errno:11 Resource temporarily unavailableMon Mar 7 14:29:15.379 [initandlisten] can't原创 2016-03-07 16:35:31 · 2130 阅读 · 0 评论 -
mysql创建表过程中OOM
条件:mysql 5.5,内存8G,innodb,发现导入表结构过程中内存蹭蹭蹭往上涨一直打到上限后OOM,查看SQL文件发现创建语句都是分区表,大概是500张,每张表36个分区现象:sql文件有多个,当开始执行第一个时,内存就一直往上涨,执行完以后也不会释放,当执行到后面的sql文件就oom了原因猜测:原因1:打开的文件句柄数量太多,一个36分区的innodb表需要38个句柄(一个f原创 2016-03-30 12:04:45 · 800 阅读 · 0 评论 -
故障案例:级联主从change master to Could not initialize master info structure
现象和处理措施:mysql> changemaster tomaster_user='ucloudbackup',master_password='LFbM9UXl1D',master_log_pos=45522795,master_log_file='mysql-bin.000077',master_host='10.10.80.212';ERROR 1201(HY000): Could原创 2015-12-03 10:51:48 · 1289 阅读 · 0 评论 -
故障案例:slave延迟很大
案例1:lvm机型,从库创建完成后,主库qps 2w,从库6k多。从某个时间点开始延迟在缓慢增加,一直涨到7w多秒才发现去处理;从库io的util很高故障原因:查看配置发现这个从库开启了log_slave_updates,一直在产生binlog,当把这个参数禁用或者设置sync_binlog=0以后,util立马就降下来了,同步延迟也就慢慢变小了直到为0,此前已经发现多次使用lvm逻辑卷管理或原创 2015-07-29 23:31:56 · 2684 阅读 · 0 评论 -
故障案例:phpadmin点击打开一个数据库卡死
有用户反馈show processlist列表出现一堆查询,导致CPU直接跑满24核.....后来查看ip来源于网页端的phpadmin,但是开发人员均反馈没有执行该操作,只是有同事点击打开了这个库,仔细看了下这个出问题的sql的表机构,发现原来它是一个写得超级烂的VIEW mysql> show create table t_yqrx_contact_user_redit\G原创 2015-11-20 13:27:11 · 1231 阅读 · 1 评论 -
故障案例:mysql5.6下,mysqlbinlog版本不对可能导致的问题
查看当前mysqlbinlog版本的方法:mysqlbinlog --version mysqlbinlog Ver 3.3 for Linux at x86_64场景1:mysql服务器为mysql 5.6,要求mysqlbinlog版本为3.4及以上,否则m原创 2015-07-20 00:43:53 · 2005 阅读 · 0 评论