- 什么是复制(Replication)
- MySQL复制架构
- 感谢
什么是复制(Replication)
复制技术是MySQL高级特性的基础。它可以将数据从一个 MySQL 实例复制到另一个实例,从而实现数据的同步和备份。
MySQL复制架构
以下是MySQL复制架构的基本组成部分和工作原理:
- 主服务器 (master) 将所有数据和结构更改记录到二进制日志中。
- 数据更改就是DML执行的更改,而数据结构就是数据字典的更改。
- 二进制日志是一种二进制格式的日志文件,记录了数据库中发生的所有重要更改,包括插入、更新、删除等操作,以及数据库结构的更改。
- 二进制日志的格式可以是基于语句的(Statement-Based)、基于行的(Row-Based)或混合的(Mixed-Based),具体的格式由 MySQL 配置中的 binlog_format 参数决定。不同的格式适用于不同的使用情景,可以在配置文件中进行设置。
- 从属服务器 (slave) 从主服务器请求二进制日志并在本地应用其内容。
- 从属服务器是主服务器的副本,它们用于复制主服务器上的数据和结构更改。
- 主服务器将二进制日志的内容发送给从属服务器,从属服务器将这些事件应用到自己的数据库中,以保持与主服务器的数据同步。
- 从属服务器还记录了每个事件的状态,以便在发生服务器重启、网络故障或其他故障情况时,可以从停止的位置继续复制,而不必重新复制所有数据。
- 复制线程:从属服务器上运行的复制线程负责连接到主服务器并请求二进制日志,然后将事件应用到本地数据库。复制线程会维护复制的状态,以便在发生故障或中断时可以从停止的位置继续复制。
- 复制拓扑:MySQL复制支持多种复制拓扑,包括一对多关系、中继从属服务器、双向复制、循环复制和多源复制等。这些拓扑允许数据更改在多个服务器之间传播,以满足不同的需求。
整个复制的过程简单来说就是:主服务器中有一个转储线程,它把二进制日志发送给从属服务器,从属服务器的IO线程就会将二进制日志收集起来重新生成一个二进制日志,叫做中继日志,接着sql线程就会实施应用。
感谢
好啦,这次的分享就到这里,感谢大家看到这里