• 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;

     

  • 相关阅读:
    android之PackageManager简单介绍
    西门子PLC学习笔记二-(工作记录)
    node.js第十课(HTTPserver)
    ubuntu ???????????? no permissions 问题解决
    Web API 设计摘要
    公共 DNS server IP 地址
    用Unicode迎接未来
    vs2010公布时去除msvcp100.dll和msvcr100.dll图讲解明
    linux串口驱动分析
    C++ 中dynamic_cast<>的用法
  • 原文地址:https://www.cnblogs.com/lazyball/p/8940629.html
Copyright © 2020-2023  润新知