fbpx

從 Oracle 到 Postgres: 最完整的轉移指引五步驟 4/4篇 – 功能測試、效能測試與資料遷移

前情提要

我們能將 Oracle 到 Postgres 的遷移劃分為 5 個步驟或階段:

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

上篇文章詳細地介紹了資料庫架構的轉移,在本篇文章中,我們將著重於功能及性能測試和資料遷移。

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

3) Oracle 到 Postgres 的遷移:功能測試

將 schema 從 Oracle 到 Postgres 遷移後的功能測試

工作開始之前,在樣本資料庫上檢測轉換後的 Schema 是很重要的。我們推薦的方法是從原始資料庫的開發或測試環境(其中有正式環境的樣本資料),將一些樣本資料加載到 Postgres 中,然後使用合適的資料存取存取(驅動程式)建立起應用程式連接。在應用程式連線到資料庫後,核准它以 DML 對轉換後的物件進行完整的功能測試。

建議在 Oracle 和 Postgres 資料庫中載入相同的樣本資料庫,然後對兩者進行測試,確保 SQL 的結果都相同。檢查並解決功能測試所揭露的任何問題。

4) Oracle 到 Postgres 的遷移:性能測試

遷移後的 Postgres 性能測試

性能測試在遷移階段是很重要的,因為有一些 Oracle 內建的交易和功能在 Postgres 中可能略不相同,在應用程式可能會看到一些差別。在這個階段我們可以抓出所有這些差異,透過在應用程式、資料存取(驅動程式)和資料庫層面上做適當的修復。   

5)Oracle 到 Postgres 的遷移:資料遷移

從 Oracle 到 Postgres 的資料遷移

市場上有不同的資料遷移方法和工具。主要有以下三種:

  1. 快照:資料立即移動
  2. 平行快照:資料以分塊(模式或表)的形式移動
  3. 擷取變動的資料(副本):連續加載資料。

對於方法 1 和 2,我們需要應用程式停機時間,因為資料是一次性從 Oracle 寫入 Postgres,而在方法 3 中,資料是連續加載的,而且停機時間窗口更小。應挑選合適的資料遷移方法,以適應停機時間的窗口。

遷移策略詳解

讓我們更詳細地討論這三種資料遷移策略。

(一)快照(一氣呵成)

在這個方法中,原始資料庫的狀態快照會被擷取並應用於目標資料庫。資料被一次性地從 Oracle 轉移到 Postgres。在快照過程中,原始資料庫上不允許有任何 WRITE 操作。這是一種更乾淨、更簡單的資料遷移方法。

優點

  • 資料移動將一次性完成
  • 無資料類型挑戰(LoBs)
  • 快照後,應用程式可以開始存取目標資料庫
  • 無需特殊配置,易於管理
  • 唯讀用戶可以存取原始資料庫(在某些情況下

缺點

  • 應用程式會在快照期間關閉。
  • 如果快照被中斷,則需要重新啟動。

(二)快照 – 分塊平行(分流)

分塊平行是另一種類型的快照方法,資料物件被分割成若干塊,快照被平行地拍攝。大多數的工具都支持快照,並且這個過程是串聯調用的。

有兩種方法來執行分塊快照:1)逐個表或2)使用主鍵或任何獨特的行標識符將大表分割成小集。在這種方法中,快照的持續時間和停機時間窗口大大減少。需要有良好的程式碼編寫能力,以準備為遷移表或大型表的資料遷移工具。

Snapshot - Parallel in Chunks (Trickle)

優點

  • 一次性移動資料,減少停機時間
  • 平行移動資料 – 逐個表或將大表分成小集合進行移動

缺點

  • 所需的應用程式停機時間(與方法一Snapshot 的方法相較少)
  • 對於分成小集合的大表,主鍵或唯一的行標識符是必須的
  • 需要程式碼來調整併行方法
  • 如果快照被中斷,則需重新啟動

擷取變動資料(CDC 資料同步)

幾十年來,有多種不同的傳統擷取變動資料 (CDC) 方法可用。在 CDC 模型資料遷移中,該軟體被設計實時確定/追蹤/擷取原始資料庫上發生變化的資料,並在目標資料庫上回放這些資料。如今 CDC 模型軟體的需求量很大,因為它們以低延遲、可靠性和可擴展的資料在異構資料庫之間分配資料。將 Oracle 遷移到 Postgres 資料庫的最常見 CDC 方法是:

  • 基於觸發器
  • 基於交易日誌

基於觸發器 (CDC) — 建立遠端觸發器以捕獲之前或之後的 DML(插入/更新/刪除),並將交易事件的序列擷取到變動日誌(shadow tables)中,然後由軟體處理在目標資料庫上重放。

基於交易日誌 (CDC) — 每個資料庫都會有交易日誌(redos),按順序儲存所有資料庫交易/事件,並在資料庫崩潰恢復時使用。使用本地資料庫交易日誌插件,交易(DMLs)可以通過一些過濾器、轉換和聚合被擷取到變動日誌。最後,捕獲的 DML 序列將會被複製到目標資料庫。

這兩種 CDC 方法都可用於將資料從 Oracle 複製到 Postgres。但是,每種方法都有其優點和局限性,我們可以根據需要選擇一種合適的方法。有個不錯的軟體選則可用於支援這兩種 CDC 方法。

Change Data Capture

優點

  • 資料連續加載到目標資料庫(初始快照後)
  • 用戶可以在資料加載到目標資料庫時存取原始資料庫
  • 資料同步控制(中斷可恢復)
  • 部分複製(可以複製一組表)

缺點

  • 需要複製軟體
  • 在基於觸發器的 CDC 中,會有些微的性能開銷 (performance overhead)
  • 不支持大型物件
  • 部分或小型應用程式停機時間(切換時間)
  • 只有商業/免費使用工具可用,沒有開源

有哪些免費的資料遷移工具?

以下是我們上述的三種不同的遷移方法中,可用於資料遷移的開源及免費工具:

What are the free tools available for data migration?

希望此篇文章為您開始規劃有效的 Oracle 到 Postgres 遷移提供了所需資訊!


相關文章