当前位置:首页 >> 计算机硬件及网络 >>

MySQL生产环境突发故障处理手册


MySQL 生产环境突发故障处理手册
1. LOAD 飙高 一般导致 MySQL 服务器 LOAD 突然飙高,可能的五种情况: 1>.全表扫描的 SQL 语句; 2>.SELECT 操作语句的执行计划走错; 3>.存在 UPDATE/DELETE 语句没有索引可选择,而导致堵塞其他 SQL 语句的执行; 4>.存在修改表结构或 OPTIMIZE 语句执行; 5>.大数据量的导入 或 导出,尤其数据库的逻辑备份操作; 6>.业务量大到超过服务器处理能力(我们大家都高度关注业务发展,以及公司业务特点, 还有与开发和运营保持良好联系,很难出现未知的业务突然爆发性增长) ; 要解决 LOAD 飙高,必须先找到造成飙高的真实原因,请登陆数据库服务器后,执行命令: SHOW PROCESSLIST;(适合 MySQL 各种版本) 或 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND <> ‘sleep’ AND TIME>100;(5.1.x 系列及以上版本) 若一直处在执行状态,且执行时间比较久,可以分析下 SQL 语句执行计划: EXPLAIN SQL-statement; 若执行计划不合理,则可以根据 SQL 类型选择是否与应用负责人联系。首先,查找造成服 务器 LOAD 飙高的 PID,特别是 DELETE 或 UPDATE 等会堵住其他 SQL 语句的 PID,然 后进入 MySQL 命令行工具中,对一些 SQL 先记录下来,再适情考虑执行:kill sql_pid; 1.1 统计信息更新 单表索引统计信息查看命令:SHOW INDEXES FROM tablename; 若发现其统计信息存在偏差,则可以执行:ANALYZE LOCAL TABLE tablename; 备注:请加上 LOCAL 参数,从而使此语句执行时不需要登记到二进制文件中。 1.2 碎片整理和统计信息更新 OPTIMIZE 操作等于 recreate + analyze 的组合操作,所以会堵塞更新类型 SQL 语句。对于 备机上跑只读类型操作的业务, 可以考虑使用此操作命令, 对于主服务器不建议使用此命令, 为此备机上执行 OPTIMIZE 语句,必须这样写: OPTIMIZE LOCAL TABLE tablename; 备注: 这样执行将不会记录到二进制日志文件中, 从而不会复制到对其有复制关系的主机上。 2. HA 切换 2.1 启动备机 Heartbeat 若要启动备机上的 Heartbeat 进程,则必须先保证备机上的 mysqld 服务已经停止掉,然后再 启动备机上的 Heartbeat 服务,最后再启动 mysqld 服务。 2.2 VIP 服务快速漂移 直接关闭掉 VIP 所挂载的主服务器上的 Heartbeat 服务:service heartbeat stop,待切换之前 的备机 VIP 服务挂载成功,再启动被关掉机器的 Heartbeat 服务, 且确保 mysqld 服务已经处 于停止状态,最后再启动 mysqld 服务。 另外一种强制 VIP 飘移办法: crm_resource -M -r resource_name -H nodename

其中: resource_name 可以通过命令 crm_resource –L 进行强制 VIP 漂移后,还需要检查 failcount 值,命令与设置值,如下: crm_failcount –U nodename -r resource_name –G 如果 failcount 大于 0, 则进行下面的操作: crm_resource -r resource_name -p is_managed -v false (设置资源为非受控)crm_failcount -U nodename -r resource_name -G –D (重新设置 failcount 值) crm_resource -H nodename -r resource_name –C crm_resource -r resource_name -d is_managed (设置为受控) 3.复制中断 复制突然中断的可能原因: 1>. 备机无法连接到主服务器,可能是网络问题,也可能是主服务器的 mysqld 已停止; 2>. 主键冲突; 3>. 主从服务器数据不一致; 4>. 其他原因; 为使复制继续,我们可以进行如下处理: 1>. Stop slave ; 2> start slave; 3> 检查服务是否正常:show slave status\G 若是主健冲突或数据不一致的情况,则需要额外处理: 1>.stop slave; 2> start slave; 3> show slave status\G 记录错误的信息,一般会有详细的 SQL 保存起来 4> stop slave; 5> SET GLOBAL sql_slave_skip_counter=1; 6> start slave ; 7> show slave status\G 8> 检查复制是否恢复正常,若没有循环 1>…7>步骤(备注:有些场景,也可以考虑借助脚 本循环的方式解决) 4.MySQL 假死 4.1 假死状态判断 MySQL 假 死 状 态 一 般 只 会 响 应 对 内 存 表 、 服 务 器 状 态 和 变 量 的 操 作 , 而 且 SHOW PROCESSLIST;可以看到很多连接线程处于命令解析或处理的各种状态,且 SQL 语句执行 时间较长。此时,为校验是否真处于 MysQL 假死状态,那么可以到库 test 中任意执行创建 表或更新数据的语句, 若回车键后没有响应, 则一般可以断定 MySQL 是否已经处于假死状 态。 4.2 假死状态处理 若使用 Heartbeat + Dual Master 的数据库架构,VIP 所在的数据库服务器出现假死状态,则 应该直接关闭 service heartbeat stop,从而迫使 VIP 服务转移到另外一台数据库服务器上。 其次,根据处理 MySQL 假死状态的经验,使用 mysqladmin –uroot –p shutdown 命令关 闭 mysqld 服务也是无法处理的,最快的办法是直接 Kill 进程: ps -ef | grep mysql | grep -v grep | awk ‘{ print $2 }’| xargs kill -9 然后,把 Heartbeat 启动成功之后,再启动 mysqld 服务;对于没有 Heartbeat 服务的数据库 服务器,则直接启动 mysqld 服务即可。

5.紧急事件处理的流程 1>.突发紧急事情: 首先,要保持头脑清醒,心态要放平,建议先深呼吸; 其次, 仔细检查相关状态、 日志等信息, 并且保存现场的状态信息, 以便后续分析; 最后,确认解决此问题的可行方案,以及判断此方案是否会引入新风险,是否需要 其他同事协助; 2>.处理步骤复杂或命令语句多的情况,必须先把相关命令,分步骤在文档中写好; 3>.突发紧急事情的处理,会影响到前端应用服务的事情,应先跟团队领导沟通和确认处 理方法,以及影响范围有多大, 影响程度有多严重; 4>.确定紧急处理过程或完毕后,需要那些应用方负责人检查应用是否正常,则应该先联 系相关同事; 5>.处理完毕且业务正常之后,优先分析问题和查找是否还有隐患; 6>.发邮件描述整个故障发生、 影响范围和程度 、 处理过程, 以及补填写紧急处理的 ITIL 流程单; 7>.回复报警邮件; 备注: 突发事情的解决过程中,无关同事不得围观,需要配合的同事要迅速提供帮助和协调 起来,对突发事情解决无帮助的主管及以上级别的人员,一律不得围观,否则以罚款方式处 理。 【编注】 突然发现邮箱中竟然还有一份 2 年前写的东西,应该不是最新的版本,稍作整理分享 出来,虽然内容不太丰富,也许对一些技术朋友有借鉴意义,大家也可以互相交换下意见和 提供行业案例而逐渐把此主题相关的内容丰富起来。


相关文章:
MySQL生产环境突发故障处理手册.doc
MySQL生产环境突发故障处理手册 - MySQL 生产环境突发故障处理手册 1
环境突发事件应急预案手册.doc
环境突发事件应急预案手册 - 环境突发事件应急预案和手册 一、为了有条不紊地应对环境突发事件,明确职责分工,提高处理效率,应 成立“环境污染事故应急救援小组”,由...
突发事件应急处理实用手册_图文.doc
突发事件应急处理实用手册 1、职责 1.1 各管理处应从实际出发, 制订好突发...2、突发事件的种类和应急处理预案 2.1 电梯故障应急处理预案 详见本节附表 2....
系统维护手册.doc
软件组件 Jdk1.7.0_45 mysql-5.6 安装主机 ip ...保 证对突发事件、需求变更进行快速响应,保证规费...及时排除系统故障;每月对系统平台进行一次巡 检,及时...
MySQL常见问题集锦详解-完整版.doc
MySQL常见问题集锦详解-完整版_能源/化工_工程科技_专业资料。西门豹治邺奇计 MySQL 常见问题集锦详解-完整版.txt 爱尔兰一个不离婚的国家, 一个一百年的约定。...
mysql意外自动关闭(停止)的问题id7034.doc
济宁辉腾网站建设 www.0537web.net mysql 意外/自动关闭(停止)的问题 id:7034 最近 2 个服务器上 mysql 总是自动关闭,用事件查看器在“应用程序”项里会看到...
mysql常见问题解决方法.doc
mysql常见问题解决方法_计算机软件及应用_IT/计算机_专业资料。一、Can't ...解决: 一般不需要怎么去处理,如果频繁的出现那么考虑改善硬件环境。 十八、User ...
MySQL常见问题解决方案.doc
MySQL 问题解决之宝典 下面我针对给班级学员安装 MySQL 的过程中遇到的
mysql问题解决总结.doc
mysql问题解决总结_计算机软件及应用_IT/计算机_专业资料。MySql 问题解决总结 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:...
11突发环境事件处置方案.doc
11突发环境事件处置方案_生产/经营管理_经管营销_专业资料。突发环境事件 处置...c)当废水处理设施运行出现较大故障,难以在较短时间修复时,应将超 标废水及时...
mysql实验手册.doc
显示数据 #include <stdlib.h> #include <stdio.h> #include “mysql.h” MYSQL my_connection; MYSQL_RES *res_ptr; MYSQL_ROW sqlrow; void display_...
Mysql从5.1升级到5.6故障处理.doc
Mysql从5.1升级到5.6故障处理_计算机软件及应用_IT/计算机_专业资料。Mysql从5.1升级到5.6故障处理 MySQL Server 5.6 故障处理 2 例 2014 年 11 月 4 日,...
MySQL_6.0安装及安装故障处理.doc
MySQL_6.0安装及安装故障处理_计算机软件及应用_IT/计算机_专业资料。MySQL 6.0 安装图解由于免费,MySQL 数据库在项目中用的越来越广泛,而且它的安全性能也特别高,...
SCADA监控系统常见故障处理手册.doc
SCADA监控系统常见故障处理手册_计算机硬件及网络_IT/计算机_专业资料。目录第一...2、 MySQL 数据库表结构损坏 MySQL 数据库在 SCADA 系统中使用频率最高,且...
SCADA常见故障手册(初稿).doc
SCADA常见故障手册(初稿)_计算机硬件及网络_IT/计算机_专业资料。一、塔底屏...(增加或减少)变量地址发生了改变 但没有导入 mysql 数据库,处理方法,只需要将...
i2企业版_MySQL_高可用保护手册_图文.pdf
i2企业版_MySQL_高可用保护手册_计算机软件及应用_IT/计算机_专业资料。英方...标准保护实施流程该步骤实现数据库文件复制,若工作机发生故障,通过人工启动灾备机...
开发常见问题及解决办法.doc
开发常见问题解决办法_计算机软件及应用_IT/计算机_专业资料。Tomcat 启动时报...(高级)->环境变量 点击系统变量下的新建按钮 输入变量名:MYSQL_HOME 输入变量...
Mysql cluster问题列表及解决方法.doc
Mysql cluster问题列表及解决方法_IT/计算机_专业资料。处理mysql cluster在使用中...和网络环境有关系 解决办法:查看网络环境是否 OK ,是否出现双工模式部队,是否都...
利用MySQL工具进行故障切换第二部分:mysqlfailover_图文.doc
利用MySQL工具进行故障切换第二部分:mysqlfailover_计算机软件及应用_IT/计算机_...这对演示很好,但是在生产环境中,你 可能会喜欢它在后台运行。这可以用后台...
大厦保安部突发事件处理手册.doc
突发事件的处理方法本手册所订立的方法及程序适合在...在通讯系统正常但对发问问题没有回应 4、救护车由...4] 清除小区内家具及其他地方的渍水避免破坏环境卫生...
更多相关标签: