Linux数据库差异工具

我正在寻找一个在Linux上运行的数据库模式比较工具,处理Oracle数据库,并且可以生成一个同步脚本以将一个模式迁移到另一个模式。 TOAD在Windows上做得非常好,但不能在Linux上运行。 免费和开源是首选,但不是必需的。 例如,如果它是可编写脚本的,它也可以作为一个cron工作来运行。 这样的东西呢?

BTW-我看了Oracle自己的SQL Developer工具,尽pipe它支持比较,但是在我的testing中有很多误报。 例如,它标记了相同的外键是不同的。

我花了很多时间寻找类似的东西,从来没有find一个完全令人满意的解决scheme。 话虽如此,你可能会发现Liquibase(www.liquibase.org)是有用的。

试试SchemaCrawler ,这是我用Java编写的免费的命令行开源工具。 它独立于操作系统和数据库。 它旨在发现模式(甚至数据)之间的差异。 有一个JavaScript和模板语言接口,您可以使用它们来生成您自己的脚本。

谷歌search“架构比较工具”在dbsolo.com网站上提供了这个工具。 该网站的url是www.dbsolo.com/schema_comparison.html。 我没有足够的权限发布一个实际的链接,抱歉。

这是一个商业工具,但它声称能够比较这些数据库的模式: Oracle,SQL Server,DB2,PostgreSQL,MySQL和Sybase ASE / ASA

另外它运行在这些平台上: Windows,Linux,MacOS和Solaris

我不能认可它,因为我从来没有尝试过,但它包括一个30天的免费演示,所以你可以尝试一下,看看它是否适合您的需求。

有很多工具,不同程度的满足,没有完美的:(

我使用Aqua Data Studio,因为它是纯Java的,可以连接到大多数数据库。

DBSA(数据库结构分析)是用于比较模式快照的工具。 报告差异并生成SQL修补程序。 它包括用于模式历史跟踪的基本存储库设施。

认为你正在使用的工具是Oracle Data Pump 。 我对此大肆宣传,因为Oracle 在这里提供了一个很好的教程。 这些工具具体是…

  • expdp用于导出数据
  • impdpimport。

要在两个表(具有相同的列)之间进行“差异”,在两个独立的数据库之间…

Select table_name from dba_tables \ where owner='OWNER_NAME' \ minus \ select table_mame from dba_tables@remote_database \ where owner='OWNER_NAME' 

您需要明确地在第一个数据库中创build数据库链接。 这可能只是解决你的问题,但我不能拿出更好的东西。 🙂