zoukankan      html  css  js  c++  java
  • 恢复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.sql

    3、查看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.sql

    6、导入完毕后,开启同步即可。
    mysql>start slave;

    这样我们就恢复了3张表,并且同步也修复了。

  • 相关阅读:
    mybatis中的配置文件的约束
    win10下PHP开发环境搭建
    装饰器的理解
    在iis上添加woff字体文件读取
    转发:使用sql命令查询视图中所有引用的基础表
    转:C4项目中验证用户登录一个特性就搞定
    转载:NSobject官方介绍
    thinkphp生命周期
    array_intersect_assoc — 带索引检查计算数组的交集
    array_flip — 交换数组中的键和值
  • 原文地址:https://www.cnblogs.com/l10n/p/7543211.html
Copyright © 2011-2022 走看看