從Oracle到 PostgreSQL:最完整的轉移導引 ─ 移動並轉換資料庫、應用程式和數據(上篇)

Kepware 成功案例: DST Controls利用KEPServerEX® 管理負載平衡
2021-07-09
Dynamic Yield:美國金融服務公司通過客製化增加信用卡申請
2021-07-14

簡介

從 Oracle 轉移到 PostgreSQL 開源資料庫的企業數量正快速增長中,而這個完整的導引將提供用戶資料庫轉移過程所需的一切。

對於任何對轉移過程感到恐懼或懷疑的使用者來說,本篇將分析 PostgreSQL 資料庫系統對比 Oracle 的優勢以及採用 PostgreSQL 後可獲得的好處── 也就是降低成本、增加靈活性和客製化程度。

接下來,轉移過程將被分解成不同步驟,包含評估、模式轉移、功能測試、性能測試和數據轉移,並根據各階段進行逐步指導。

此外,兩種資料庫之間的關鍵系統性差異和不兼容之處被逐一列出,以幫助使用者避開常見錯誤,並權衡替代轉移方案,最終提出免費的有效轉移工具清單。

此導引除了提供給準備從 Oracle 遷移到 PostgreSQL 的用戶,也為正考慮引入 PostgreSQL 卻擔心轉移複雜性的 Oracle 用戶給予保證。

什麼是資料庫轉移?

資料庫轉移 是一個將定義 (Definitions)、資料和儲存程序於平台間進行轉移,並進行應用改變的過程,其中包括選擇、準備、提取、轉換以及不同平台間數據的應用。

用戶在轉移至 Postgres 的過程將經歷不同的階段,如挑選正確的架構、檢查相容性、轉換不相容物件、功能和效能測試、資料轉移和轉移後檢查。

為什麼選擇從 Oracle 轉移到 PostgreSQL  ?

有許多原因,以下將列舉一些好處:

  1. 成本:除許可證費用外,用戶也須為 Oracle 資料庫的獨特功能支付使用費,如分區功能和高可用性,這也導致費用的急遽升高。相對而言,基於開源的 PostgreSQL 則能夠讓用戶免費安裝和使用。
  2. 靈活性: PostgreSQL 是基於開源的,因此用戶可以從包括 AWS 在內的公有雲供應商那裡取得 PostgreSQL ,且不會受限於單一供應商的風險。
  3. 可定制性:基於開源的本質, PostgreSQL 提供使用者無數的擴展和附加功能以改善資料庫性能,甚至許多能夠免費使用。然而相較之下,如使用 Oracle 裡的類似功能則會增加大量成本。

然而這不代表從 Oracle 轉移到 PostgreSQL 是一個簡單的過程。

因為資料在 RDBMS 之間進行轉移,而根據資料類型或是異質結構,整個過程將會是一個非常耗時的挑戰,因此使用者需用正確的工具來處理問題。

遵循以下步驟,問題將迎刃而解:

相比之下,採用 PostgreSQL 有什麼優勢?

簡而言之, PostgresQL 相對於 Oracle 資料庫擁有以下七點特性:

  1. 應用程式編程
  2. 認證
  3. 可伸展性
  4. 語言
  5. 在地化
  6. 性能
  7. 可擴展性

 

  1. PostgreSQL vs. Oracle:應用程式編程

Oracle 和 PostgreSQL 都提供用於資料庫通信的 API 。然而, PostgreSQL 的開源性質使使用者只需在項目中包含標頭檔 (header file),就能夠直接取得任何 PostgreSQL 組件。

  1. PostgreSQL vs. Oracle:認證

Oracle 採用內建認證系統。然而 PostgreSQL 則以主機為本,且支持廣泛的認證方法。這也為使用者提供更大的認證靈活性,並可以選擇委託代執行過程。

  1. PostgreSQL vs. Oracle:可伸展性

Oracle 插件系統多屬於專有性質的,然而 PostgreSQL 卻有成千上萬的插件可供使用,這歸功於其延伸系統來自一般社群。

  1. PostgreSQL vs. Oracle:語言

Oracle 採用內建程式語言 PL/SQL ,而 PostgreSQL 不僅容納 PL/pgSQL ,還擁有各種語言及延伸系統,並允許用戶創建額外的程序語言作為插件以及綁定更多程式語言。

  1. PostgreSQL vs. Oracle:在地化

Oracle 提供全球化工具,包括開發套件和 unicode 編碼支持。

相較之下, PostgreSQL 採用內建的在地化服務系統,並提供自動字元編碼和校核功能。

  1. PostgreSQL vs. Oracle:性能

PostgreSQL 能夠在單一讀取群集中創造無限的節點,並使讀取操作的成本趨近於零,這也讓用戶能對調整每個工作量。雖然使用者也可以在 Oracle上 這樣做,但卻需承擔每個節點的額外成本。

  1. PostgreSQL vs. Oracle:可擴展性

Oracle 有著優秀的垂直讀取可擴展性,然而 PostgreSQL 卻能於單一讀取集群中創建無限的節點,而這僅取決於用戶願意提供的資源量。

 

更多 EDB 資訊請至產品專區