如果没有自己的专有数据库引擎,将数据库转换为mysql的最佳方法是什么?

时间:2010-06-14 15:21:31

标签: mysql database oracle

我在一家非常小的公司工作。我最近遇到的问题是,是否有一种很好的方法可以将专有数据库转换为MySQL数据库而无需拥有专有数据库引擎,例如如果给一个大型oracle数据库文件(或选择你最喜欢的专有数据库引擎格式),但没有oracle数据库引擎的许可证,是否有一种很好的,完全可靠的方法将其转换为MySQL数据库格式可以用MySQL数据库引擎读取吗?我的问题是关于哪种专有格式是源的非常模糊,因为会有多个来源,看起来它们会“各种各样”。我怀疑没有完全可靠的方法,特别是对于各种各样的专有数据库。如果有一些专有格式可以实现,我仍然有兴趣知道,虽然“各种各样”可能是真正的问题。最小化成本,精力和正确的转换是关键所以我认为这可能是不可能的列表。

-John

3 个答案:

答案 0 :(得分:6)

大多数商业数据库都有试用版或有限下载版,至少应该足以导出数据和架构。

但是你这样做,读取架构并在MySQL中创建结构可能更安全,然后将每个表导出为CSV并将其重新导入MySQL,而不是依赖于直接转换工具。

PS。当然,如果你有很多存储过程或自定义Oracle特定的SQL,那么它会受到更多的伤害!

答案 1 :(得分:0)

大多数数据库(和供应商)都支持某种SQL DDL / DML导出功能。他们可能不会大声宣传它,但它就在那里。 MySQL和PostgresSQL都具有这种功能。微软拥有SQL Server Database Publishing Wizard。 Oracle也具备此功能。您可能能够说服您的数据源导出数据,而不仅仅是转储数据。

所有这些工具都有局限性,特别是涉及BLOB和类似数据类型时。导出数据通常需要比仅仅转储数据更长的时间,并且生成的文件可能会大得多。优点是生成的SQL脚本可以进行编辑/转换/调整,以匹配目标数据库的首选SQL语法。

答案 2 :(得分:0)

对于Oracle,您可以查看个人版(仅适用于Windows)。使用短期许可证(例如一年),个人获得使用完整功能集处理大型Oracle数据库的功能的方式为low-cost [大约100美元]。

它是基于单用户许可的,并且用户的定义非常广泛。因此,例如,您不允许将个人版数据库中的报告分发给一群人(每个人都将被视为用户)。从Oracle到另一个平台的一次性迁移应该没问题。重复,定期提取更有可能被视为向多个用户提供信息的过程的一部分。