将架构从一个数据库迁移到另一个数据库

时间:2013-10-01 22:14:29

标签: db2

作为某些要求的一部分,我需要将模式从某个现有数据库迁移到不同数据库中的新模式。它的某些部分已经完成,现在我需要比较2模式并根据间隙查找在新模式中进行更改。 我没有使用工具,并试图使用syscat命令了解一些细节,但无法取得很大成功。 什么是解决这个问题的最佳方法的任何指针?

此致 Ramakant

3 个答案:

答案 0 :(得分:1)

工具确实是解决此问题的最佳方法 - IBM Data Studio是免费的,可以比较数据库之间的模式。

假设您使用的是DB2 for Linux / UNIX / Windows,您可以通过查看SYSCAT.TABLESSYSCAT.COLUMNS中的选定列(表格定义)和SYSCAT.INDEXES进行基本比较(用于索引)。将此数据导出到文件并使用diff可能是最简单的方法。但是,对于更复杂的结构(具有范围或数据库分区,外键等的表),这样做会非常复杂,因为这些信息分布在许多不同的系统目录表中。

另一种方法是使用db2look实用程序提取DDL。但是,您无法指定db2look输出对象的顺序(db2look根据对象“CREATE_TIME”提取DDL),因此您无法将整个模式的DDL提取到文件中并期望使用{{1 }} 比较。您需要将DDL提取到每个表的单独文件中。

答案 1 :(得分:0)

使用SchemaCrawler for IBM DB2,这是一个免费的开源工具,旨在生成旨在进行差异化的文本输出。您可以获得有关架构的非常详细的信息,包括视图和存储过程定义。您需要的所有信息都将输出到一个文件中,并且可以使用标准差异工具轻松进行比较。

Sualeh Fatehi,SchemaCrawler

答案 2 :(得分:0)

遗憾的是,根据公司政策,此时无法使用这些工具。所以我正在使用JDBC编写一些程序来获取细节并做一些比较。