Welcome 微信登录

首页 / 数据库 / MySQL / 恢复SLAVE上的某几张表的简要方法

在日常工作中,同步报错是遇到最多的一个问题,如果你修复后发现还没有解决,通常的方法就是在Master上重新dump出一份,然后在slave上恢复。这个方法是针对整个库不是很大的情况下使用的,那如果是较大,全部dump再倒入耗时就很长。那么就要通过特殊的方法恢复某几张表,例如有a1,b1,c1这三张表的数据跟Master上的不一致,操作方法如下:1、停止Slave复制mysql>stop slave;2、在主库上dump这三张表,并记录下同步的binlog和POS点# mysqldump -uroot -p123456 -q --single-transaction --master-data=2 yourdb a1 b1 c1 > ./a1_b1_c1.sql3、查看a1_b1_c1.sql文件,找出记录的binlog和POS点# more a1_b1_c1.sql例如MASTER_LOG_FILE="mysql-bin.002974", MASTER_LOG_POS=55056952;4、把a1_b1_c1.sql拷贝到Slave机器上,并做Change master to指向mysql>start slave until  MASTER_LOG_FILE="mysql-bin.002974", MASTER_LOG_POS=55056952;直到sql_thread线程为NO,这之间的同步报错一律跳过即可,用命令stop slave ;set global sql_slave_skip_counter=1;start slave;注:我来解释下,这步是什么意思。保障其他表的数据不丢失,一直同步,直到同步完那个点结束,a1,b1,c1表的数据在之前的dump已经生成了一分快照,我们只需要导入进入,然后开启同步即可。5、在Slave机器上导入a1_b1_c1.sql# mysql -uroot -p123456 yourdb < ./a1_b1_c1.sql6、导入完毕后,开启同步即可。mysql>start slave;这样我们就恢复了3张表,并且同步也修复了。你可以试试看。MySQL5.6 支持explain updateMySQL Cluster7.2在线增加数据节点存在重大弊端相关资讯      MySQL基础 
  • MySQL因为区分大小写而引起找不到  (09/08/2012 20:12:21)
  • MySQL 执行计划解读  (09/07/2012 06:18:14)
  • MySQL审计插件安装使用说明文档--  (08/09/2012 08:57:10)
  • MySQL 版本选择  (09/07/2012 06:18:58)
  • MySQL Internal 笔记  (09/01/2012 16:34:19)
  • MySQL的“[Warning] Invalid (old?  (08/09/2012 08:55:01)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

<