美文网首页mysqlMySQL数据库sql
MySql主从半同步服务模式

MySql主从半同步服务模式

作者: 技术老男孩 | 来源:发表于2023-02-23 07:58 被阅读0次

    一、半同步服务模式概念:

    • 主从同步复制模式,可以在任意数据库服务器启用半同步服务模式
    • 主服务器启动半同步,从服务器必须也要启动半同步
    • 操作实现分为:临时配置(配置完成即生效,重启服务失效)、永久配置

    二、复制模式:

    • 异步复制模式(默认):主服务器执行完一次事务后,立即将结果返给客户端,不关心从服务器是否已经同步数据。
    • 半同步复制模式:主服务器在执行完一次事务后,等待至少一台从服务器同步数据完成,才将结果返回给客户端。

    三、临时配置流程:

    • 安装模块
    # 做为主服务器安装master模块
    MySQL> install plugin  rpl_semi_sync_master   SONAME  "semisync_master.so";
                                    
    # 做为从服务器slave模块
    MySQL> install plugin  rpl_semi_sync_slave   SONAME  "semisync_slave.so";   
    
    • 查看模块是否安装
    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        |
    +----------------------+---------------+
    
    • 启用模块
    # 做为主服务器启用master模块
    mysql> SET  GLOBAL rpl_semi_sync_master_enabled=1;
                                    
    # 做为从服务器启用slave模块
    mysql> SET  GLOBAL rpl_semi_sync_slave_enabled=1;   
    
    • 查看模块是否启用
    MySQL> SHOW  VARIABLES  LIKE  "rpl_semi_sync_%_enabled";                    
    +------------------------------+-------+
    | Variable_name                | Value |
    +------------------------------+-------+
    | rpl_semi_sync_master_enabled | ON    |
    | rpl_semi_sync_slave_enabled  | ON    |
    +------------------------------+-------+
    

    四、永久配置流程:

    • 修改配置
    [root@host ~]# vim /etc/my.cnf
    [mysqld]
    # 只安装主服务模块          
    plugin-load="rpl_semi_sync_master=semisync_master.so"
    # 只安装从服务模块
    plugin-load="rpl_semi_sync_slave=semisync_slave.so"
    # 同时安装主和从服务模块
    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
    
    • 重启服务 模块依然是启用状态
    [root@host ~]# systemctl restart mysqld
    # 进入sql环境查询开启状态                     
    MySQL> SHOW  VARIABLES  LIKE  "rpl_semi_sync_%_enabled";                        
    +------------------------------+-------+
    | Variable_name                | Value |
    +------------------------------+-------+
    | rpl_semi_sync_master_enabled | ON    |
    | rpl_semi_sync_slave_enabled  | ON    |
    

    相关文章

      网友评论

        本文标题:MySql主从半同步服务模式

        本文链接:https://www.haomeiwen.com/subject/qteihdtx.html