在日常工作中,同步报错是遇到最多的一个问题,如果你修复后发现还没有解决,通常的方法就是在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)