zoukankan      html  css  js  c++  java
  • mysql主从切换

    mysql 主从切换

    主停,从做主
    步骤如下:

    1 确认从服务器已经完成所有同步操作:
    stop slave io_thread
    show processlist

    直到看到状态都为:xxx has read all relay log 表示更新都执行完毕

    2 停止从服务器slave服务
    stop slave

    3 将从服务器切换为主服务器:
    reset master

    完成切换。
    PS: 如果从服务器设置了 read only 选项,则需要将这个参数去掉并重新启动数据库

    主从切换:
    最终结果:主库可写,从库只读

    首先保证主从数据库都开启二进制日志,方法是在my.cnf中的[mysqld]节中加入log-bin=log-bin-name
    然后查看是否开启mysql> show variables; log-bin ON

    为了在切换时不会漏掉数据库的更新,必须将主数据库停掉,设为只读:
    set global read_only=1;
    (注意和FLUSH TABLES WITH READ LOCK;的区别, UNLOCK TABLES;解锁)
    show variables like 'read_only%';确认 read_only ON

    然后在主库mysql> flush logs; 刷新一下log-bin,
    在从库中查看mysql> show slave status G 是否完全更新

    查看主库的状态mysql> show master status G 是否还有数据更新

    如果没有就可以停掉从库mysql> stop slave;

    查看新主库的状态mysql> show master status G 记录file和pos

    这时可以关掉新主库的只读属性mysql> set global read_only=0;

    新从库改变连接的主库信息mysql> change master to

    master_host='192.168.30.122',
    master_user='repl',
    master_password='123456',
    master_port=3306,
    master_log_file='mysql-bin.000001',
    master_log_pos=120;
    这时可以启动新从库了:mysql> start slave;
    查看新从库状态:mysql> show slave statusG

    PS:主从切换后数据不一致,特别蛋疼冲突各种set global sql_slave_skip_counter =1; 跳过冲突
    所以在今后做主从切换时候一定要保证主库数据都已经入库结束,没有数据再写时做主从切换。

  • 相关阅读:
    一卦,测一年运气
    测一下我心中想的事
    一卦,测一下我心里想的事
    这一卦,学到了不少东西
    癸山丁向下卦(七运)
    起卦测我心里想的事
    现在的卦,越来越看不懂了
    luogu P2759 奇怪的函数 |二分答案
    luogu P2515 [HAOI2010]软件安装 |Tarjan+树上背包
    luogu P2343 宝石管理系统 |分块+堆
  • 原文地址:https://www.cnblogs.com/youhunyimeng/p/4546688.html
Copyright © 2011-2022 走看看