Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >不能轻视的mysql重启过程 (r7笔记第55天)

不能轻视的mysql重启过程 (r7笔记第55天)

作者头像
jeanron100
发布于 2018-03-16 09:48:03
发布于 2018-03-16 09:48:03
1.2K0
举报

数据库的重启看似是一件非常简单,没有技术含量的活,这是我以前说的话。而这句话简直是戳中了我的痛点。这种活真是太有技术含量了,高深到让人需要注意太多的东西,需要做非常多的前期功课。

前段时间,发生了一起硬件问题,发现某一台mysql备库服务器出现了硬件错误,因为是从库服务器的故障,所以就没有很着急得去处理,简单排查发现从库硬件问题无法修复,就申请新机器去尝试重搭从库了。初步分析问题情况如下:

但是让人意外的是准备在线搭建从库的时候,发现主库中没有开启binlog,所以我们看到的从库其实是一个独立的主库,而个真正的主库服务器也已经裸奔了很长时间,其实没有从库,想想这种情况,就让人后背发凉,需要赶紧修复这个问题。这个时候发现问题情况如下:

所以就简单进行了评估,发现还有一台mysql服务器也没有开启binlog,而且也没有从库服务器,于是这个问题的修复就是需要重新搭建两个从库。而 binlog的开启需要重启mysql数据库,所以任务就很自然变成了在特定的维护窗口去重启这两台mysql主库服务器,然后在这个基础上搭建从库。

所以这个时候问题情况如下:

对于开启mysql的binlog就跟oracle开启归档模式差不多,你说这个过程有多复杂,其实就是在重启的过程中重新初始化一番。

我们确定了详细的时间范围,操作步骤,和其他team互相协调配合等等,看起来工作已经做的很充分了。

dba这边也没有掉以轻心,除了开启binlog,也向mysql的同事咨询看还有什么参数可以考虑优化的,所以这个工作看起来重启也着实不算吃亏,还顺便能够调优一下。

计划是下面的情况:

一切都安排就绪,在等待重启的几天时间里,也做了异地的备份,以备不时之需。

对于这次重启,感觉也没有什么需要特别注意的了,也甚至考虑了要不要设置crontab来重启,要不要使用自动化脚本来搭建备库等。因为自己也还算mysql新手,还是摸清了门路再放开手脚。

计划就在今天早晨,和系统那边的约定是在早晨5点左右。大晚上也没睡好,半夜醒来就怕睡过了头,然后反反复复醒来,最后感觉老是醒来看手机,电话太吵影响家人,索性抱着被子到客厅里去睡了,结果睡到了5点半,终于电话来了,开始干活。

首先是使用show processlist检查是否连接已经关闭,还得确认一番,最后准备停mysql库了,发现pid文件怎么没了。

# /etc/init.d/mysql stop

MySQL (Percona Server) PID file could not be found![FAILED]

# ll /home/mysql/mysql.pid

ls: /home/mysql/mysql.pid: No such file or directory

然后还得伪造一个pid文件,在里面手工填入mysqld的进程号。

然后再次尝试就没有问题了,也算小小虚惊一场。

然后停完服务,开始替换参数配置,重启服务,一切都进行的很自然。还准备回头先睡一会,再搭从库。

同事突然反应说error.log里面有很多的警告。

一部分是连接的问题,内容如下:

2015-12-22 07:57:41 26782 [Warning] Aborted connection 1417 to db: 'unconnected' user: 'unauthenticated' host: 'test_app_128.100' (Got an error reading communication pa

ckets)

2015-12-22 07:57:47 26782 [Warning] Aborted connection 1418 to db: 'unconnected' user: 'unauthenticated' host: 'test_app_4.176' (Got an error reading communication pack

ets)

这个部分初步怀疑是不是mysql的参数设置导致的,但是变更的只有log_bin,log_bin_index,cache_size其它的参数都没有 动。两台mysql主库的参数修改都是一样的,值得一提的是两台mysql库,一台是5.6,一台是5.5,如果说是版本中的问题导致,那也有些牵强。而 且另外一台mysql主库中也有警告,但是警告非常少。

对于这个问题也排查了很多因素,从应用端没有反馈得到错误信息,我们这边也在测试,排除了用户名密码的错误,慢查询的原因,初步怀疑是应用端没有完全关闭连接导致。

另外一部分是mysql数据字典的问题。

2015-12-22 18:19:51 25011 [Warning] InnoDB: Cannot open table mysql/innodb_table_stats from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.

最开始看到这个错误还是让人感觉很奇怪,但是让人无奈的这类错误在1年前就已经存在了,我只是重启了mysql库,其实应该顺带修复这个问题,但是没有引起重视。这类修复还是需要重建这几个数据字典表了,可能需要动ibdata,重启又是需要配合应用来寻找合适的窗口了。

所以通过这个案例,可以看到重启是多么的有技术含量,重启的过程中起到了承上启下的作用,需要充分调研问题,查看是否有遗留问题,一并加以解决,对于其它 不明确的问题也需要不断确认,最终逐步深入,应该会把重启中的坑都填平,自己走平坦了,以后大家都方便,这也是规范的起始,让它能够落地。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于几个MySQL环境问题的对比 (r7笔记第66天)
有时候出现了环境问题,对比是一种很好的方式,如果对比得当,可以避免反复的出现问题,可以根据对比的情况推理出一些可能出现的情况或者问题。 如果对比不当,很可能得出错误的结论。今天就简单举几个例子来说明一下。 MySQL重启的对比 之前出现过一次备机的硬件故障,但是庆幸的是幸亏是备机,备机上意味值有备库,但是实际发现备机上的备库和主库没什么关联,也是让人直冒冷汗,那就搭建备 库吧,结果发现主库没有开启binlog,这种情况下是没有任何办法的,所以在评估之后,发现还有一套环境也是同样的问题,所以就申请了窗口时间来
jeanron100
2018/03/16
8730
MySQL迁移文件的小问题(r8笔记第18天)
线上有一台服务器上,里面有一个mysql数据库服务,其实库也很小,就几个G,一直以来是保留了多天的备份集,但是因为业务的关系,这个库其实只有一些 基本的数据查询,但奇怪的是没有从库,一直以来是每天都会备份,保留了近一周的备份集,这种情况也倒相安无事。不过不巧的是这台服务器上还部署有 Oracle数据库,空间要大很多,随着业务的增长,这个数据量就上去了,结果空间的使用是越来越紧俏。保留一周的备份集,空间是越来越紧张。所以在一台 Oracle的备库机器上使用gtid创建了一个mysql从库。这种情况基本可以满足
jeanron100
2018/03/19
7900
多级复制的数据不同步问题(r7笔记第11天)
昨天刚到公司,开发的同事就找到我,让我帮他看看某一台mysql的库,似乎数据是不同步了。大体的意思是,A地库中的数据会同步到B地,B地的数据会同 步到C地,C地就是开发最终需要访问的数据,这些业务都是独立的,但是一部分数据是需要同步的。听起来比较拗口,实现方式也比较有意思。 采用了下面的方式来实现。列出一部分的架构图。 图中的数据分布在三个区域,可以理解跨越了三个大洲,各个洲有自己的业务,也就是Area1,2,3,我们用区域ABC来替代。由于需要同步一部分数据到 北京来。就是区域C通过区域B是作为中转
jeanron100
2018/03/16
7690
多级复制的数据不同步问题(r7笔记第11天)
你的备库做好准备了吗(r7笔记第78天)
这篇文章计划了一段时间,本来想写篇心情文字,还是留到周末再放飞心情吧。 今天的内容是关于数据库的备库的思考,当然我们可以自己问自己,我们的备库准备工作做好了吗?扪心自问,其实有些工作我也没有准备好,这是我的建议,其实一个备库的思考点还是有很多值得考量和斟酌的地方。自己也需要后续完善 备库总是在容灾中有着举足轻重的作用,但是故障难免,我们的备机备库是否能够在危机降临的时候顶住压力,这个需要打上一个问号,我会从硬件配置,系统层面,数据库层面,架构层面和网络层面进行一些分析。 硬件配置 备库硬件配置更差
jeanron100
2018/03/16
6500
dataguard归档路径的问题(r7笔记第99天)
最近处理了一起看似比较奇怪的dataguard归档路径问题。 问题的背景是这样的。 有一套一主两备的环境,备库1和主库在同一个机房,可以尝试在failover的时候切换备库IP为主库IP。另外还有一台
jeanron100
2018/03/19
6990
dataguard归档路径的问题(r7笔记第99天)
配置MySQL主从/双主引发的反思 原
使用innobackupex工具进行备份(因本次涉及到的数据库实例较多,所以编写shell脚本,减少出错,单实例同样适用):
阿dai学长
2019/04/03
9880
配置MySQL主从/双主引发的反思
                                                                            原
最近让我焦灼的四个问题(有解) (r7笔记第76天)
之前写了一篇 《最近让我焦灼的四个问题》,既是感慨,也是无奈,既是记录问题,也是鞭策自己,当然只是吐槽,抱怨是没有任何意义的,所以我更新第二篇,这些问题在近些天都得到了基本解决。当然一波问题解决了,另外一波又来了,继续努力。 首先来说说第一个问题,是关于dataguard,最近碰到一个有些奇怪的问题,主库使用了ASM,备库使用了普通文件系统,从理论和实践来看,这都是可 行的,但可能不是最佳实践。但是我碰到了一个奇怪的问题,就是备库搭建完成之后,也能正常接收归档,dg broker的配置和以往的配置并没有什
jeanron100
2018/03/16
8960
最近让我焦灼的四个问题(有解) (r7笔记第76天)
今天琢磨的几件事情(r7笔记第74天)
今天在琢磨几件事情,也是和工作相关。 数据灾难切换的几点认识: 在unix中可能会碰到在处理网络问题时,超时时间会远远高于linux的情况,这个时候如果尝试做failover是非常消耗时间的,而且日志没有任何输出,看不到进展,相比于linux的处理,我感觉要更简洁一些。 鉴于unix中的处理方式,我还是建议直接使用命令行来做failover,使用下面两个命令即可。 alter database recover managed standby database finish force; alter data
jeanron100
2018/03/19
6320
如何基于 MySQL 主从模式搭建上万并发的系统架构?
在了解主从复制之前必须要了解的就是数据库的二进制日志(binlog),主从复制架构大多基于二进制日志进行。
架构师修炼
2021/08/13
6250
Mysql主从
数据库高可用一直是企业的重中之重,而采用主从方案,一主一从,能实现负载均衡,读写分离的作用,分担数据库的负荷,提高性能,而如果搭配keepalived还能实现高可用性,当主服务器故障以后,自动切换到从服务器上。
kevinfaith
2020/01/21
3.1K0
一个简单的MySQL参数导致的连接问题解惑(r7笔记第33天)
最近在做一套MySQL环境的数据迁移,需要把一部分数据从一个站点迁移到另外一个站点,新站点是一套全新的环境,对于MySQL的安装采用了同事建议的 二进制方式。当然安装的过程比起Oracle的安装看起来要简单很多了。基本做到了一键安装的程度。因为对于MySQL还是有很多的盲点,所以感觉还是有 些心虚,当然态度是虚心的了。可能很多问题处理起来就不会像Oracle那样理直气壮了。这可能也是好事。 数据库安装很快就做好了,而且里面的很多参数也采用了一定的规则去匹配一些参数值,所以自己也没做其它的改变就直接使用了。使
jeanron100
2018/03/16
9810
一个简单的MySQL参数导致的连接问题解惑(r7笔记第33天)
备库搭建中的一波三折(r7笔记第21天)
这几天一台服务器出了硬件问题之后,这台服务器上的两个备库都殉职了,我们真是如坐针毡,毕竟没有了备库感觉就是裸奔,两个库差不多有10T,搭一套备库也是颇有波折。 当服务器到了我手里之后,首先就开始准备安装数据库软件,安装前的基本检查很快做完了,需要预先安装的依赖包我看使用yum源已经识别了,我也标示了yes,然后开始克隆安装。 奇怪的是克隆安装显示成功,竟然sqlplus不可用。 $ sqlplus -v sqlplus: error while loading shared libraries: libsq
jeanron100
2018/03/16
1.2K0
备库搭建中的一波三折(r7笔记第21天)
深入排查 MySQL 高可用的事故
上次我们项目不是把 MySQL 高可用部署好了么,MySQL 双主模式 + Keepalived,来保证高可用。简单来说就是有两个 MySQL 主节点,分别有两个 Keepalived 安装在宿主机上监控 MySQL 的状态,一旦发现有问题,就重启 MySQL,而客户端也会自动连接到另外一台 MySQL。
悟空聊架构
2023/09/16
4631
深入排查 MySQL 高可用的事故
MySQL都有哪些文件 你都了解这些文件吗?
该篇文章对MySQL中的日志进行总结与简单介绍,不会涉及的太深。主要的目的是为了对MySQL中的日志文件有一个体系化的了解。后面会对每一种日志文件做具体的分析与总结。
兔云小新LM
2021/04/20
1.1K0
MySQL都有哪些文件 你都了解这些文件吗?
无奈的硬件故障 (r7笔记第20天)
最近真是忙的厉害,感觉时间都不是自己的了,大周末的时间都排得满满当当,先是大半夜接到报警电话,接着碰到了让人无奈的硬件问题,一台服务器挂掉,结果上面有两个备库,都是数据量庞大的统计分析库,数据量也不小
jeanron100
2018/03/16
6640
无奈的硬件故障 (r7笔记第20天)
MySQL主从复制详解
在MySQL中,主从架构应该是最基础、最常用的一种架构了。后续的读写分离、多活高可用架构等大多都依赖于主从复制。主从复制也是我们学习MySQL过程中必不可少的一部分,关于主从复制的文章有很多,笔者也来凑凑热闹,写写这方面的内容吧,同时分享下自己的经验和方法。
MySQL技术
2020/07/28
4330
MySQL主从复制详解
服务器硬件问题整理的一点总结 (r7笔记第70天)
之前写过一篇通过shell来监控磁盘坏块的文章 http://blog.itpub.net/23718752/viewspace-1872978/ 从使用情况来看,也确实发现了一些坏块很多的问题,这也给我们的工作带来一些清晰的指导。不过感觉对于硬件的监控还在隔靴搔痒,还有很多的监控不够到位。或者太细感觉有些鸡肋,或者太粗有感觉有些笼统。而且还有些问题还是说不清道不明。 比如前段时间碰到一个问题,白天刚做过磁盘巡检,没有发现任何坏块,结果到晚上服务器就崩了。也没有任何的前兆,收到一条ICMP的报警之后,服务器
jeanron100
2018/03/16
9230
服务器硬件问题整理的一点总结 (r7笔记第70天)
MySQL中server_id一致带来的问题
简 介 我们都知道在MySQL搭建复制环境的时候,需要设置每个server的server_id不一致,如果主库与从库的server_id一致,那么复制会失败。但是最近在解决一个客户的问题的时候,遇到一个有意思的现象,客户环境有三台数据库服务器,一主两从,客户的两台从库设置了相同server_id,在排查问题的过程中,查看MySQL错误日志,发现有很多奇怪的信息。 我们模拟了客户的环境,并进行测试、分析,最终在代码中找到了我们想要的答案。下面就是我们测试、分析、总结的步骤以及内容。 测试步骤 环境介绍 主
沃趣科技
2018/03/26
1.8K0
MySQL中server_id一致带来的问题
通过Oracle来辅助MySQL数据问题的恢复(r5笔记第31天)
今天琢磨一个问题,在平时的工作中如果碰到一些不规范的操作,drop,truncate,delete,恢复起来还是很困难的,drop操作在oracle中如果开启了recycle bin还是基本安全的,delete操作可以借助flashback delete操作,可能有些更细微的操作update,insert等等操作导致了问题,需要做数据修复的时候,这个时候可以使用flashback query来辅助,如果来一个truncate,那就没辙了,其实在truncate操作完成后,一般来说数据还都是在数据文件里的,这
jeanron100
2018/03/15
7570
通过Oracle来辅助MySQL数据问题的恢复(r5笔记第31天)
MySQL自增列主从不一致的测试(r12笔记第37天)
MySQL里面有一个问题尤其值得注意,那就是自增列的重复值问题,之前也简单分析过一篇MySQL自增列的重复值问题(r12笔记第25天),但是在后续我想了下,还有很多地方需要解释,一个就是从库的自增列是如何维护的,是否重启从库,自增列会受到影响。 我们继续来测试一下。首先复现这个问题。 创建表t1,插入3行数据。 use test; [test]> drop table if exists t1; Query OK, 0 rows affected, 1 warning (0.01 sec
jeanron100
2018/03/21
1.1K0
相关推荐
关于几个MySQL环境问题的对比 (r7笔记第66天)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档