实例分析mysql主从同步原理、配置及延迟

分类:编程技术 时间:2024-02-20 15:23 浏览:0 评论:0
0
小编给大家分享一个实例分析mysql主从同步的原理、配置和延迟。希望您读完本文后有所收获。我们一起来讨论一下吧!

MySQL的主从同步原理、主从同步配置、主从同步延迟。首先我们先了解一下什么是主从同步。主从同步,顾名思义,也称为主从复制,用于建立与主数据库一模一样的数据库环境。主从同步允许将数据从一台数据库服务器复制到其他服务器,以保证主库数据与从库数据一致。

集群共享存储,也就是数据共享。主从复制不存在共享。每台机器都是一个独立完整的系统,不存在任何共享。

掌握r 从同步原理

mysql5.6以后实现主从复制主要有三种方式:

1.异步复制

2 .全同步复制

3.半同步复制

主从同步原理图

1.当主库的更新事件(更新、插入、删除)写入二进制日志时。

2.从库创建一个I/O线程,连接主库,请求主库将binlog中的内容更新记录到从库上。主库创建binlog dump线程,将binlog内容发送到从库。从库的I/O线程读取主库输出线程发送的更新,并将这些更新复制到本地中继日志中。文件。

3.从库中创建 SQL 线程。该线程读取I/O线程写入中继日志的更新事件

主从同步实现(异步复制、数据库在不同服务器上)

1.配置主数据库开启binary-log
vim /etc/my.cnf [下添加server-id=1(用于标识不同数据库) mysqld] log-bin=master-bin(打开bin-log,配置文件名为master-bin) log-bin-index=master-bin.index(区分不同的log-bin文件)

重启数据库:systemctl restart mariadb.service

2.配置从数据库打开relay-log
vim /etc/my.cnf下的[mysqld]添加server-id=2relay-log=slave- relay-bin(打开relay-log并配置文件名slave-relay-bin)relay-log-index=slave-relay-bin.index

重启数据库:systemctl restart mariadb。服务

3.连接两个数据库

在主数据库中:创建用户repl,每个数据库lave服务器需要使用主数据库的账号名和密码来连接主服务器。

CREATE USER 'repl' @'114.116.77.213' IDENTIFIED BY '12312';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'114.116.77.213' IDENTIFIED BY '12312';

在从属数据库中< /strong>:

将 master 更改为 master_host='47.106.78.106',master_user='repl',master_password='12312',master_log_file='master -bin.000001', master_log_pos=0;

开始同步:启动slave;

4.验证

在主库中创建数据库,然后在从库中查看

主从同步的作用

< p>1。做好数据热备份,作为备份数据库,主数据库服务器出现故障后,可以切换到从数据库继续工作,避免数据丢失。

2.阅读分离

主从同步注意事项

主库可以读写数据,从库只能读取数据,因为从库写入数据时,位置会改变,但主库的位置不会改变。当主库写入数据并改变位置时,可能会出现冲突。

当主库的binatylog文件存储的数据很多,即位置很大时。到时候会分割出一个新的binarylog文件,位置设置为0;

主从库的mysql版本可以不同,但​​从库的mysql版本是高于主库的版本。如果不是的话,那么主库中的语句到达从库时可能不会被执行。
因为mysql是向后兼容的,也就是说低版本的语句是支持的高版本中支持,但低版本中不支持高版本中的某些语句。版本不支持。

面试相关

(如果问数据库主从,必须问以下问题):

优点是什么主从?

主从原理是什么?

您了解数据库读取延迟问题吗?怎么解决?

当主从后主服务器崩溃了怎么办?

主从同步延迟的原因

主从同步延迟的原因

问题所在主从同步时延

1.主从同步延迟的原因

我们知道一个服务器会打开N个链接供客户端连接,所以会出现很大的并发。更新操作,但是从服务器中只有一个线程读取binlog。当某个SQL执行时间较长时e 在从服务器上执行或者因为某个SQL需要锁表,会导致主服务器上大量的SQL积压。 ,尚未同步到从服务器。这就导致了主从不一致,即主从延迟。

2.主从同步延迟的解决办法

其实主从同步延迟没有一站式的解决方案,因为所有的SQL都必须在从服务器上执行一次,但是如果主服务器继续连续写入更新操作,那么一旦出现延迟,加剧延迟的可能性就会更大。当然我们可以采取一些缓解措施。

a.我们知道,由于主服务器负责更新操作,因此它比从服务器具有更高的安全要求。可以修改一些设置,比如sync_binlog=1、innodb_flush_log_at_trx_commit = 1等设置,而slave不需要这么高的数据安全性。您可以设置同步_binlog 为 0 或关闭 binlog、innodb_flushlog 和 innodb_flush_log_at_trx_commit。也可以设置为0来提高SQL的执行效率。这样可以大大提高效率。另一种是使用比主库更好的硬件设备作为从库。

b.即从服务器作为备份,不提供查询。那边的负载减轻了,执行中继日志中的SQL的效率自然就更高了。

c.添加从服务器的目的是分散读取压力,从而减轻服务器负载。

读完本文,相信您对《mysql主从同步原理、配置及延迟实例分析》有了一定的了解。如果您想了解更多相关知识,欢迎关注行业资讯频道,感谢您的阅读!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 实例分析mysql主从同步原理、配置及延迟

用户评论