mysql主从异常,主从延时

    技术2022-07-11  116

    1,主库原因

    1、主库做修改操作之后,才会记录二进制日志。 sync_binlog=0/1 1:表示:每次事务commit,刷新binlog到磁盘 0:系统决定binlog什时候刷新到磁盘

    2,io导致 将binlog和数据分开放 单独binlog存放在固态盘

    3、主库的压力特别大(大事务、多事务) 解决方案: 做好数据库优化 (1) 将大事务分成多个小事务。 TPS:每秒的事务量 QPS:每秒查询量 买更好的硬件(scale up) 业务分离——读写分离、分库分表(scale out)

    4、从库数量多,导致dump线程繁忙 数据库主从,从库数量不宜超过四台,如果超过对主库压力过大

    2,从库原因

    1、relay-log写入慢(硬件慢) 半同步复制,可以控制relaylog及时写入 relaylog SSD

    2、SQL线程慢 主从硬件差异比较大,更换硬件 从库没有作过优化,优化数据库

    3,竟可能的缩小主从延迟

    大事务拆成小事务,多事务进行分离 使用多级主从,分库分表架构 将binlog放到ssd或者flash上,高性能存储 将relay放到ssd或者flash上 尽量选择和主库一致硬件 数据库主从单独使用高性能交换机 数据库主从机器网卡做端口聚合,竟可能减小网络延时

    4mycat的全局表

    Mycat的全局表,比如你有三个库,写入时三个库都做写入,但是读取时只从其中一个库读取, 全局表配置使用type='global 全局表数据增加或者修改时,节点之间保持数据一致 全局表只适合修改不频繁的表,例如字典表 为了保持数据的一致性,当全局表更新数据时会通过锁机制来保证数据统一。 这也导致了并发更新的时候死锁的发生

    Processed: 0.021, SQL: 9