暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL重点知识总结(完善中)

原创 从小就很霸道的胖虎 2023-07-21
160

一、mysql出现主从同步延迟原因是什么?如何解决?

简答:

原因:master/slave负载过高、网络延迟、机器性能低、MySQL配置不合理

主从延时排查方法:

1、通过监控 show slave status 命令输出的Seconds_Behind_Master参数的值来判断:

2、通过主从中的show processlist命令输出参数状态判断

解决方案:

1、半同步复制

从MySQL5.5开始,MySQL已经支持半同步复制了,半同步复制介于异步复制和同步复制之间,主库在执行完事务后不立刻返回结果给客户端,需要等待至少一个从库接收到并写到relay log中才返回结果给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一个TCP/IP往返耗时的延迟。

2、主库配置

sync_binlog=1,innodb_flush_log_at_trx_commit=1
sync_binlog的默认值是0,MySQL不会将binlog同步到磁盘,其值表示每写多少binlog同步一次磁盘。
innodb_flush_log_at_trx_commit为1表示每一次事务提交或事务外的指令都需要把日志flush到磁盘。

3、服务的基础架构在业务和mysql之间加入memcache或者redis的cache层。降低mysql的读压力。

4、硬件强劲,延迟自然会变小。一句话,缩小延迟的解决方案就是花钱和花时间。
注:

半同步复制mysql semi-sync(半同步复制)半同步复制:
● 5.5集成到mysql,以插件的形式存在,需要单独安装
● 确保事务提交后binlog至少传输到一个从库
● 不保证从库应用完这个事务的binlog
● 性能有一定的降低,响应时间会更长
● 网络异常或从库宕机,卡主主库,直到超时或从库恢复


2、数据库的读写分离软件,MySQL-proxy,amoedb(了解有这两个软件)
3、mysql-mmm 高可用软件
4、MySQL半同步应用
5、MySQL+heartbeat_drbd
6、Xtrabackup物理备份
高可用目的:持续提供服务
集群目的:解决高并发


innodb cluster(MySQL 8.0)
修改配置文件
gtid_mode=on
enforce_gtid_consistency=1
数据库操作-链状
server_1: reset master;
server_2:reset master; change master to master_anto_postion=1; start slave user='repl' password='oracle';
server_3:reset master; change master to master_anto_postion=1; start slave user='repl' password='oracle';

数据库操作-环状
server_1:change master to master_host='123.0.0.1',master_port=3313,master_anto_postion=1;
server_1:start slave user='repl' password='oracle';

查看主从复制架构的监控指标
master: binlog dump thread(发送数据的线程)
slave: I/O thread(接收数据的线程)
single-threaded slaves
multi_threaded slaves 

最后修改时间:2023-08-02 16:53:32
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论