fbpx

從 Oracle 到 Postgres: 最完整的轉移指引五步驟 2/4篇:步驟一 -資料庫評估

從 Oracle 遷移至 Postgres 計畫的階段和步驟為何?

Oracle 到 Postgres 的遷移被劃分為 5 個步驟或階段,內容如下:

  1. 評估
  2. Schema 轉移
  3. 功能測試
  4. 效能測試
  5. 資料遷移

本系列由 4 篇文章組成,分別為 Oracle 與 Postgres 的比較、資料庫評估(本篇)、架構遷移資料庫功能測試。歡迎閱讀系列中的其他文章,以了解完整的資料庫遷移步驟。 

1. Oracle 至 Postgres 的遷移計畫:評估

從 Oracle 至 Postgres 遷移前的評估步驟和階段為何?

  1. 總評估
  2. 相容性評估
  3. 應用程式碼評估
  4. 資料庫架構評估和清理

1.a Oracle 至 Postgres 的遷移計畫:評估

評估是遷移計畫中的第一步,藉由分析資料庫中的應用程式,從而判斷整個遷移作業的難易程度。在這個階段,工作人員應對技術性問題進行徹底的分析,並評估客戶端、應用程式伺服器、資料存取和資料庫的相容性。

1.b Oracle 至 Postgres 的遷移計畫:相容性評估

這個階段中,有一個非常基本卻又容易被忽略的事項,那就是在遷移至 Postgres 前,您必須先確認您的應用程式是否支援 Postgres,如果沒有 ,您就必須請求應用程式原廠支援 Postgres ,或者另選其他應用程式代替。

在確認來源資料庫和目標資料庫的相容性後,您的資料庫遷移計畫須滿足以下先決條件:

  • 伺服器資源(記憶體、磁碟容量、開啟既有資料庫和目標資料庫的網路埠)
  • 作業系統
  • 資料遷移軟體和驅動程式已被安裝和設定

您目標資料庫的資源一定足夠,並且具有足夠的可擴展性來處理它們即將接收的巨量資料。然而,如果您要遷移的資料量非常龐大,那麼只依靠網路進行遷移就沒有那麼合適,因此,您也應該採用 export-and-reload 的遷移方式。另外,採取將遷移專案劃分成好幾個步驟的策略也是明智選擇。(您能夠參考下方關於遷移策略的部分)

1c.Oracle 至 Postgres 的遷移計畫:應用程式碼評估

與開源程式碼相比,如果您的應用程式碼越依賴 Oracle 的專用框架,那麼您的遷移過程將越複雜。您需要做多少調整取決於您的應用程式架構和資料庫連接層(database connection layer)。但是,如果您的 Java 使用通用 JDBC Classes 而非 Oracle 專用 JDBC Classes那麼您的遷移過程將相對容易。同樣地,如果您使用物件關聯對映(ORM),如:Hibernate 或 JCA。那麼將 Hibernate 的 Dialect 從 Oracle 遷移至 Postgres 也會非常容易,然而,些微的調整仍需進行。

如果您使用內嵌 SQL,例如:Oracle’s Pro*C、動態產生 SQL或連結至 Oracle 專用的 Library,例如:OCI 或 Oracle JDBC,情況將會更複雜。因此,如果要對這些程式進行調整,您需要對底層應用邏輯有扎實的了解,並且必須仔細地測試它們。

1d.Oracle 至 Postgres 的遷移計畫:架構評估和清理

遷移的難易度很大地取決於您資料庫的架構以及資料。而資料庫的遷移是您清理架構和資料的良機,因為您能夠藉此捨棄一些沒在使用的物件,例如:老舊的臨時表(temporary tables)或備份資料-如果沒人在乎它們,它們就不值得被遷移。如果您的資料庫儲存了大量的資料,例如:影像和 PDF檔,您可以考慮將它們移轉到一個成本較低的資料庫,以降低您的資料庫大小以及減少備份還原所需的資源。您也能夠藉此清除資料庫中的靜態歷史資料或將它們移轉至更合乎成本效益的歸檔方案。

從 Oracle 遷移至 Postgres 也同樣能透過將線上交易處理(OLTP)和分析功能分離至不同的資料倉儲,來提升資料庫的響應和分析能力。

1.e Oracle 至 Postgres 的遷移計畫:Schema 轉移

完成評估後,下一步是找出並解決 Oracle 和 Postgres 中不相同的架構和資料形式。在正式遷移資料庫前,將這些資料格式正規化是至關重要的,因為這能夠避免資料在遷移至 Postgres 後,出現費時又令人挫折的問題。

Postgres 提供 Oracle 不支援的 ANSI SQL 標準 SQL syntax 和資料類型此外,Postgres 還支援非 ANSI SQL syntax。如果您使用的工具不支援 Postgres,您必須使用 Postgres 支援的 syntax 或相似功能的替代方案識別並手動更改這些工具。

延伸閱讀:本系列由 4 篇文章組成,如果對資料庫遷移有興趣,可以參考下篇文章:架構遷移


相關文章