Oracle 到 PostgreSQL 轉換設定 - AWS Database Migration Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Oracle 到 PostgreSQL 轉換設定

DMS 結構描述轉換中的 Oracle 到 PostgreSQL 轉換設定包括下列項目:

  • AWS DMS 可以將甲骨文具體化視觀表轉換為 PostgreSQL 上的表格或具體化視觀表。對於具體化視觀表,請選擇來源具體化視觀表的轉換方式。

  • 您的來源 Oracle 資料庫可以使用 ROWID 虛擬資料欄。PostgreSQL 不支援類似的功能。DMS 結構描述轉換可以在轉換後程式碼中使用 bigintcharacter varying 資料類型來模擬 ROWID 虛擬資料欄。若要這麼做,請為資料列 ID 選擇使用 bigint 資料類型來模擬 ROWID 虛擬資料欄,或是使用 character varying 資料類型來模擬 ROWID 虛擬資料欄

    如果您的來源 Oracle 程式碼不使用 ROWID 虛擬資料欄,請選擇不產生。在此情況下,轉換後的程式碼運作得更快。

  • 您的原始 Oracle 程式碼可以包含 TO_CHARTO_DATE、和 TO_NUMBER 函數,其中包含 PostgreSQL 不支援的參數。根據預設,DMS 結構描述轉換會在轉換後的程式碼中模擬這些參數的使用方式。

    當您的來源程式碼缺少 PostgreSQL 不支援的參數時,您可以使用原生的 PostgreSQL TO_CHARTO_DATETO_NUMBER 函數。在此情況下,轉換後的程式碼運作得更快。若要這樣做,請選取下列值:

    • 使用原生 PostgreSQL TO_CHAR 函數

    • 使用原生 PostgreSQL TO_DATE 函數

    • 使用原生 PostgreSQL TO_NUMBER 函數

  • 您的資料庫和應用程式可以在不同的時區執行。根據預設,DMS 結構描述轉換會模擬已轉換程式碼中的時區。但是,當您的資料庫和應用程式使用相同的時區時,就不需要此模擬。在此情況下,請選取改善資料庫和應用程式使用相同時區的已轉換程式碼效能

  • 若要繼續在轉換後的程式碼中使用序列,請選取使用來源端產生的最後一個值填入轉換後的序列

  • 在某些情況下,您的來源 Oracle 資料庫可能只會在 NUMBER 資料類型的主索引鍵或外部索引鍵資料欄中儲存整數值。在這些情況下, AWS DMS 可以將這些列轉換為BIGINT數據類型。這種方法可以提高轉換後程式碼的性能。若要這麼做,請選取將 NUMBER 資料類型的主索引鍵和外部索引鍵資料欄轉換為 BIGINT 資料類型。請確定您的來源未在這些資料行中包含浮點值,以避免資料遺失。

  • 若要略過原始程式碼中停用的觸發程序和條件約束,請選擇僅僅轉換作用中觸發程序和條件約束

  • 您可以使用 DMS 結構描述轉換來轉換稱為動態 SQL 的字串變數。您的資料庫程式碼可以變更這些字串變數的值。若要確保 AWS DMS 永遠轉換此字串變數的最新值,請選取 [轉換在呼叫的常式中建立的動態 SQL 程式碼]。

  • PostgreSQL 10 和更舊版本不支援程序。如果您不熟悉使用 PostgreSQL 中的程序, AWS DMS 可以將甲骨文程序轉換為 PostgreSQL 函數。若要這樣做,請選取將程序轉換為函數

  • 欲查看已發生動作項目的其他資訊,您可以將特定功能新增至延伸套件。若要這麼做,請選取新增引發使用者定義例外狀況的延伸套件函數。然後選擇嚴重性層級,以引發使用者定義的例外狀況。請務必先轉換來源資料庫物件,之後再套用延伸套件結構描述。如需詳細了解延伸套件,請參閱:使用延伸套件

  • 您的來源 Oracle 資料庫可以包含自動產生名稱的限制條件。如果您的原始程式碼使用這些名稱,請務必選取保留系統產生的限制條件名稱。如果您的原始程式碼使用這些限制條件,但不使用其名稱,請清除此選項以提高轉換速度。

  • 如果來源和目標資料庫在不同的時區執行,模擬 SYSDATE 內建 Oracle 函數的函數會傳回與來源函數不同的值。若要確保來源和目標函數傳回相同的值,請選擇設定來源資料庫的時區

  • 您可以在轉換後的程式碼中使用 orafce 延伸模組中的函數。若要這麼做,請針對 Orafce 內建常式選取要使用的函數。如需有關 orafce 的更多資訊,請參閱上的章。 GitHub