zoukankan      html  css  js  c++  java
  • my41_主从延迟大排查

    半同步复制

    主库执行

    INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

    SET GLOBAL rpl_semi_sync_master_enabled = 1;

    从库执行

    INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

    SET GLOBAL rpl_semi_sync_slave_enabled = 1;

    show status like 'Rpl_semi_sync_master_status';
    show status like 'Rpl_semi_sync_slave_status';

    配置文件

    主从数据库的my.cnf配置文件中添加:

    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

    详细可以参考

    https://www.cnblogs.com/kevingrace/p/10228694.html

    复制并行度

    DATABASE 默认值,基于库的并行复制方式;LOGICAL_CLOCK:基于组提交的并行复制方式

    slave-parallel-type=LOGICAL_CLOCK
    slave-parallel-workers=16
    master_info_repository=TABLE
    relay_log_info_repository=TABLE
    relay_log_recovery=ON

    stop slave;

    set global slave_parallel_type='logical_clock';

    set global slave_parallel_workers=16;

    start slave;

    事务提交控制

    sync_binlog

    innodb_flush_log_at_trx_commit

    1,1最慢,提速可以配置为0,2

    sync_binlog=0

    innodb_flush_log_at_trx_commit=2

       

    innodb_io_capacity

    mysql> show variables like '%io_c%';
    +------------------------+-------+
    | Variable_name          | Value |
    +------------------------+-------+
    | innodb_io_capacity     | 200   |
    | innodb_io_capacity_max | 2000  |
    +------------------------+-------+
    2 rows in set, 1 warning (0.03 sec)
    


     可以调整到3000-5000,SSD可到8000

    关闭顺序提交

    mysql> show variables like '%order_co%';
    +----------------------+-------+
    | Variable_name        | Value |
    +----------------------+-------+
    | binlog_order_commits | ON    |
    +----------------------+-------+
    

    自动提交

    mysql自动提交的效率要远高于开发代码中的事务,批量删除时,可以让开发使用数据库的自动提交,关闭显式提交。

    也可以尝试另外一套组提交的逻辑

    binlog_group_commit_sync_delay=100
    binlog_group_commit_sync_no_delay_count=10000
    sync_binlog=1

  • 相关阅读:
    hdu 4578 线段树 ****
    hdu 4576 概率dp **
    hdu 4622 **
    vue中保存和获取cookie,读写cookie以及设置有效时间等,使用js-cookie
    go语言 strconv.ParseInt 的例子
    【golang】unsafe.Sizeof浅析
    Golang 漫谈之channel妙法
    总结了才知道,原来channel有这么多用法!
    字符集之在UTF-8中,一个汉字为什么需要三个字节?
    什么是Bitmap
  • 原文地址:https://www.cnblogs.com/perfei/p/11803830.html
Copyright © 2011-2022 走看看