mysql master-slave
1.参考 【mysql8.0手册】https://dev.mysql.com/doc/refman/8.0/en/
【mysql doc】https://dev.mysql.com/doc/
【alibaba canal】https://github.com/alibaba/canal
2.概要 通过本文可以了解主从同步原理,快速搭建一个主从环境,实现复制场景,并且利用canal实现订阅binglog日志,实现跨实例同步。
中间件版本:
mysql-8.0.27
canal 1.1.5
3.主从同步 创建容错系统的最常见方法就是冗余,复制模式分普通复制、组复制,普通复制即传统的 MySQL复制 提供了一种简单的源(mater)到副本复制方法,。
master-slave syn MySQL 复制功能允许服务器 -主服务器 - 将所有更改发送到另一台服务器 -从服务器 -从服务器尝试应用所有更改以与主服务器保持同步。复制工作如下:
每当 master 的数据库被修改时,更改都会写入一个文件,即所谓的二进制日志或binlog。这是由执行修改数据库的查询的客户端线程完成的。
master 有一个线程,称为dump thread,它不断读取 master 的 binlog 并将其发送给 slave。
slave有一个线程,称为IO线程,它接收master的dump线程发送的binlog,并将其写入一个文件: relay log,show variables like ‘%relay%’。
从服务器有另一个线程,称为 SQL 线程,它不断读取中继日志并将更改应用到从服务器。
MySQL 复制功能使用三个主线程实现,一个在源服务器上,两个在副本上:
二进制日志转储线程。 当副本连接时,源创建一个线程将二进制日志内容发送到副本。该线程可以SHOW PROCESSLIST在源上的输出中标识为Binlog Dump线程。
二进制日志转储线程获取源二进制日志的锁,用于读取要发送到副本的每个事件。一旦事件被读取,锁就会被释放,甚至在事件被发送到副本之前。
复制 I/O 接收器线程。 当START REPLICA在副本服务器上发出一条语句时,副本会创建一个 I/O(接收器)线程,该线程连接到源并要求它发送记录在其二进制日志中的更新。
复制接收者线程读取源Binlog Dump线程发送的更新(参见上一项)并将它们复制到包含副本中继日志的本地文件。
该线程的状态显示 Slave_IO_running在 的输出中 SHOW SLAVE STATUS。
复制 SQL 应用程序线程。 副本创建一个 SQL(应用程序)线程来读取由复制接收器线程写入的中继日志并执行其中包含的事务。
Read More »
mysql master-slave
1.参考 【mysql8.0手册】https://dev.mysql.com/doc/refman/8.0/en/
【mysql doc】https://dev.mysql.com/doc/
【alibaba canal】https://github.com/alibaba/canal
2.概要 通过本文可以了解主从同步原理,快速搭建一个主从环境,实现复制场景,并且利用canal实现订阅binglog日志,实现跨实例同步。
中间件版本:
mysql-8.0.27
canal 1.1.5
3.主从同步 创建容错系统的最常见方法就是冗余,复制模式分普通复制、组复制,普通复制即传统的 MySQL复制 提供了一种简单的源(mater)到副本复制方法,。
master-slave syn MySQL 复制功能允许服务器 -主服务器 - 将所有更改发送到另一台服务器 -从服务器 -从服务器尝试应用所有更改以与主服务器保持同步。复制工作如下:
每当 master 的数据库被修改时,更改都会写入一个文件,即所谓的二进制日志或binlog。这是由执行修改数据库的查询的客户端线程完成的。
master 有一个线程,称为dump thread,它不断读取 master 的 binlog 并将其发送给 slave。
slave有一个线程,称为IO线程,它接收master的dump线程发送的binlog,并将其写入一个文件: relay log,show variables like ‘%relay%’。
从服务器有另一个线程,称为 SQL 线程,它不断读取中继日志并将更改应用到从服务器。
MySQL 复制功能使用三个主线程实现,一个在源服务器上,两个在副本上:
二进制日志转储线程。 当副本连接时,源创建一个线程将二进制日志内容发送到副本。该线程可以SHOW PROCESSLIST在源上的输出中标识为Binlog Dump线程。
二进制日志转储线程获取源二进制日志的锁,用于读取要发送到副本的每个事件。一旦事件被读取,锁就会被释放,甚至在事件被发送到副本之前。
复制 I/O 接收器线程。 当START REPLICA在副本服务器上发出一条语句时,副本会创建一个 I/O(接收器)线程,该线程连接到源并要求它发送记录在其二进制日志中的更新。
复制接收者线程读取源Binlog Dump线程发送的更新(参见上一项)并将它们复制到包含副本中继日志的本地文件。
该线程的状态显示 Slave_IO_running在 的输出中 SHOW SLAVE STATUS。
复制 SQL 应用程序线程。 副本创建一个 SQL(应用程序)线程来读取由复制接收器线程写入的中继日志并执行其中包含的事务。
Read More »