1.重现故障5---线上执行update报错,并处理。(表结构和UPDATE语句自己构造,请给出详细步骤)
1)update故障出现ERROR 1206 (HY000): The total number of locks exceeds the lock table size
  1. root@slave01 15:34: [test]> select count(*) from AZ2C_D01600_1;
  2. +----------+
  3. | count(*) |
  4. +----------+
  5. | 10394605 |
  6. +----------+
  7. 1 row in set (10.86 sec)
  8. root@slave01 16:03: [test]> desc AZ2C_D01600_1;
  9. +-------+--------------+------+-----+---------+-------+
  10. | Field | Type | Null | Key | Default | Extra |
  11. +-------+--------------+------+-----+---------+-------+
  12. | f1 | varchar(255) | YES | | NULL | |
  13. | f2 | varchar(255) | YES | | NULL | |
  14. | f3 | varchar(255) | YES | | NULL | |
  15. | f4 | varchar(255) | YES | | NULL | |
  16. | f5 | varchar(255) | YES | | NULL | |
  17. | f6 | varchar(255) | YES | | NULL | |
  18. | f7 | varchar(255) | YES | | NULL | |
  19. +-------+--------------+------+-----+---------+-------+
  20. 7 rows in set (0.00 sec)
  21. root@slave01 16:03: [test]> show create table AZ2C_D01600_1;
  22. +---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  23. | Table | Create Table |
  24. +---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  25. | AZ2C_D01600_1 | CREATE TABLE `AZ2C_D01600_1` (
  26. `f1` varchar(255) DEFAULT NULL,
  27. `f2` varchar(255) DEFAULT NULL,
  28. `f3` varchar(255) DEFAULT NULL,
  29. `f4` varchar(255) DEFAULT NULL,
  30. `f5` varchar(255) DEFAULT NULL,
  31. `f6` varchar(255) DEFAULT NULL,
  32. `f7` varchar(255) DEFAULT NULL
  33. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
  34. +---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. 1 row in set (0.00 sec)
  36. root@slave01 16:03: [test]> update AZ2C_D01600_1 set f3='asdfasdf ' where f1 like '%sdfsfd%';
  37. ERROR 1206 (HY000): The total number of locks exceeds the lock table size
  38. root@slave01 16:04: [test]>
2)检查参数innodb_buffer_pool_size
  1. root@slave01 16:06: [test]> show variables like 'innodb_buffer_pool_size';
  2. +-------------------------+---------+
  3. | Variable_name | Value |
  4. +-------------------------+---------+
  5. | innodb_buffer_pool_size | 5242880 |
  6. +-------------------------+---------+
  7. 1 row in set (0.00 sec)
  8. [root@slave01 ~]# cat /etc/my.cnf |grep innodb_buffer_pool_size
  9. innodb_buffer_pool_size = G
  10. [root@slave01 ~]# ssh master cat /etc/my.cnf |grep innodb_buffer_pool_size
  11. innodb_buffer_pool_size = G
  12. [root@slave01 ~]# ssh slave02 cat /etc/my.cnf |grep innodb_buffer_pool_size
  13. innodb_buffer_pool_size = G

当前主库是slave01,一主二从的innodb_buffe_pool_size均设置错误

3)首先修正从库错误参数,并重启生效
  1. root@slave02 16:11: [(none)]> select @@innodb_buffer_pool_size;
  2. +---------------------------+
  3. | @@innodb_buffer_pool_size |
  4. +---------------------------+
  5. | 2147483648 |
  6. +---------------------------+
  7. 1 row in set (0.00 sec)
  8. root@master 16:12: [(none)]> select @@innodb_buffer_pool_size;
  9. +---------------------------+
  10. | @@innodb_buffer_pool_size |
  11. +---------------------------+
  12. | 2147483648 |
  13. +---------------------------+
  14. 1 row in set (0.00 sec)
4)准备切换到从库
  • 1.停止mha服务/usr/local/bin/masterha_stop --conf=/mysqlData/mha/etc/app.cnf
  • 2.如果两次mhafaliover时间不超过8小时,需要删除文件/mysqlData/mha/etc/app/app.failover.complete
  • 3.在mha配置文件/mysqlData/mha/etc/app.conf确定新的mastercandidate_master=1
5)停止zabbix或者其他监控告警,停止mha服务,切换到从库
  • 1.关闭原主库的事件调度event_scheduler=OFF
  • 2.切换新主库/usr/local/bin/masterha_master_switch --master_state=alive --conf=/mysqlData/mha/etc/app.cnf
  1. Wed Mar 14 22:58:51 2018 - [info] * Phase 5: New master cleanup phase..
  2. Wed Mar 14 22:58:51 2018 - [info]
  3. Wed Mar 14 22:58:51 2018 - [info] slave01: Resetting slave info succeeded.
  4. Wed Mar 14 22:58:51 2018 - [info] Switching master to slave01(192.168.3.21:3306) completed successfully.
  • 3.更改原来主库的参数innodb_buffer_pool_size为正确值,并重启
  • 4.启动新slave复制
  1. CHANGE MASTER TO \
  2. MASTER_HOST='192.168.3.21', \
  3. MASTER_PORT=3306, \
  4. MASTER_AUTO_POSITION=1, \
  5. MASTER_USER='repl', \
  6. MASTER_PASSWORD='Rep12#3@';
  1. #因为手工在从库做了修改,导致主从同步失败
  2. #启用了GTID,使用mysqldump备份恢复进行重建从库
  3. SET @@GLOBAL.GTID_PURGED='73c029dc-2034-11e8-90a5-005056a365b6:1-594908,
  4. 856d79f8-2038-11e8-b511-005056a330bb:1-3,
  5. b658767f-2044-11e8-951f-005056a330bb:1-188730';
  6. --
  7. -- Position to start replication or point-in-time recovery from
  8. --
  9. -- CHANGE MASTER TO MASTER_LOG_FILE='binlog.000135', MASTER_LOG_POS=1060653593;
  10. --
  11. -- Current Database: `db1`
  12. --
  13. CREATE DATABASE /*!32312 IF NOT EXISTS*/ `db1` /*!40100 DEFAULT CHARACTER SET utf8 */;
  14. #直接在mysqldmp恢复后的从库上执行change master后start slave,无法同步
  15. #重启myslq后报错Slave failed to initialize relay log info structure from the repository,reset slave就OK了
  16. root@master 17:52: [(none)]> reset slave;
  17. Query OK, 0 rows affected (0.01 sec)
  18. root@master 17:53: [(none)]> CHANGE MASTER TO
  19. -> MASTER_HOST='172.16.3.153',
  20. -> MASTER_PORT=3306,
  21. -> MASTER_USER='repl',
  22. -> MASTER_PASSWORD='Rep12#3@',
  23. -> master_auto_position=1;
  24. Query OK, 0 rows affected, 2 warnings (0.04 sec)

https://www.cnblogs.com/mysql-dba/p/7201513.html

http://blog.csdn.net/wll_1017/article/details/70332107

https://www.topjishu.com/7997.html

http://www.mamicode.com/info-detail-1457556.html

2.请给出MySQL数据丢失的最佳解决方案?(自由发挥)

数据写入内存,但未写log未落盘

1)数据丢失后的解决方案?
  • 业务重做
  • 找客服,客服安抚客户
2)防止数据丢失
  • 主从复制采用半同步方式
  • 双1
  • 超融合存储
  • 换oracle

https://www.cnblogs.com/netfocus/p/3655958.html

mysql小白系列_14 线上故障分析与排错的更多相关文章

  1. mysql小白系列_11 MHA

    一.MHA是什么?能干什么的 (1)以Perl语言写的一套Mysql故障切换方案,一个脚本管理工具 (2)保障数据库的高可用性 (3)修复多个slave之间的差异日志,最终使所有的slave保持数据一 ...

  2. mysql小白系列_07 锁与事务

    1.MySQL参数autocommit生产环境设1还是0?为什么? 2.MySQL参数tx_isolation生产环境上大多数是设什么值,为什么? 3.与MySQL锁相关的有哪些因素? 1.MySQL ...

  3. mysql小白系列_05 日常操作

    mysql启动/关闭 my.cnf的调用顺序 [root@docker02 bin]# ./mysql --help Default options are read from the followi ...

  4. mysql小白系列_08 zabbix添加自定义监控项items和触发器

    监控mysql存活 1.配置agent自定义参数 vi /usr/local/zabbix/etc/zabbix_agentd.conf Include=/usr/local/zabbix/etc/z ...

  5. MySQL慢查询优化(线上案例调优)

    文章说明 这篇文章主要是记录自己最近在真实工作中遇到的慢查询的案例,然后进行调优分析的过程,欢迎大家一起讨论调优经验.(以下出现的表名,列名都是化名,实际数据也进行过一点微调.) PS:最近做了一个面 ...

  6. mysql小白系列_13 Online DDL

    Online DDL: 一.FIC之前的添加删除二级索引: 1.首先创建临时表,定义目标新表的选项和索引 2.逐行拷贝数据到临时表 3.插入行时更新索引信息 4.数据全部被拷贝到新表后,删除旧表,re ...

  7. mysql小白系列_10 mysql主从复制原理

    1.如何解决主从复制延迟的问题? (1)主从复制原理 http://www.cnblogs.com/jenvid/p/8410922.html 1.salve执行slave start,salve服务 ...

  8. mysql小白系列_09 mysql性能优化关键点

    一 服务器参数调优,有哪些关键点? 1. 应用访问优化 优化方法 性能提升效果 优化成本 说明 减少数据访问能不访问就不访问-减少磁盘IO 1~1000 低 缓存服务器缓存mysql数据,Redis. ...

  9. mysql小白系列_08 zabbix3.2.6概念及部署

    一 zabbix功能简介 1.zabbix三大监控组件 zabbix server web gui database zabbix_server zabbix proxy agent client 2 ...

随机推荐

  1. 2019-2020-1 20199328《Linux内核原理与分析》第七周作业

    分析Linux内核创建一个新进程的过程 2019/10/28 18:34:58 笔记部分 首先是查看进程描述符(用来描述进程,其代码比较庞大)的一些内容 系统调用回顾 fork.vfork.clone ...

  2. java 8中 predicate chain的使用

    目录 简介 基本使用 使用多个Filter 使用复合Predicate 组合Predicate Predicate的集合操作 总结 java 8中 predicate chain的使用 简介 Pred ...

  3. java 8 stream reduce详解和误区

    目录 简介 reduce详解 总结 java 8 stream reduce详解和误区 简介 Stream API提供了一些预定义的reduce操作,比如count(), max(), min(), ...

  4. CYQ.Data 轻量数据层之路 使用篇-MProc 存储过程与SQL 视频[最后一集] H (二十八)

    2019独角兽企业重金招聘Python工程师标准>>> 说明: 本次录制主要为使用篇:CYQ.Data 轻量数据层之路 使用篇五曲 MProc 存储过程与SQL(十六)   的附加视 ...

  5. 命令替换、权限、chmod、特殊权限

    命令替换 把字符串里面的命令先执行再把该字符串输出,与PHP的""里面的变量被执行一样. $(COMMAND) `COMMAND` [root@jiakang ~]# echo & ...

  6. Computational Geometry

    矩形重叠 看过某司一道笔试题:给\(n\)个矩形左下和右上坐标(不能斜放),求重叠最多处矩形个数. 这道题本身不难:可以遍历所有矩形边界组成的点,计算该点被多少矩形包围,从而选出最大值. 由此引申出一 ...

  7. Norwegian Wood

    0 前言 <挪威的森林>是村上春树很有名的一部小说,但我想大多数人阅读的时候都只是把书名当作一个符号,而不是作为故事去追究. 我国台湾知名文学评论家杨照先生说过:村上的书里有太多太多典故, ...

  8. 图论--差分约束--POJ 1201 Intervals

    Intervals Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 30971 Accepted: 11990 Descripti ...

  9. B. Phoenix and Beauty(贪心构造)

    \(给定序列长n的数组和k.完美数组的定义是数组中每一个连续k项的子段和为定值\) \(现在要求插入一些数使得数组满足条件,输出你构造的新数列.\) \(\color{Red}{----------- ...

  10. kafka学习 之 Quickstart

    第一步:安装启动kafka 官网链接:https://www.apache.org/dyn/closer.cgi?path=/kafka/2.3.0/kafka_2.11-2.3.0.tgz 进入指定 ...