mysql5.7 设置主从半同步模式

作者: 数据老菜鸟 | 来源:发表于2022-12-27 03:46 被阅读0次

    1.安装半同步插件

    mysql5.7 gz解压后在plugin目录下已经存在 半同步的so文件了

    /mysql/lib/plugin目录下

    主库安装为 semisync_master.so

    从库安装为 semisync_slave.so

    进入mysql 客户端,

    在主库上执行sql

    install plugin rpl_semi_sync_master soname 'semisync_master.so';

    set global rpl_semi_sync_master_enabled=ON;

    从库上执行:

    install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

    set global rpl_semi_sync_slave_enabled=ON;

    注意:初次加载插件后,MySQL会将该插件记录到系统表mysql.plugin中,下次启动时系统会自动加载该插件。

    检查:select * from mysql.plugin;

    检查:

    select @@have_dynamic_loading


    2.配置my.cnf

    主从库都进行配置:

    rpl-semi-sync-master-enabled = 1

    rpl-semi-sync-slave-enabled = 1

    主库配置:

    rpl_semi_sync_master_enabled=ON:表示在master上已经开启半同步复制模式。

    rpl_semi_sync_master_timeout=10000:该参数默认为10000毫秒,即10秒,可以调整,表示如果主库在某次事务中等待事件超过10秒,则降级为异步复制模式,不再等待slave,如果master探测到slave恢复,则会自动回到半同步模式。

    rel_semi_synv_master_wait_no_slave:表示是否允许master每个事务提交后都要等待slave的确认信号,默认是ON,即每一个事务都会等待,如果是OFF,则slave追赶上之后,也不会回到半同步模式。

    rlp_semi_sync_master_trace_level=32:表示开启半同步复制模式时的调试级别,默认是32。

    从库配置:

    pl_semi_sync_slave_enabled=ON:表示在slave上开启半同步复制模式。

    rlp_semi_sync_slave_trace_level=32:表示开启半同步复制模式时的调试级别,默认是32。

    3.在主从库上开启半同步复制

    主:

    mysql>set global rpl_semi_sync_master_enabled=1;

    mysql>set global rpl_semi_sync_master_timeout=30000;

    从:

    mysql>set global rpl_semi_sync_slave_enabled=1;

    注意:如果之前配置的是异步复制,在这里要重启一下从库的IO线程,如果是全新的半同步则不用重启.

    重启命令是:mysql>stop slave io_thread;start slave io_thread;

    4.在主库上查看半同步状态

    mysql>show status like '%semi_sync';

    在输出信息中,我们重点关注三个参数:

    rpl_semi_sync_master_status  OFF/ON    #ON表示半同步复制打开,OFF表示关闭

    rpl_semi_sync_master_yes_tx  [number]      #这个数字表示主库当前有几个事务说通过半同步复制到从库的

    rpl_semi_sync_master_no_tx  [number]      #表示有几个事务不是通过半同步复制到从库的

    相关文章

      网友评论

        本文标题:mysql5.7 设置主从半同步模式

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