网站需要条件在线制作效果图
- 作者: 五速梦信息网
- 时间: 2026年03月21日 07:24
当前位置: 首页 > news >正文
网站需要条件,在线制作效果图,买房子,哪里网页建设便宜大家好#xff0c;这里是Good Note#xff0c;关注 公主号#xff1a;Goodnote#xff0c;本文详细介绍 MySQL的主从复制#xff0c;从原理到配置再到同步过程。 文章目录 简介核心组件主从复制的原理作用主从复制的线程模型主从复制的模式形式复制的方式设计复制机制主从… 大家好这里是Good Note关注 公主号Goodnote本文详细介绍 MySQL的主从复制从原理到配置再到同步过程。 文章目录 简介核心组件主从复制的原理作用主从复制的线程模型主从复制的模式形式复制的方式设计复制机制主从复制的配置步骤优化和改进总结 历史文章 简介
MySQL 主从复制Replication是一种数据分布和同步的技术通过将主库Master的数据和操作复制到一个或多个从库Slave实现数据的同步和备份。它常用于读写分离、数据容灾、数据分布等场景。
核心组件 主库Master 负责记录所有数据变更操作到 Binary Log 中。通过网络将 Binary Log 提供给从库。 从库Slave 负责从主库获取 Binary Log并通过中继日志Relay Log将其重放在本地最终实现与主库的数据同步。 二进制日志Binary Log 主库记录所有数据变更的日志文件。包含数据变更的具体操作语句或行数据。 中继日志Relay Log 从库将主库发送的 Binary Log 存储为中继日志。从库 SQL 线程根据中继日志执行对应的操作。 主从复制的原理 基于二进制日志Binary Log MySQL 主从复制依赖主库的二进制日志Binary Log。主库将所有数据变更操作如 INSERT、UPDATE、DELETE记录到 Binary Log 中。 复制过程 日志同步从库向主库请求二进制日志从主库读取日志文件中最近的更新操作。日志重放从库接收到二进制日志后存储到自己的中继日志Relay Log并重放这些操作以保持与主库数据一致。 主从独立运行 主库和从库的操作相互独立从库的备份操作不会干扰主库主库可以继续处理写操作。 作用 数据冗余宕机保护 数据冗余在从库上保存主库的数据副本防止数据丢失。宕机保护主库宕机时可以快速启用从库保障业务连续性。 读写分离性能提升 支持读写分离主库处理写操作从库处理读操作。流量分担多台从库分担主库的查询压力提升系统性能。 扩展性 易于扩展通过增加从库节点应对流量增长。平滑升级可以优先升级从库验证新版本的稳定性后再升级主库。 负载均衡 多从库分担读流量实现负载均衡提升并发能力。 主从复制的线程模型
主从复制主要涉及以下线程 主库线程 Binlog Dump 线程主库为每个从库分配一个 Binlog Dump 线程将 Binary Log 发送到从库。 从库线程 I/O 线程从库从主库拉取 Binary Log 并保存为 Relay Log。SQL 线程从库读取 Relay Log并将日志中的操作在从库中重放。 主从复制的模式 异步复制Asynchronous Replication 主库提交事务后立即返回客户端从库异步同步数据。延迟低但存在数据丢失风险。默认复制模式。主库不等待从库的确认即完成事务提交。延迟低但如果主库崩溃可能会导致从库数据不一致。 半同步复制Semi-Synchronous Replication 主库在事务提交后会等待至少一个从库确认接收 Binary Log。才返回客户端。特点 提高数据安全性。延迟较低但仍比异步复制稍高。从 MySQL 5.5 开始支持需要插件。 全同步复制Synchronous Replication 主库必须等待从库同步完成后才向客户端返回写入成功。延迟较高但数据一致性强。所有从库都确认接收到 Binary Log 后主库才提交事务。数据一致性最高但性能损耗较大。 形式 一主一从 简单高效的主从架构适用于小型系统或简单业务场景。特点 支持基本的高可用性。从库可用于查询、备份等主库专注写操作。 一主多从 主库将数据同步到多个从库适合读多写少的场景。特点 提升并发能力实现负载均衡。每个从库可以分配特定任务如查询或备份。 多主一从 多个主库的数据同步到一台从库。特点 用于整合不同业务线的数据到一个中心数据库。对从库的存储性能要求较高。 补充由于主库间没有自动同步需确保主库之间的写操作不会冲突。 双主复制 两台服务器互为主从支持双机热备。特点 任一主库宕机后另一主库可继续提供服务。双向同步数据一致性需谨慎处理防止循环复制或冲突。 适用场景 高可用场景如业务不允许服务中断。 级联复制 一些从库直接从主库同步数据其他从库通过这些从库同步。特点 缓解主库压力。降低主库对网络带宽的依赖。 适用场景 大规模分布式系统。
一主一从和一主多从是我们现在见的最多的主从架构使用起来简单有效不仅可以实现高可用而且还能读写分离进而提升集群的并发能力。 复制的方式 基于语句的逻辑复制Statement-Based Replication, SBR 特点 二进制日志记录 SQL 语句操作逻辑在从库重放。日志体积小传输效率高。 缺点 语句重放依赖于上下文环境可能导致主从数据不一致如 NOW() 或 UUID() 生成的值不同。基于语句更新依赖于其它因素比如插入数据时利用了时间戳。因此在开发当中我们应该尽量将业务逻辑逻辑放在代码层创建时间不应该是mysql的创建时间而不应该放在 MySQL 中不易拓展。多表操作或复杂查询时性能可能不理想。 适用场景 操作简单且可预测的业务场景。设表里有一百万条数据一条sql更新了所有表基于语句的复制仅需要发送一条sql而基于行的复制需要发送一百万条更新记录 基于行的物理复制Row-Based Replication, RBR 特点 二进制日志记录每一行的数据变更直接同步数据。精确可靠不受上下文影响。 缺点 日志体积大占用更多存储和带宽。 适用场景 数据更新频繁且对数据一致性要求较高的场景。例如一条更新用户总积分的语句需要统计用户的所有积分再写入用户表。如果是基于语句复制的话从库需要再一次统计用户的积分而基于行复制就直接更新记录无需再统计用户积分。 混合复制Mixed Replication, MIXED 特点 默认使用语句复制当遇到复杂场景如函数、触发器时切换为行复制。动态选择复制方式兼具两种方式的优点。 缺点 复杂度较高需要额外的资源判断何时切换。 适用场景 通用场景特别是既有简单语句又有复杂操作的业务。 设计复制机制 以下是主从复制的详细执行流程 主库写入 Binary Log 任何修改数据的操作如 INSERT、UPDATE、DELETE都会记录到主库的 Binary Log。 从库 I/O 线程拉取 Binary Log 从库的 I/O 线程向主库请求 Binary Log。主库会生成一个 log dump 线程将 Binary Log 发送给从库。 从库存储中继日志 从库将主库的 Binary Log 存储为中继日志Relay Log。 从库 SQL 线程执行 Relay Log 从库的 SQL 线程读取 Relay Log将日志中的操作在从库重放完成数据同步。 后续新数据到达主库 主库执行写操作后事务提交时会将修改记录写入 Binary Log。主库的 Log Dump 线程实时检测 Binary Log 更新并通过长连接主动推送到从库。
注意 同步过程是实时推送日志。 第一次连接从库的 I/O 线程主动向主库发起请求同步历史数据。 后续新数据到达主库主库主动推送新数据实时同步到从库。 长连接保持从库的 I/O 线程与主库的 Log Dump 线程建立长连接。从库无需反复发起请求去检查主库是否有新数据而是等待主库通过长连接推送新的日志。 长连接保持的关键在于 TCP 持久连接从库的 I/O 线程与主库的 Log Dump 线程通过 TCP 连接持续通信。复制心跳机制即使主库没有新数据生成也会定期发送心跳包保持连接活动。自动重连机制当连接意外中断时从库的 I/O 线程会自动尝试重新连接主库。 MySQL 设计了完整的断点续传和自动重连机制确保长连接断开后可以尽快恢复。 从库记录了上次成功同步的日志位置MASTER_LOG_FILE 和 MASTER_LOG_POS。重新连接后从库会从上次中断的位置继续同步避免重复同步或数据丢失。 主从复制的配置步骤 配置主库Master 启用 Binary Log[mysqld]
log-binmysql-bin
server-id1重启 MySQL 服务。 配置从库Slave 设置从库的 server-id[mysqld]
server-id2连接主库CHANGE MASTER TO
MASTER_HOST主库IP,
MASTER_USER复制用户,
MASTER_PASSWORD密码,
MASTER_LOG_FILEmysql-bin.000001,
MASTER_LOG_POS120;启动从库复制START SLAVE;验证主从复制状态 在从库执行SHOW SLAVE STATUS\G;优化和改进 使用半同步复制 提高数据一致性降低数据丢失风险。 多线程复制 MySQL 5.6 开始支持多线程复制Parallel Replication从库的 SQL 线程可以并行处理不同表的数据提升同步效率。 监控和告警 定期检查主从同步状态SHOW SLAVE STATUS。设置告警系统监控复制延迟、复制状态。 主从自动切换 使用高可用工具如 MHA、Keepalived、Orchestrator实现主从自动切换避免主库故障时人工干预。 总结
MySQL 主从复制是实现高可用性和负载均衡的重要机制。通过合理的复制模式配置如半同步、并行复制以及结合监控和自动化工具可以显著提高数据库系统的性能和可靠性。同时了解主从复制的缺点如数据延迟和单点故障并采取适当的优化措施可以进一步提升系统的稳定性。
历史文章
MySQL数据库笔记——数据库三范式MySQL数据库笔记——存储引擎InnoDB、MyISAM、MEMORY、ARCHIVEMySQL数据库笔记——常见的几种锁分类MySQL数据库笔记——索引介绍MySQL数据库笔记——事务介绍MySQL数据库笔记——索引结构之B树MySQL数据库笔记——索引潜规则回表查询、索引覆盖、索引下推MySQL数据库笔记——索引潜规则最左前缀原则MySQL数据库笔记——常见慢查询优化方式MySQL数据库笔记——日志介绍MySQL数据库笔记——多版本并发控制MVCC
- 上一篇: 网站需要哪些费用app小游戏开发公司
- 下一篇: 网站续费多少钱购物网站功能详细介绍
相关文章
-
网站需要哪些费用app小游戏开发公司
网站需要哪些费用app小游戏开发公司
- 技术栈
- 2026年03月21日
-
网站需要建手机版的吗网站的建设及推广
网站需要建手机版的吗网站的建设及推广
- 技术栈
- 2026年03月21日
-
网站需要加wordpress好学校平台网站模板下载安装
网站需要加wordpress好学校平台网站模板下载安装
- 技术栈
- 2026年03月21日
-
网站续费多少钱购物网站功能详细介绍
网站续费多少钱购物网站功能详细介绍
- 技术栈
- 2026年03月21日
-
网站宣传策略天津建设教育培训中心网
网站宣传策略天津建设教育培训中心网
- 技术栈
- 2026年03月21日
-
网站宣传创意视频南极电商是做什么的
网站宣传创意视频南极电商是做什么的
- 技术栈
- 2026年03月21日
