" name="sm-site-verification"/>
侧边栏壁纸
博主头像
PySuper 博主等级

千里之行,始于足下

  • 累计撰写 231 篇文章
  • 累计创建 15 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录
SQL

双主热备 VS 主从复制

PySuper
2022-06-26 / 0 评论 / 0 点赞 / 7 阅读 / 0 字
温馨提示:
所有牛逼的人都有一段苦逼的岁月。 但是你只要像SB一样去坚持,终将牛逼!!! ✊✊✊

双主热备和主从复制是两种常见的数据库复制和高可用性方案,它们在架构和应用场景上有一些显著的区别。

1、区别

双主热备

特点

  • 双向复制:在双主热备架构中,两个数据库实例都可以作为主库,数据可以在两个实例之间双向复制。这意味着任何一个实例上的写操作都会被复制到另一个实例

  • 高可用性:如果一个主库出现故障,另一个主库可以继续提供读写服务,从而实现高可用性

  • 负载均衡:可以通过在两个主库之间分配读写负载来实现负载均衡

  • 冲突处理:由于两个主库都可以进行写操作,可能会出现数据冲突,需要额外的机制来解决冲突(如时间戳、优先级等)

应用

  • 适用于需要高可用性和负载均衡的场景。

  • 适合地理上分布的应用程序,允许在不同位置进行写操作。

主从复制

特点

  • 单向复制:在主从复制架构中,数据从主库复制到一个或多个从库。从库通常只用于读操作。

  • 读写分离:主库负责写操作,从库负责读操作,从而减轻主库的负载。

  • 高可用性:如果主库出现故障,可以手动或自动将一个从库提升为主库。

  • 简单性:由于只有一个主库进行写操作,避免了数据冲突的问题。

应用

  • 适用于读多写少的应用场景。

  • 适合需要简单高可用性和读写分离的系统。

总结

  • 双主热备 提供了更高的可用性和负载均衡能力,但需要处理数据冲突的问题。

  • 主从复制 提供了简单的读写分离和高可用性,适合读多写少的场景。

2、配置

双主热备

双向复制配置:每个主库都需要配置为对方的从库。这意味着你需要在两个数据库实例上分别设置 CHANGE MASTER TO 指令,以便它们可以相互复制

冲突处理:由于两个主库都可以进行写操作,可能会出现数据冲突。需要设计应用程序逻辑或使用数据库特性(如时间戳、优先级)来解决冲突。

自动故障转移:需要额外的机制来检测故障并自动切换主库角色。可以使用工具如 MHA(Master High Availability)或 Orchestrator 来实现

负载均衡:可以在应用层或通过代理(如 ProxySQL)实现负载均衡,将读写请求分配到两个主库

网络配置:确保两个主库之间的网络连接稳定,以支持双向复制

主从复制

单向复制配置:只需在从库上配置 CHANGE MASTER TO 指令,使其从主库复制数据

读写分离:主库负责写操作,从库负责读操作。可以通过应用程序逻辑或代理(如 ProxySQL)实现读写分离

故障转移:如果主库故障,可以手动或自动将一个从库提升为主库。可以使用工具如 MHAOrchestrator 来实现自动故障转移

简单性:由于只有一个主库进行写操作,配置相对简单,不需要处理数据冲突

从库延迟:监控从库的复制延迟,确保数据一致性。可以通过调整 slave_parallel_workers 等参数来优化复制性能

总结

  • 双主热备 需要更复杂的配置和冲突处理机制,但提供了更高的可用性和负载均衡能力。

  • 主从复制 配置相对简单,适合读多写少的场景,提供了基本的高可用性和读写分离。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区