自动Oracle模式迁移工具

时间:2009-08-18 22:07:37

标签: oracle schema migration

有哪些工具(商业或OSS)提供基于GUI的机制来创建架构升级脚本?需要说明的是,以下是工具职责:

  • 获取与最近架构版本(称为“源”)的连接。
  • 获取与先前架构版本的连接(称为“目标”)。
  • 比较源和目标之间的所有架构对象。
  • 创建脚本以使目标架构等效于源架构(“升级脚本”)。
  • 创建一个回滚脚本以还原源模式,如果升级脚本失败(在任何时候),则使用该模式。
  • 为架构对象创建单个文件。

软件必须:

  • 对重命名的列使用ALTER TABLE而不是DROP和CREATE。
  • 使用Oracle 10g或更高版本。
  • 创建可以批量执行的脚本(通过命令行)。
  • 琐碎的安装过程。
  • (Bonus)创建可以使用SQL * Plus执行的脚本。

以下是一些示例(来自StackOverflow,ServerFault和Google搜索):

不符合标准或无法评估的软件包括:

  • TOAD
  • PL/SQL Developer - 无效的SQL * Plus语句。不生成ALTER语句。
  • SQL Fairy - 没有安装程序。复杂的安装过程。文件记录不足。
  • DBDiff - 数据集评估瘫痪,客户支持不佳。
  • OrbitDB - 残缺数据集评估。
  • SchemaCrawler - 没有易于识别的Oracle数据库下载版本。
  • SQL Compare - SQL Server,而不是Oracle。
  • LiquiBase - 需要更改开发过程。没有安装人员手动编辑配置文件。无法识别自己的baseUrl参数。

评估版本唯一可接受的瘫痪是时间。通过限制表和视图的数量来削弱可能的错误,这些错误仅在尝试迁移数百个表和视图期间在软件中可见。

5 个答案:

答案 0 :(得分:5)

Oracle的架构比较应符合您的要求。这可以在这里下载:

http://www.red-gate.com/products/schema_compare_for_oracle/index.htm

答案 1 :(得分:2)

您是否看过official tool(更多meta link)?被称为Oracle Migration Workbench

答案 2 :(得分:2)

我认为SQLDeveloper不是最佳选择。它非常适合在不同数据库之间迁移,而不是对数据模型的增量更改。

答案 3 :(得分:0)

使用DBA模块的

Toad for Oracle 可以很好地完成所有这些操作,但回滚脚本除外。

答案 4 :(得分:0)

<强> cx_OracleTools

如果您不介意面向命令行的工具,那么这个开源软件包将满足您的需求,但生成回滚脚本除外。

ExportObjects [options]

  

将模式中的所有对象导出为一组以后命名的目录   包含一组以对象本身命名的文件的对象类型。

GeneratePatch [options] FROMDIR TODIR

  

为两个目录中的对象的差异生成补丁(可能   已使用ExportObjects创建)并确保修补程序脚本可以   执行时不必担心因为依赖关系而遇到错误   对象。

http://cx-oracletools.sourceforge.net/