zoukankan      html  css  js  c++  java
  • MySQL主从异常恢复

    说明

    MySQL主从出现不同步的情况时,或者要添加新的从库时,可以使用以下方法进行操作回复主从。

    停止业务应用

    停止所有连接到主从库上的应用,在恢复主从期间禁止任何增删改等操作,否则恢复失败

    停止主从服务

    进入slave节点,停止主从服务

    $ mysql> stop slave;
    

    处理从库数据

    处理从库数据主要有两种情况:

    • 从库中的数据比主库多

    这种情况需要先找出从库比主库多的数据,将这些数据添加到主库中

    • 主库的数据比从库的数据多

    这种情况可以直接删除从库的所有数据,然后再将主库的数据复制一份到从库

    如果从库所在的容器已经不能正常启动,可以考虑删除容器再重新创新新的容器

    复制主库数据到从库中

    从库数据处理完成后,将从库的数据全部删除掉,然后将主库的数据复制一份到从库中

    主库数据并不仅仅是表数据,还包含用户等数据

    查询主库当前日志位置

    登陆主库的mysql,使用以下命令查询主库当前的二进制日志文件名字以及位置

    $ docker exec –it mysql /bin/bash
    
    $ mysql –uroot –p
    
    $ mysql>show master status;
    

    记录File和Position的值,后面需要使用

    创建主库和从库的连接

    进入从库

    $ docker exec –it mysql /bin/bash
    
    $ mysql –uroot –p
    

    使用以下命令创建主库和从库的连接

    mysql>change master to master_host='172.16.86.100', master_user='slave', 
    master_password='Bjcr.123_MySQL', master_port=3306, master_log_file='mysql-bin.000065', 
    master_log_pos= 998883537, master_connect_retry=30;
    

    重启slave

    使用下面的命令,启动slave

    $  mysql>start slave
    

    使用以下命令查询主从状态

    $ show slave status G;
    

    出现下图所示的情况即为主从创建成功:

  • 相关阅读:
    代码重构~提取方法
    代码重构~提取到类
    不说技术~有时,开发者还是应该讲究一点!
    代码重构~封装成员变量
    将不确定变为确定~LINQ查询包含对不同数据上下文上所定义项的引用
    真实的用户,真实的中国互联网
    John Resig: JavaScript's Chuck Norris
    chrome插件IE tab使用技巧
    人生的疆域与生存的幻象—阅读丰富人生
    WPF 创建多行TextBox
  • 原文地址:https://www.cnblogs.com/ybyn/p/13698295.html
Copyright © 2011-2022 走看看