单主复制是什么
单主复制把写入集中到主节点,副本按顺序重放主库的变更日志。实现简单、写入冲突天然不存在,是多数关系型数据库的默认形态;限制是写入无法横向扩展,主节点故障时需要切换,切换期间的可用性与数据完整性都要单独设计。
同步程度怎么选
同步复制在主库返回前等待副本确认,延迟高但不会丢数据;异步复制主库提交即返回,延迟低但故障切换可能丢失最近的写入;半同步要求至少一个副本确认,是延迟与丢数据窗口之间的折中。选择依据是业务能接受多大的恢复点,而不是哪种配置更常见。
复制模式
| 复制模式 | 确认时机 | 风险 |
|---|---|---|
| 同步复制 | 等待副本确认后返回 | 延迟高,副本故障会影响写入 |
| 异步复制 | 主库提交即返回 | 故障切换可能丢失最近写入 |
| 半同步 | 至少一个副本确认 | 折中:兼顾延迟与丢数据窗口 |
基本信息
| 副本用途 | 读扩展、报表查询、备份与容灾 |
|---|---|
| 一致性 | 异步复制下副本可能落后于主库 |
| 切换风险 | 未同步到副本的写入在故障时丢失 |
| 常见部署 | 一主多从,主库不承担在线读流量 |
典型使用场景
- 读多写少业务:主库负责写,多副本分摊查询
- 报表与离线分析:独立副本承担大查询,避免影响在线
- 容灾与演练:副本可随时被提升为主库
- 备份窗口:在副本上执行备份,避免影响主库性能
- 地理就近读:把副本部署在离用户更近的区域
异步复制下的故障切换要明确可接受的数据丢失窗口,并与业务方确认;只写技术方案不确认业务容忍度,切换后才发现丢失的是关键交易记录。