zoukankan      html  css  js  c++  java
  • reset master 不能乱用呀

    在主从环境了  用这个  从会挂掉的呢

    谈谈这两天做mysql guid主从的痛

    需求1:

    将一个单点mysql进行迁移

    这个比较简单,我搭建了同版本的mysql,然后mysqldump备份数据导入,数据没有更新,完整就直接导入了

    需求2:

    觉得单点比较不靠谱,决定将以前的一个从库,注意这个从库是很久之前的旧的mysql主的从库,重新作为新的主库的从库

    首先我直接向gtid可以自动寻找,那就直接将这个从库指向新的主库吧,结果报错找不到log文件,难道是以为从库是旧的,保留的都是曾经的主的gtid的信息,所以不行,这里我还是疑惑的

    后来决定重新拿一份新主的最新备份,导入从库,重新做主从,还是报错1146,不知道为啥

    我很气

    我又重新搭建了最新的从库导入数据,也报错,我还鬼使神差的在主上执行了 reset master ,然后我就导入着数据,回家了,早晨来一看,主上的binlog没了,只剩00001了,又没有完整的日志文件了

    现在我没辙 继续重新那一份最新的数据导入一下吧

    如果你这么干了,恢复的方法

    1.从主库拿一份最新的数据,新的程度要在做reset master; 这个操作之后

    2.从库上(别执行,下边还有呢,看完了再说)

    stop slave;

    reset slave;

    导入数据;

    重新指定主;

    start slave;

    然后报错如下:

      Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave has more GTIDs than the master has, using the master's SERVER_UUID. This may indicate that the end of the binary log was truncated or that the last binary log file was lost, e.g., after a power or disk failure when sync_binlog != 1. The master may or may not have rolled back transactions that were already replica'

    解决方法:

    在从上执行 reset master;

    在从库上执行这个命令的作用是 清空从库的gtid

    然后继续观察

    如果还报错 就

    stop slave;

    reset slave;

    重新指定主;

    start slave;

    reset master;

    然后我的继续报错

      Last_SQL_Errno: 1007
                   Last_SQL_Error: Error 'Can't create database 'mm'; database exists' on query. Default database: 'mm'. Query: 'create database mm'
    这种错误叫可控的错误

    两种方法:

    在配置文件里设置跳过这个错误

    在从库上删除这个库,然后stop slave; start slave;

     

  • 相关阅读:
    2020Java面试题及答案,刷这些题,准没错!
    作为一个面试官,我想问问你Redis分布式锁怎么搞?
    你说研究过Spring里面的源码,循环依赖你会么?
    一口气说出 6种 延时队列的实现方案,面试稳稳的
    我可真是醉了,一个SpringBoot居然问了我30个问题
    最强Dubbo面试题,附带超级详细答案
    平安银行Java社招五面面经,目前最全面的,38个面试题以及答案
    Java电子书高清PDF集合免费下载
    Python处理json模块的详细介绍
    用Python写一个“离线语音提示器”来提醒我们别忘记了时间
  • 原文地址:https://www.cnblogs.com/lazyball/p/8940629.html
Copyright © 2011-2022 走看看