了解 Oracle to PostgreSQL 轉換設定 - AWS 資料庫遷移服務

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

了解 Oracle to PostgreSQL 轉換設定

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

  • AWS DMS 可以將 Oracle 具體化視觀表轉換為 Postgre 上的資料表或具體化視觀表SQL。對於具體化視觀表,請選擇來源具體化視觀表的轉換方式。

  • 您的來源 Oracle 資料庫可以使用 ROWID 虛擬資料欄。PostgreSQL 不支援類似的功能。DMS 結構描述轉換可以使用 bigintcharacter varying資料類型模擬轉換程式碼中的ROWID虛擬資料欄。若要執行此操作,請選擇使用雙聯資料類型來模擬ROWID虛擬資料欄,或使用字元變化資料類型來模擬資料列 ID 的ROWID虛擬資料欄

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

  • 您的來源 Oracle TO_CHAR程式碼可以包含具有 PostgreSQL 不支援之參數的 TO_DATE、 和 TO_NUMBER函數。依預設,DMS結構描述轉換會模擬轉換程式碼中這些參數的使用情況。

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

    • 使用原生 PostgreSQL TO_CHAR 函數

    • 使用原生 PostgreSQL TO_DATE 函數

    • 使用原生 PostgreSQL TO_NUMBER 函數

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

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

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

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

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

  • PostgreSQL 第 10 版及更舊版本不支援程序。如果您不熟悉在 Postgre 中使用程序SQL, AWS DMS 可以將 Oracle 程序轉換為 PostgreSQL 函數。若要這樣做,請選取將程序轉換為函數

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

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

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

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