码农世界

2022-01-03 11:14

Mysql 复制架构 数据库复制的其实就是数据的同步,Mysq

Mysql 复制架构

数据库复制的其实就是数据的同步,Mysql数据库基于binary log日志进行数据增量同步,binary log 日志记录了所有对Mysql数据库的修改操作。
查看:show binlog_events in 'binlog.000001'或者:mysqlbinlog -vv 'binlog.000001'

如下图所展示:
1. Master 服务器将数据变更产生的二进制日志通过Dump线程发送给Slave服务器。
2. slave服务器的I/O线程负责接收日志数据,保存为中继日志。
3. slave服务器的worker线程负责执行中继日志,完成在slave服务器回放Master的日志。

操作步骤:
1. 创建复制的账号,赋权。
2. 从Master服务器上通过mysqldump工具拷贝全量数据。
3. 通过命令change master to 搭建复制关系。
4. 通过命令show slave status 观察复制状态。

建议配置:
gtid_mode = on
enforce_gtid_consistency = 1
binlog_gtid_simple_recovery = 1
relay_log_recovery = ON
master_info_repository = TABLE 
relay_log_info_repository = TABLE
可以保证无论是Master还是Slave宕机恢复后,数据一致。

Mysql复制分类:
1. 异步复制,Master和Slave 相互不依赖,性能最好,用在数据不太重要,容易丢失,比如日志监控场景。
2. 多源复制,多个Master复制到一台Slave上,便于做统计。
3. 延迟复制,Slave延迟回放收到的二进制日志,防止Master上误操作被同步到Slave上:
4. 半同步复制: Master在事务提交的过程中,至少N个Slave已经接收到了二进制日志,确保Master宕机时候,至少N台Slave的数据是完整的,用于核心业务场景。
CHANGE MASTER TO master_delay = 3600

实战可以参考:头条号
举报
评论 0