我正在寻找一个可以在 Linux 上运行、处理 Oracle 数据库并可以生成同步脚本以将一个模式迁移到另一个模式的数据库模式比较工具。TOAD 在 Windows 上可以很好地完成这项工作,但不能在 Linux 上运行。最好是免费和开源的,但不是必需的。如果它可以编写脚本,例如可以作为 cron 作业运行,那就太好了。有类似的东西吗?
顺便说一句,我查看了 Oracle 自己的 SQL Developer 工具,虽然它支持比较,但在我的测试中有很多误报。例如,它将相同的外键标记为不同的。
答案1
我花了很多时间寻找类似的东西,但从未找到完全令人满意的解决方案。话虽如此,您可能会发现 Liquibase (www.liquibase.org) 很有用。
答案2
尝试SchemaCrawler,我的免费命令行开源工具,用 Java 编写。它独立于操作系统和数据库。它旨在查找模式(甚至数据)之间的差异。您可以使用 JavaScript 和模板语言接口来生成自己的脚本。
答案3
谷歌搜索“架构比较工具”制作了此工具,可在 dbsolo.com 网站上使用。该网站的网址为 www.dbsolo.com/schema_comparison.html。抱歉,我没有足够的权限发布实际链接。
它是一个商业工具,但它声称能够比较这些数据库的模式:Oracle、SQL Server、DB2、PostgreSQL、MySQL 和 Sybase ASE/ASA。
此外它还可以在以下平台上运行:Windows、Linux、MacOS 和 Solaris。
我不能认可它,因为我从未尝试过,但它确实包含一个 30 天的免费演示版,所以您可以尝试一下,看看它是否适合您的需要。
答案4
DBSA(数据库结构分析)是一个用于比较模式快照的工具。可以报告差异并生成 SQL 补丁。它包含一个用于模式历史跟踪的基本存储库工具。