需要在 Oracle、PG、MySQL 之间比较数据吗?这个开源免费工具不错

数据库 PostgreSQL
传统的数据比较方法,通常涉及容易出错且需要大量维护的人工操作流程或脚本。许多解决方案依赖于比较行数,这并不能证明数据确实相同。

介绍

在不断发展的数据管理世界中,确保多个数据库系统的一致性和准确性至关重要。无论您在迁移数据、同步系统还是执行例行审计,跨不同数据库平台比较数据的能力都相当重要。pgCompare 是一个开源工具,旨在简化和增强 PostgreSQL、Oracle、MySQL 和 SQL Server 数据库之间的数据比较过程。

pgCompare 的主要功能有:

• 多数据库支持:pgCompare 能够跨四个主要数据库系统(PostgreSQL、Oracle、MySQL 和 SQL Server)进行连接和比较数据,故而能脱颖而出。这种多数据库支持对于管理各种数据库技术的组织相当重要。

• 比较报告:pgCompare 会生成详细的报告,突出显示数据集之间的差异。这些报告包括有关缺失记录、不匹配值的信息,和摘要统计信息,使用户能够快速识别和解决不一致的问题。

• 存储的结果:结果存储在一个 PostgreSQL 数据库中,用于跟踪比较历史、当前状态和告警。

• 灵活的比较选项:用户可以使用各种选项来自定义他们的比较,例如一些转换数据和排除特定列的选项。这种灵活性可以为满足特定的要求,对比较过程进行定制化。

• 性能和可扩展性:pgCompare 在构建时考虑了性能,可高效处理大型数据集,同时将对源端和目标端系统的影响降至最低。其灵活的架构确保它可以满足小型和大型数据集的需求。

pgCompare 入门

PgCompare 是一个开源工具,任何人都可以免费使用,并且 pgCompare 的入门非常简单。该工具可以从官方 git 仓库下载,用户可以在其中找到详细的文档和教程,以帮助他们配置和运行他们的第一次比较。凭借其强大的功能集和易用性,pgCompare 致力成为一款数据库专业人士不可或缺的工具。

pgCompare 作为应用程序会在您选择的位置运行,可以是本地机器,也可以是更靠近数据存储的远程机器。pgCompare 会创建一个单独的 Postgres 数据库,用于运行查询以从远程数据存储中获取数据。您可在 dc_table 中为比较进行详细的配置。

在编译 Java 源代码后(有关详细信息,请参阅项目 readme 文件),第一步是将 pgcompare.properties.sample 文件复制到 pgcompare.properties,并对存储库、目标数据库和源数据库进行必要的编辑。在属性文件准备好后,使用 pgcompare 初始化存储库。

java -jar pgcompare.jar --init

在 git 仓库中的 database 目录下,有一个示例表。如果还没有表,可以将 HR.EMP 表添加到您选择的源数据库和目标数据库。

执行比较之前的最后一步是,将表注册到 pgCompare 存储库。为此,只需在执行 pgCompare 时,使用 discovery 标志,后跟它应该对其进行检测的模式(本例中为 hr)。

java -jar pgcompare.jar --discovery hr

要比较数据库,您需要运行如下操作:

java -jar pgcompare.jar --batch=0

比较操作的摘要输出,将会在任务结束时显示:

Reconciliation Complete: Table = emp; Equal = 21; Not Equal = 1; Missing Source = 1; Missing Target = 0
Processed 1 tables
Table Summary: Table = emp; Status = out-of-sync; Equal = 21; Not Equal = 1; Missing Source = 1; Missing Target = 0
Run Summary: Elapsed Time (seconds) = 7; Total Rows Processed = 23; Total Out-of-Sync = 2; Through-put (rows/per second) = 3

最后,如果存在有差异的行,要获得每行的详细信息以及进行重新验证,可以使用 check 选项:

java -jar pgcompare.jar --batch=0 --check

在检查执行完后,会显示出有关差异行的详细信息:

Primary Key: {"eid":23}
  Out-of-Sync:  PK = {"eid": 23};  Differences = [{"LAST_NAME":{"source":"Runner","target":"Pace"}}]
Primary Key: {"eid":22}
  Out-of-Sync:  PK = {"eid": 22};  Differences = ["Missing Source"]

pgCompare 应用场景

数据迁移

在将数据从一个数据库平台迁移到另一个数据库平台时,确保所有记录都已准确传输至关重要。例如,在 Oracle 到 Postgres 的迁移过程中,就可以使用此工具验证数据。在停用旧系统之前,创建一个验证数据一致性的数据验证任务也很有用。

数据同步

对于同时运行多个数据库的组织,保持这些系统之间的同步相当重要。对于双活配置的需求持续增长。这些解决方案使用的逻辑复制会带来风险。为了控制这种风险,引入了补偿控制,pgCompare 有助于定期检查和同步不同数据库之间的数据。

合规遵从性

许多行业都需要定期审计,以确保数据准确性和合规性。pgCompare 能提供清晰详细的比较报告,简化了审核的过程。审计师和监管机构始终需要证据证明没有出现数据差异。pgCompare 的输出对于满足此要求非常有用。

质量保证

在开发和测试环境中,pgCompare 可用于验证数据在应用程序开发和部署的各个阶段是否保持一致。如果使用了不正确或过时的数据执行测试,则可能会增加生产版本的风险。

pgCompare 的亮点特性

传统的数据比较方法,通常涉及容易出错且需要大量维护的人工操作流程或脚本。许多解决方案依赖于比较行数,这并不能证明数据确实相同。pgCompare 通过提供可靠的自动化解决方案,来降低错误风险并节省宝贵的时间,从而彻底改变了这一过程。

• 效率:自动化数据比较,减少了手动检查所需的时间和精力,使数据库管理员和数据工程师能够专注于更有意义的任务。

• 准确性:通过利用高级算法,pgCompare 可确保精确识别差异,从而提高数据完整性。

• 集成:pgCompare 支持多个数据库,可无缝集成到不同的 IT 环境中,使其成为适用于任何组织的多功能工具。

在数据准确性和一致性至关重要的世界中,pgCompare 提供了一种可靠、高效且可扩展的解决方案,用于比较 PostgreSQL、Oracle、MySQL 和 SQL Server 数据库中的数据。无论您是数据库管理员、数据工程师还是 IT 经理,pgCompare 都是您需要的工具,可确保数据保持一致性和可靠性。

使用 pgCompare 拥抱数据比较的未来,并转变您管理多数据库环境的方式。

责任编辑:武晓燕 来源: 红石PG
相关推荐

2018-03-01 10:30:11

MYSQL开源数据库

2019-02-27 14:42:21

免费工具数据

2011-06-23 14:34:38

MySQL

2023-11-17 11:26:36

数据库监控工具

2011-09-05 10:11:44

Windows内存

2020-06-15 14:39:27

智慧城市物联网5G

2020-06-15 14:35:22

智慧城市数据隐私

2016-01-06 09:57:00

云计算云存储

2020-12-07 15:04:26

Windows文件管理器工具

2009-07-02 11:52:17

2014-02-24 16:26:15

云存储

2011-11-07 20:36:29

2022-07-07 15:17:04

HandBrake视频转换开源

2013-03-07 09:20:46

公有云服务微软AzureMetricsHub

2012-10-27 11:33:49

IT管理免费

2010-11-26 15:05:28

Office 2010

2009-03-16 08:48:47

浏览器木马Araymor

2023-04-18 18:22:31

开源工具数据库

2010-12-14 09:37:02

数据挖掘工具开源

2021-09-17 20:00:48

微软Windows 11Windows
点赞
收藏

51CTO技术栈公众号