2013-07-18 58 views
-3

客戶端有一個基於Oracle DB的舊系統。使用當前(2013年)的MySQL或PostGreSQL版本(還考慮存儲過程,觸發器等),哪一個更容易(需要更少的人日/小時)將Oracle DB數據傳輸到?從Oracle DB移植。 MySQL或PostgreSQL?

還是不相干?

+1

有沒有辦法知道沒有信息,但我只想指出,有一個[商業PostgreSQL版本](http://www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server/top-10-reasons-use),它具有Oracle兼容性。 – madth3

回答

3

如果它是一個合理簡單的數據庫(沒有複雜的用戶功能或類型等),您可以嘗試ora2pg。過去我已經取得了成功。移植後顯然需要測試。

另一種選擇 - 如果你有相同的數據庫結構(表格命名爲相同,相同的列等),你可以創建一個只模式的postgres數據庫,將Oracle表格逐一轉儲到csv,然後加載他們進入postgres使用COPY。

另一種選擇是創建的Postgres數據庫(沒有數據,模式只),並使用oracle_fdw國外資料包裝從Oracle數據直接拉進你的Postgres數據庫(從Postgres的數據庫內執行)

1

沒有人可以回答這種類型的問題,除了實際移植它的人真的:即使它編譯,並且可以安裝它,但這並不意味着它可以運行得很快(或足夠快)。

它取決於應用程序中使用的SQL功能以及這些功能如何映射到新數據庫。

因此,對於95%的應用程序,您的端口可能非常容易,但是如果您必須快速替換Oracle的物化視圖,那麼PostgreSql上的這個操作可能會很麻煩。

所以一個端口確實從設計階段開始,否則你可能會遇到很多問題,看看this

在你的情況下,你必須確定所有的SQL功能,以及這些映射在PostgreSQL和MySQL上的方便程度。

例如,您可以看到PostgreSql和MySQL here之間的差異。我會選擇PostgreSql,因爲我沒有遇到大的問題來開發在Oracle和PostgreSql上運行的應用程序:在兩個系統中都可以使用窗口聚合,遞歸CTE,Java存儲過程等功能。

1

我以前使用過oracle,現在正在使用postgresql。

結構方面,它們非常相似。但是,將一個應用程序從一個數據庫移植到另一個數據庫不是一天,一週或一個月的工作。

是準備:

1.Test每個SQL

2.測試每一個存儲過程,觸發器,功能等

3.測試每一個應用模塊

4.Find out模式子句,快照等的替代方案

總之,沒有魔法藥丸。但是根據我對兩者的經驗,你會發現移植它們更容易。