迁移后比较不同数据库的表

时间:2011-04-21 06:47:35

标签: mysql sql-server comparison migration

最近我使用 MySQL迁移工具包将我的项目从 SQLServer 2000 迁移到 MySQL 5.2 ,尽管在​​迁移结束时它会显示消息迁移成功,但我仍然不确定数据是否成功迁移,因为在后端迁移这个迁移工具包时做了类似的事情,将数据类型改为微小的int,这个我已经注意到了,但我不知道还有什么它确实因为我有一些敏感的数据,所以我想从我这边确定迁移是否真的成功与否同时我不能手动执行此操作由于大量的数据有任何方法,以便我可以比较表从 sqlserver 2000数据库和 Mysql 数据库中生成报告。通过比较我的意思是比较表作为一个整体,包括数据,数据类型,一切。

1 个答案:

答案 0 :(得分:2)

我怀疑有一个工具,所以你很可能需要自己编写,这需要一些时间。

我要做的第一件事就是编写一个连接到两个数据库的应用程序,将表定义抓取到内存中,然后按照表名的顺序将它们输出到文件中。

然后使用像WinMerge这样的文件比较工具来检查差异。如果存在上述差异,请在MySQL中进行必要的更改并在必要时映射数据。

之后我会修改相同的应用程序来循环遍历数据库中的每个表,将所有数据带回某种类型的支持UNION操作的基于集合的对象。 UNION旧表与新表,并检查结果中的行数是否等于源数据库中的行数。如果是这样,所有值都是相同的,否则标记为进一步检查。这很可能会照顾您的大多数表格,您可以手动检查未通过此测试的表格。

所有其他对象都将是主题的变体(它们是更简单的对象,只是文本),但我会花费大部分时间来验证数据。

希望这会有所帮助,无论你如何看待它都会成为一个耗时的过程。