Linux/Centos Mysql数据库 番外篇之 半同步复制模式


在这里插入图片描述

复制模式介绍

  • 异步复制(Asynchronous replication)
    • 主服务器执行完一次事务后,立即将结果返回给客户端,不关心从服务器是否已经同步数据
  • 半同步复制(Semisynchronous replication)
    • 介于异步复制和全同步复制之间
    • 主服务器执行完一次事务后,等待至少一台从服务器同步数据完成,才将结果返回给客户端

配置半同步复制模式

  1. 查看是否允许动态加载模块(默认允许)

    mysql> show  variables  like  'have_dynamic_loading';
    +----------------------+-------+
    | Variable_name        | Value |
    +----------------------+-------+
    | have_dynamic_loading | YES   |
    +----------------------+-------+
    1 row in set (0.01 sec)
    
  2. 命令行加载插件

    mysql> install  plugin   rpl_semi_sync_master   SONAME   ”semisync_master.so”; //加载master模块
    mysql> install  plugin   rpl_semi_sync_slave SONAME  'semisync_slave.so'; //加载slave模块
    

    查看模块是否安装成功:

    mysql> select  plugin_name, plugin_status from  information_schema.plugins  where plugin_name like '%semi%';  
    +----------------------+---------------+
    | PLUGIN_NAME          | PLUGIN_STATUS |
    +----------------------+---------------+
    | rpl_semi_sync_master | ACTIVE         |        //模块安装成功
    | rpl_semi_sync_slave  | ACTIVE         |        
    +----------------------+---------------+
    2 rows in set (0.00 sec)
    
  3. 启用半同步复制 (在安装完插件后,半同步复制默认是关闭的)

    mysql> set  global rpl_semi_sync_master_enabled = 1; //启用master半同步复制
    Query OK, 0 rows affected (0.00 sec)
    mysql> set  global rpl_semi_sync_slave_enabled = 1; //启用slave半同步复制
    Query OK, 0 rows affected (0.00 sec)
    

    查看半同步复制模式是否启用:

    mysql>  show  variables  like  "rpl_semi_sync_%_enabled";
    +------------------------------+-------+
    | Variable_name                | Value |
    +------------------------------+-------+
    | rpl_semi_sync_master_enabled | ON    |    //模块已启用
    | rpl_semi_sync_slave_enabled  | ON    |
    +------------------------------+-------+
    2 rows in set (0.00 sec)
    
  4. 修改配置文件,永久启用半同步复制

    vim /etc/my.cnf
    [mysqld]
    plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
    rpl-semi-sync-master-enabled = 1
    rpl-semi-sync-slave-enabled = 1
    :wq
    
  5. 重启数据库服务,并查看状态信息

    mystemctl  restart mysqld
    mysql -uroot -p123qqq...A
    mysql> select  plugin_name, plugin_status from  information_schema.plugins  where plugin_name like '%semi%';
    +----------------------+---------------+
    | plugin_name          | plugin_status |
    +----------------------+---------------+
    | rpl_semi_sync_master | ACTIVE        | //模块已加载
    | rpl_semi_sync_slave  | ACTIVE        |
    +----------------------+---------------+
    2 rows in set (0.00 sec)
    
    mysql>  show  variables  like  "rpl_semi_sync_%_enabled";
    +------------------------------+-------+
    | Variable_name                | Value |
    +------------------------------+-------+
    | rpl_semi_sync_master_enabled | ON    | //模式已启用
    | rpl_semi_sync_slave_enabled  | ON    |
    +------------------------------+-------+
    2 rows in set (0.00 sec)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶伯爵式

大爷~您看着给~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值