Rob H Asked: 2009-05-28 06:24:00 +0800 CST2009-05-28 06:24:00 +0800 CST 2009-05-28 06:24:00 +0800 CST Linux 数据库差异工具 772 我正在寻找一种在 Linux 上运行、处理 Oracle 数据库并且可以生成同步脚本以将一个模式迁移到另一个模式的数据库模式比较工具。TOAD 在 Windows 上做得很好,但不能在 Linux 上运行。免费和开源是首选,但不是必需的。如果它是可编写脚本的也很好,例如,使其能够作为 cron 作业运行。外面有这样的吗? 顺便说一句-我查看了 Oracle 自己的 SQL Developer 工具,虽然它支持比较,但我的测试中有很多误报。例如,它将相同的外键标记为不同的。 linux database oracle 6 个回答 Voted dkaylor 2009-05-30T13:11:40+08:002009-05-30T13:11:40+08:00 我花了很多时间寻找类似的东西,但从未找到完全令人满意的解决方案。话虽如此,您可能会发现 Liquibase (www.liquibase.org) 很有用。 Sualeh Fatehi 2009-06-06T04:02:42+08:002009-06-06T04:02:42+08:00 试试SchemaCrawler,这是我用 Java 编写的免费命令行开源工具。它独立于操作系统和数据库。它旨在发现模式(甚至数据)之间的差异。您可以使用 JavaScript 和模板语言接口来生成自己的脚本。 slm 2009-05-30T09:28:55+08:002009-05-30T09:28:55+08:00 谷歌搜索“模式比较工具”在 dbsolo.com 网站上生成了这个工具。该站点的 URL 是 www.dbsolo.com/schema_comparison.html。抱歉,我没有足够的权限发布实际链接。 这是一个商业工具,但它声称能够比较以下数据库的模式:Oracle、SQL Server、DB2、PostgreSQL、MySQL 和 Sybase ASE/ASA。 此外,它还可以在以下平台上运行:Windows、Linux、MacOS 和 Solaris。 我无法认可它,因为我从未尝试过它,但它确实包含 30 天的免费演示,因此您可以尝试看看它是否适合您的需求。 slovon 2009-05-31T21:11:40+08:002009-05-31T21:11:40+08:00 有很多工具,不同程度的满足,没有完美的:( 我使用的是纯 Java 的 Aqua Data Studio,可以连接到大多数数据库。 Robert Munteanu 2009-06-01T22:42:35+08:002009-06-01T22:42:35+08:00 DBSA(数据库结构分析)是一种用于比较模式快照的工具。报告差异并且可以生成 SQL 补丁。它包括一个用于模式历史跟踪的基本存储库工具。 Xerxes 2009-05-28T19:28:41+08:002009-05-28T19:28:41+08:00 我认为您需要的工具是Oracle Data Pump。我喋喋不休地谈论它,因为 Oracle 在这里为它提供了一个很好的教程。具体工具是... expdp用于导出数据 impdp用于导入。 要在 2 个表(具有相同的列)之间进行“差异”,在 2 个单独的数据库之间... Select table_name from dba_tables \ where owner='OWNER_NAME' \ minus \ select table_mame from dba_tables@remote_database \ where owner='OWNER_NAME' 您显然需要在第一个数据库中创建数据库链接。不过,这可能只是您所追求的部分解决方案,但我想不出更好的办法。:)
我花了很多时间寻找类似的东西,但从未找到完全令人满意的解决方案。话虽如此,您可能会发现 Liquibase (www.liquibase.org) 很有用。
试试SchemaCrawler,这是我用 Java 编写的免费命令行开源工具。它独立于操作系统和数据库。它旨在发现模式(甚至数据)之间的差异。您可以使用 JavaScript 和模板语言接口来生成自己的脚本。
谷歌搜索“模式比较工具”在 dbsolo.com 网站上生成了这个工具。该站点的 URL 是 www.dbsolo.com/schema_comparison.html。抱歉,我没有足够的权限发布实际链接。
这是一个商业工具,但它声称能够比较以下数据库的模式:Oracle、SQL Server、DB2、PostgreSQL、MySQL 和 Sybase ASE/ASA。
此外,它还可以在以下平台上运行:Windows、Linux、MacOS 和 Solaris。
我无法认可它,因为我从未尝试过它,但它确实包含 30 天的免费演示,因此您可以尝试看看它是否适合您的需求。
有很多工具,不同程度的满足,没有完美的:(
我使用的是纯 Java 的 Aqua Data Studio,可以连接到大多数数据库。
DBSA(数据库结构分析)是一种用于比较模式快照的工具。报告差异并且可以生成 SQL 补丁。它包括一个用于模式历史跟踪的基本存储库工具。
我认为您需要的工具是Oracle Data Pump。我喋喋不休地谈论它,因为 Oracle 在这里为它提供了一个很好的教程。具体工具是...
要在 2 个表(具有相同的列)之间进行“差异”,在 2 个单独的数据库之间...
您显然需要在第一个数据库中创建数据库链接。不过,这可能只是您所追求的部分解决方案,但我想不出更好的办法。:)