-3

客户有一个基于 Oracle DB 的旧系统。使用当前(2013)版本的 MySQL 或 PostGreSQL(还考虑存储过程、触发器等),将 Oracle DB 数据传输到哪个更容易(需要更少的工日/小时)?

还是无关紧要?

4

3 回答 3

3

如果它是一个相当简单的数据库(没有复杂的用户函数或类型等),您可以尝试ora2pg。过去我在这方面取得了成功。显然,移植后需要进行测试。

替代选项 - 如果您具有相同的数据库结构(表命名相同,相同的列等),您可以创建一个仅模式的 postgres 数据库,将 Oracle 表一一转储到 csv,然后使用将它们加载到 postgres复制。

另一种选择是创建 postgres db(无数据,仅模式),并使用oracle_fdw Foreign Data Wrapper 将数据从 Oracle 直接拉入您的 postgres db(从 postgres db 中执行)

于 2013-07-18T15:07:44.353 回答
1

我以前使用过 oracle,现在正在使用 postgresql。

在结构方面,它们非常相似。但是......将一个应用程序从一个数据库移植到另一个数据库不是一天、一周或一个月的工作。

准备好:

1.测试每条SQL

2.测试每一个存储过程、触发器、函数等

3.测试每个应用模块

4.找出oracle特定功能的替代方案,例如模型子句、快照等

总之,没有灵丹妙药。但是根据我对两者的经验,您会发现移植它们更容易。

于 2013-07-18T11:02:02.073 回答
1

没有人能回答这类问题,除了真正真正移植过它的人即使它可以编译,并且你可以安装它,这并不意味着它会运行得很快(或足够快)。

这取决于应用程序中使用的 SQL 功能,以及这些功能如何映射到新数据库。

因此,对于 95% 的应用程序,您的移植可能非常容易,但如果您必须找到 Oracle 物化视图的快速替代品,例如,在 PostgreSql 上可能会很麻烦。

所以移植真正开始于应用程序的设计阶段,否则你可能会遇到很多问题,看看这个

在您的情况下,您必须识别所有 SQL 特性,以及这些特性在 PostgreSql 和 MySQL 上的映射有多容易。

例如,您可以在此处查看 PostgreSql 和 MySQL 之间的差异。我会选择 PostgreSql,因为我在开发在 Oracle 和 PostgreSql 上运行的应用程序时没有遇到重大问题:窗口聚合、递归 CTE、Java 中的存储过程等功能在两个系统中都可用。

于 2013-07-18T09:33:16.517 回答