將資料遷移至 AlloyDB Omni

選取說明文件版本:

您可以將資料從 PostgreSQL 或 Oracle 遷移至 AlloyDB Omni。本頁面假設您熟悉 PostgreSQL 和 Oracle 公用程式的設定和使用方式。

從 PostgreSQL 遷移至 AlloyDB Omni

AlloyDB Omni 是以 PostgreSQL 為基礎,因此從 PostgreSQL 遷移至 AlloyDB Omni 相當容易。

如要將資料從 PostgreSQL 遷移至 AlloyDB Omni,請按照下列步驟操作:

  1. 確認來源 PostgreSQL 資料庫使用的擴充功能是否支援 AlloyDB Omni。AlloyDB Omni 內建部分擴充功能,但其他擴充功能則須手動安裝。

    如要瞭解 AlloyDB Omni 包含哪些擴充功能,請參閱「支援的資料庫擴充功能」。

  2. 如要遷移資料,請根據資料遷移複雜度和停機時間,使用下表中的工具。

    遷移類型 工具
    基本遷移,停機時間充足 使用 pg_dump 備份現有的 PostgreSQL 資料庫。使用 pg_restore 將備份還原至新的 AlloyDB Omni 資料庫。
    複雜的遷移作業,有足夠的停機時間 使用 pgloader,將資料從來源資料庫串流至目的地資料庫。
    複雜的遷移作業,停機時間最短 使用 pglogical 將資料從來源資料庫複製到目的地資料庫。
  3. 從來源系統遷移任何內容之前,請先在目的地 AlloyDB Omni 系統上安裝擴充功能。

從 Oracle 遷移至 AlloyDB Omni

從 Oracle 遷移資料至 AlloyDB Omni 時,通常需要將 Oracle PL/SQL 程式碼轉換為 PgSQL。PL/SQL 程式碼的數量和複雜程度,通常會決定從 Oracle 遷移至 AlloyDB Omni 所需的工作量。使用的 Oracle 專屬功能越多,就越可能需要手動轉換程式碼。

下表列出開放原始碼和商用工具,可協助您執行程式碼轉換。

用途 工具或文件 說明
說明 Oracle 和 AlloyDB Omni 之間的概念和程式碼或語法差異。 將 Oracle® 資料庫使用者和結構定義遷移至 AlloyDB Omni --
您有足夠的停機時間,可以移動 Oracle 中的資料量,並將所有 Oracle 駐留應用程式邏輯轉換為 PostgreSQL。 使用 Ora2Pg 轉換結構定義、移動資料及轉換程式碼。 Ora2Pg 是一項開放原始碼工具,可協助您從 Oracle 轉換至以 PostgreSQL 為基礎的資料庫。
遷移作業的停機時間最短。 如要遷移程式碼和結構定義,請使用下列選項:
  • 開放原始碼選項
    Ora2Pg:用於結構定義轉換、資料移動和程式碼轉換
  • 第三方商業選項
    Ispirer,用於結構定義和程式碼轉換
如要遷移資料,請先執行初始載入,再使用變更資料擷取和增量套用功能,持續同步資料,直到切換完成為止。
  • 開放原始碼選項
    如果停機時間足夠一次遷移所有資料,請使用 Ora2Pg 進行一次性資料移動。這個選項不提供異動資料擷取或增量套用功能。
  • 商業選項
    Ispirer 可執行初始資料移動,然後以批次模式套用增量。

    Striim 可以執行初始資料移動作業,然後持續變更資料擷取並增量套用,盡量縮短停機時間。為支援備用,這個選項會從 AlloyDB Omni 複製回 Oracle。
  • Striim 是一項商業產品,可協助您在資料庫平台之間遷移資料。這項服務會執行初始資料移動作業和持續複製作業,並在遷移期間提供資料轉換功能。詳情請參閱「Striim」。
您需要將各種來源的資料載入 PostgreSQL 資料庫。 使用 pgloader。 pgloader 是開放原始碼工具,可將各種來源的資料載入以 PostgreSQL 為基礎的資料庫。
詳情請參閱 pgloader 說明文件。
您需要模擬 Oracle 套件和函式。 使用 Orafce 擴充功能。 詳情請參閱「orafce」專案。

AlloyDB Omni 未隨附這項擴充功能,必須手動安裝。詳情請參閱「安裝 AlloyDB Omni 適用的 Orafce」。
您想將 Oracle 資料庫連結遷移至 AlloyDB Omni。 請使用 oracle_fdw 擴充功能。這項擴充功能可讓您從 AlloyDB Omni 內連線至 Oracle 資料庫,並將 Oracle DBLink 遷移至 AlloyDB Omni。 AlloyDB Omni 不含這項擴充功能,因此必須手動安裝。
詳情請參閱 GitHub - laurenz/oracle_fdw: PostgreSQL Foreign Data Wrapper for Oracle。

後續步驟