楚雄建网站,建立简单网站,做网站需要到什么技术,哪家公司的网好文章目录 1. 简介2. 基本原理3. 实现方式4. 常见的主从架构模式4.1 一主一从4.2 一主多从4.3 双M4.4 联级复制4.5 多主一从 5. 常见问题 1. 简介
MySQL主从同步是一种数据库复制技术#xff0c;它可以将一台MySQL数据库#xff08;称为主服务器#xff09;的数据复制到另一… 文章目录 1. 简介2. 基本原理3. 实现方式4. 常见的主从架构模式4.1 一主一从4.2 一主多从4.3 双M4.4 联级复制4.5 多主一从 5. 常见问题 1. 简介
MySQL主从同步是一种数据库复制技术它可以将一台MySQL数据库称为主服务器的数据复制到另一台或多台MySQL数据库称为从服务器。主从同步可以用于以下目的
数据备份: 主从同步可以将主服务器的数据复制到从服务器从而实现数据的备份。读写分离: 可以将主服务器配置为只读并将读操作分流到从服务器从而减轻主服务器的负载。高可用性: 如果主服务器发生故障可以将从服务器提升为主服务器从而保证数据库的高可用性。
2. 基本原理
主服务器将所有数据变更记录到二进制日志binlog中。从服务器连接到主服务器并从主服务器的二进制日志中获取数据变更信息。从服务器将获取到的数据变更信息应用到自己的数据库中从而使主服务器和从服务器的数据保持一致。
3. 实现方式
1. 基于语句的复制STATEMENT
主服务器将所有数据变更语句例如INSERT、UPDATE、DELETE等复制到从服务器从服务器再执行这些语句来实现数据同步。 在 MySQL5.0 以前只支持基于语句的复制。基于语句的复制模式下主库会记录那些造成数据更改的操作当备库读取并重放这些操作时实际上只是把主库上的SQL执行一遍。好处是实现简单简单的记录并执行这些语句能让主备保持同步。 但实际上基于语句的复制方式有时会出问题。因为主库上的数据更新除了执行的语句外可能还依赖于其他因素例如同一条 SQL 在主库和备库上的执行时间可能稍有不同因此在传输带 binlog 中还包括一些元数据信息如当前的时间戳还存在着一些无法被正确复制的 SQL例如CURRENT_USER() 函数的语句。存储过程和触发器在使用基于语句的复制模式时也可能存在问题。
2. 基于行的复制ROW
主服务器将数据变更记录的二进制日志以行的形式复制到从服务器从服务器再应用这些变更来实现数据同步。 MySQL5.1开始支持基于行复制这种方式会将实际的数据记录在 binlog 中跟其他数据库的实现很像。基于行复制的模式有优点也有缺陷。好处是可以正确的复制每一行一些语句可以被更加有效的复制。也有一些情况基于行复制的代价会比较大例如
update tb_user set age10;由于这条 SQL 会更新全表使用基于行的开销会很大因为每一行的数据都会记录到 binlog 中这使得 binlog 文件庞大并且会给主库增加额外的负载。
3. 混合模式MIXED
以上两种模式的混合使用一般的复制使用 STATEMENT 模式保存 binlog对于 STATEMENT 模式无法复制的操作使用 ROW 模式保存 binlogMySQL 会根据执行的 SQL 语句选择日志保存方式。 因为两种模式各有优缺点以及使用的场合所以 MySQL 支持在这两种复制模式中动态切换MIXED模式MySQL8.0 默认使用基于行复制的方式理论上基于行的复制模式在整体上更优且在实际应用中适用于大多数场景,当然也可以使用参数 binlog_format 手动指定复制的模式。
4. 常见的主从架构模式
4.1 一主一从
一主一从模式是最简单的主从架构模式它由一个主节点和一个从节点组成。主节点负责处理所有写操作并将其变更同步到从节点。从节点负责处理所有读操作并从主节点获取最新数据。
优点:
结构简单易于理解和实现。成本低只需两台服务器即可。性能提升读操作可以分流到从节点。
缺点:
可用性较低如果主节点故障则整个系统不可用。 -扩展性较差只能通过增加主节点的性能来提升读写能力。
适用场景: 对读写性能要求不高对可用性要求较高的场景例如小型网站、数据库等。
4.2 一主多从
一主多从模式由一个主节点和多个从节点组成。主节点负责处理所有写操作并将其变更同步到所有从节点。从节点负责处理所有读操作并从主节点获取最新数据。
优点:
性能提升读操作可以分流到多个从节点。可用性提升如果主节点故障可以将其中一个从节点提升为主节点。扩展性较好可以通过添加从节点来提升读能力。
缺点:
成本较高需要多台服务器来部署从节点。数据一致性问题当主节点发生故障时从节点的数据可能不一致。
适用场景: 对读写性能要求较高对可用性要求较高的场景例如大型网站、数据库等。
4.3 双M
双M模式由两个主节点和多个从节点组成。两个主节点之间相互同步数据并各自负责一部分写操作。从节点从两个主节点获取最新数据并负责处理所有读操作。
优点:
可用性更高即使一个主节点故障另一个主节点也可以继续提供服务。数据一致性更好两个主节点之间相互同步数据可以保证数据一致性。
缺点:
成本较高需要多台服务器来部署主节点和从节点。复杂度较高需要维护两个主节点之间的同步。
适用场景: 对读写性能要求较高对可用性和数据一致性要求较高的场景例如金融系统、电商系统等。
4.4 联级复制
联级复制模式是一种特殊的一主多从模式它将从节点组织成一个链条每个从节点只与相邻的两个节点同步数据。
优点:
节省带宽每个从节点只需要与相邻的两个节点同步数据。提高扩展性可以很容易地添加新的从节点。
缺点:
数据一致性问题如果某个从节点故障可能会导致数据不一致。复杂度较高需要维护从节点之间的同步链条。
适用场景: 对读写性能要求不高对扩展性要求较高的场景例如大型分布式系统等。
4.5 多主一从
多主一从模式由多个主节点和一个从节点组成。每个主节点都负责处理一部分写操作并将其变更同步到从节点。从节点负责处理所有读操作并从所有主节点获取最新数据。
优点:
读性能高可以并行从多个主节点读取数据。扩展性好可以很容易地添加新的主节点。
缺点:
数据一致性问题当主节点之间存在冲突时从节点的数据可能不一致。复杂度较高需要维护主节点之间的数据一致性。
适用场景: 对读性能要求较高对数据一致性要求不严格的场景例如数据分析系统、报表系统等。
5. 常见问题
主从服务器的版本是否一致: 主从服务器的版本必须一致否则无法进行同步。主从服务器的配置是否正确: 主从服务器的配置必须正确否则无法进行同步。主从服务器的网络连接是否正常: 主从服务器之间必须能够正常通信否则无法进行同步。