Chinaunix首页 | 论坛 | 博客
  • 博客访问: 304580
  • 博文数量: 33
  • 博客积分: 586
  • 博客等级: 中士
  • 技术积分: 494
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-27 14:05
个人简介

衡铁刚 1)2011-2013:Alibaba MySQL DBA 2)2014-至今: Alibaba 数据库PD

文章分类

全部博文(33)

文章存档

2016年(1)

2015年(10)

2013年(5)

2012年(17)

我的朋友

分类: Mysql/postgreSQL

2012-10-26 11:50:40

生产环境mysql复制架构一般是M-M结构(主库-备库),在做数据库拆分、硬件升级、扩容的方面都需要通过备份集来恢复出新备库(M-M-S)或级联备库(M-M-S1-S2),在这个过程中遇到很多问题,和大家分享一下


  1. mysqldump备份集恢复,当存在myisam表情况下恢复后relay master binlog时会出现duplicate [key|event],其实恢复是成功的,只需要skip slave error即可,set global slave_exec_mode=IDEMPOTENT;stop slave;start slave;当slave同步超过备份结束时间点后执行show slave status\G;set global slave_exec_mode=STRICT;show slave status\G;复原即可
  2. mysqldump备份集恢复,--default-character-set的设置也很重要,一定要与数据编码一致,数据具体编码需要登上实例分析,一般情况下character_set_client、character_set_connection、character_set_results是一致的,character_set_server作为建库建表默认缺省字符集,还要看具体表的字符集设置,当表字符集和(client、connection、results)不一致时,就需要分析表中数据真正的字符集编码,--default-character-set='charset' 以数据编码为准,如实例上表数据字符集不一致时会比较麻烦,暂时未遇到
  3. 备份集失效也是要重点关注的,如备份中心空间慢,备份过程报错,检查机制可能随着备份工具不断优化调整而变得失效,需要有完善的检查机制来保证,数据的最后一道保障
  4. 备份往往只关注备份集本身的可用性,如果备库的slave error或主备数据已经不一致的,从备库获取的备份集也是无效的
  5. 当恢复过程没问题,准备拉master binlog时,发现找不到binlog pos了,master空间始终是有效的,需要定期purge binlog,当TPS维持高水位时,binlog量也会很大
  • 需要及时清理,以免空间爆掉
  • 备库会slave delay,导致恢复后的新备库找不到master binlog pos(slave delay+新备库恢复时间
  • binlog异地备份和复用才是王道





阅读(1508) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~