数据库复制:开源工具和选项

复制是在多个地方共享/存储信息以确保可靠性、容错性和可访问性的过程。复制选项说明如下:

主动/主动复制
主动/被动复制
许多 RDBMS(关系数据库管理系统)支持数据库复制,以将数据从主数据库系统复制到辅助数据库系统。数据库复制对于主动/主动复制来说是复杂的,特别是对于使用水平缩放功能的系统。数据库复制如图 1 所示,其中 Web/企业应用程序的写入和读取操作不同。复制系统将始终与主数据库同步。在数据库复制过程中将考虑 CAP(一致性、可用性和分区容错性)以避免数据复制问题。

为 Web/企业应用程序的单独读取操作复制数据

图 1:为 Web/企业应用程序的单独读取操作复制数据

数据复制对于企业系统在跨网络的多个节点中维护数据以确保数据可用性至关重要。关键方面包括以下内容:

多个地方的数据可用性
节点间数据的可靠性
数据冗余 
如果数据损坏或丢失,则进行数据恢复
开源数据复制工具
许多组织根据其业务需求更喜欢使用开源工具进行数据迁移。有各种商业和开源工具可用于数据迁移。本文讨论了过去几年在开源市场上流行的四种工具。

副本数据库
这是最流行的开源数据复制工具,用于将批量数据从关系数据库传输到关系/NoSQL 数据库。它卸载了 ETL 活动。目前,支持的数据库有:

甲骨文
Postgres
数据库服务器
MySQL 
数据库
德诺多
本地文件或 Amazon S3 上的 CSV
卡夫卡
ReplicaDB 是一个可以支持任何平台的命令行工具。来自 Kafka 等系统的流数据不支持 ReplicaDB。

副本数据库信息图像

图 2:图片来源 -  GitHub 上的 ReplicaDB

对称DS
这个用于数据库的开源复制工具支持过滤同步、多主复制和转换功能等功能。它可以压缩许多数据库并跨不同平台复制数据。使用 SymmetricDS,以异构方式从数据库同步到数据库。表和列级同步配置可用。数据迁移是单向/多向的。高级架构如图 3 所示。

使用 SymmetricDS 从 Oracle 到 MySQL 的数据复制

图 3:使用 SymmetricDS 从 Oracle 到 MySQL 的数据复制

其他功能包括事务感知功能,其中记录和回放更改。在多主复制中,自动检测并解决冲突。通信使用推/拉。 

天赋
使用Talend的开源复制工具将数据源整合到干净和完整中。超过 1000 多个连接器可用于连接云中或本地的任何数据源。通过拖放功能使用 GUI 界面轻松开发数据管道。内部使用Spark平台支持无时间线的海量数据复制。Talend 与包括 Amazon、Azure 和 Google 在内的主要供应商合作提供数据复制解决方案。Talend 被评为 2022 年 Gartner 数据集成工具魔力象限。商业版本也可用于数据复制。

使用 Kafka 进行复制
目前,大多数应用程序都在转向使用Kafka的实时处理架构。因此,数据驻留在流式平台中,需要将数据从流式平台复制到 DB/NoSQL/其他系统。使用 Apache Kafka 和 Kafka 连接器框架将数据从源数据库复制到目标/目标数据库。图 4 提供了高级架构。

Apache Kafka 和 Kafka Connector 之间的数据复制

图 4:Apache Kafka 和 Kafka Connector 之间的数据复制

高级流程步骤如下:

启用源数据库表上的更改数据捕获 (CDC) 以进行复制
Kafka DB 连接器从源数据库读取 CDC 并将数据推送到 Kafka 主题
JDBC 接收器连接器:从源/目标数据库的 Kafka 主题中推送/拉取数据(按表配置)

猜你喜欢

转载自blog.csdn.net/wouderw/article/details/128179453