数据实时同步典型问答(一)
· 阅读需 6 分钟
简介
在数据实时同步领域深耕多年,我们常常会被问到或者遇到一些重复的问题,有些回答随着我们经历的业务场景增多有所变化,但大部分都经得起推敲。我们将整理常见问题,并持续分享。
本期问题目录:
- 数据库官方工具与第三方工具如何选择?
- 业务能依赖实时同步工具的延迟吗?
- 数据库实时同步工具为业务带来的真正价值是什么?
- 同步工具能保持长期稳定和不丢数据吗?
数据库官方工具与第三方工具如何选择?
一般成熟的数据库厂商会自带数据迁移、冷/热备份工具,甚至有一些厂商会提供完整的数据同步解决方案。
经过大量实践验证,我们总结出以下关键点:
官方工具优势:
- 相对来说具备最好的迁移同步性能。
- 能规避数据库自身的特定缺陷。
- 支持第三方工具难以实现的特殊场景(如 Oracle GoldenGate 解析 Redo 日志)。
官方工具局限:
- 对其他数据库支持有限或缺失。
- 面向通用场景,特殊需求支持不足。
- User Lock-in 倾向,数据进出难度不对等。
选型建议:
推荐按照场景来选择:
- 涉及数据库本身运维的场景,如冷/热备份、同构迁移同步,推荐用官方工具。
- 涉及异构数据迁移同步的场景,如关系型数据库到数据仓库/消息中间件/缓存/搜索引擎等,推荐用第三方工具。
- 涉及特殊场景,如对数据进行过滤、计算,推荐用第三方工具。
- 官方工具不支持但第三方工具支持的场景,推荐用第三方工具。
业务能依赖实时同步工具的延迟么?
简单来说,非分布式事务保障的数据同步,都有延迟的风险。而分布式事务也不是没有代价,一般通过复制冗余和牺牲业务写入延迟(或中断)确保一致性。
数据同步的延迟分为 故障性延迟 和 业务性延迟,以下通过例子简要进行说明。
故障性延迟
- 同步工具自身问题,包括内存紧张、逻辑 bug 等。
- 源端或者对端数据库故障,前者拉不到数据,后者写入不了数据或者写入慢。
- 对端数据存在约束冲突,写入报错。
- 对端数据结构不完整,写入报错。
业务性延迟
- 源端数据库导入数据或订正数据,导致流量增大。
- 业务高峰流量超出同步工具处理能力。
虽然通过 任务调优、