已知限制和建議

本頁說明已知限制 (包括處理 主鍵 外鍵和觸發程序等實體的特殊注意事項),以及使用資料庫移轉服��進行異質 Oracle 遷移時的 建議做法

不會遷移的項目

  • 使用者和權限不會遷移。
  • 如果遷移作業正在進行中,系統不會自動遷移結構定義變更。如果在遷移期間變更結構定義,請先更新轉換工作區的結構定義變更,然後重新整理相關的遷移工作。詳情請參閱 將更新的結構定義或資料表新增至遷移作業
  • SAVEPOINT 陳述式不受支援,如果發生回溯,可能會導致資料不一致。
  • 資料庫移轉服務會複製使用者定義的資料型別,但只會儲存您衍生使用者定義型別的基礎資料型別。舉例來說,如果您根據 VARCHAR2 資料類型定義 USERNAME 資料類型,資料會以 VARCHAR 形式儲存在目的地。

資料庫、交易和資料一致性

  • 資料庫移轉服務不會在交易發生時複製交易,因此遷移作業最終會保持一致。遷移作業會從多個資料表匯入資料。資料載入目的地的順序可能不同,但來源停止寫入資料並清除遷移緩衝區後,目的地會與來源重新對齊。
  • 如果是異質 Oracle 遷移作業,資料庫遷移服務每項遷移工作只能遷移一個資料庫。
  • 資料庫遷移服務支援 Oracle 多租戶架構 (CDB/PDB), 但每個遷移工作只能遷移一個可插式資料庫。
  • Oracle Label Security (OLS) 不會複製。
  • 在遷移過程中,來源資料庫中任何回溯的交易,都可能會暫時顯示在目的地 (如果交易時間夠長)。
  • 資料庫移轉服務不支援使用 Oracle Real Application Clusters (RAC) 環境中的單一用戶端存取名稱 (SCAN) 功能,直接連線至資料庫。如要瞭解如何透過公開 IP 許可清單連線至這類環境,請參閱「 排解 Oracle SCAN 錯誤」。

資料編碼

  • 資料庫移轉服務僅支援為目的地資料庫設定 UTF8 編碼。系統不支援包含不屬於 UTF8 編碼集的字元的結構定義和資料表名稱。
  • 資料庫移轉服務支援 Oracle 資料庫的下列字元集編碼:
    • AL16UTF16
    • AL32UTF8
    • IN8ISCII
    • IW8ISO8859P8
    • JA16SJIS
    • JA16SJISTILDE
    • KO16MSWIN949
    • US7ASCII
    • UTF8
    • WE8ISO8859P1
    • WE8ISO8859P9
    • WE8ISO8859P15
    • WE8MSWIN1252
    • ZHT16BIG5

表格、結構定義和其他物件

  • 遷移期間不支援對資料、結構定義和中繼資料進行資料定義語言 (DDL) 變更。如果在移轉期間更新結構定義,您需要將變更內容拉至轉換工作區、轉換程式碼、清除目的地,然後再次執行移轉工作。
  • 表格資料欄名稱只能包含英數字元或底線 (_)。
  • 表格或資料欄的名稱長度上限為 30 個字元。 資料庫移轉服務無法複製超過此限制的資料表,或包含名稱超過此限制的資料欄的資料表。
  • 系統不支援索引組織表 (IOT)。
  • 全域臨時資料表需要在目的地安裝並建立 pgtt PostgreSQL 擴充功能。
  • 如果是 BFILE 類型的資料欄,系統只會複製檔案路徑。檔案內容不會複製。
  • 對於 Oracle 11g,系統不支援資料欄含有 ANYDATAUDT 資料類型的資料表,因此不會複製整個資料表。
  • 使用 dbms_job dbms_scheduler 排定的工作不會遷移。
  • 具體化檢視定義會遷移,但具體化資料不會。遷移完成後,請重新整理具體化檢視區塊,以便從遷移的表格填入資料。
  • 系統會遷移序列值,但來源資料庫中的值可能會在遷移完成前持續遞增。遷移完成後,請更新目標執行個體中的序列值,確保與來源資料庫中的值相符。
  • 遷移工作最多只能遷移 10,000 個資料表。
  • 資料列的大小上限為 100 MB。如果資料列超過 100 MB 的限制,系統就不會遷移,且遷移作業會顯示錯誤。
  • 遷移作業開始後建立的任何資料表,都不會自動遷移。首先,您需要在轉換工作區中提取結構定義,將轉換後的定義套用至目的地,然後更新遷移工作。

資料類型限制

Oracle 遷移作業不支援下列資料類型:

  • ANYDATA (如果是 Oracle 11g,系統完全不支援含有 ANYDATA 的資料表,也不會複製這些資料表。)
  • BFILE
  • INTERVAL DAY TO SECOND
  • INTERVAL YEAR TO MONTH
  • LONG/LONG RAW
  • SDO_GEOMETRY
  • UDT
  • UROWID
  • XMLTYPE
  • 零時差安全漏洞 (TIMESTAMP)

主鍵注意事項

沒有主鍵的資料表無法保證複製作業的一致性。 資料庫移轉服務只會遷移含有主鍵的資料表。如果來源資料庫包含沒有主鍵的資料表,當您 轉換來源程式碼和結構定義時,資料庫移轉服務轉換工作區會自動在目的地資料表中建立任何遺失的主鍵。

如果您使用舊版轉換工作區,則必須先在目的地資料庫的轉換資料表中手動建立主鍵限制,才能開始遷移作業。詳情請參閱「 舊版轉換工作區」。

外鍵和觸發條件的注意事項

來源資料庫中的外部鍵和觸發程序可能會導致資料完整性問題,甚至導致遷移工作失敗。如要避免這些問題,請使用遷移使用者的 REPLICATION 選項,略過外鍵和觸發條件。或者,您也可以捨棄目的地資料庫中的所有外鍵和觸發程序,並在遷移作業完成後重新建立。

觸發條件

資料庫移轉服務複製的資料已納入來源資料庫觸發程序所做的任何變更。如果目的地啟用觸發程序,這些程序可能會再次觸發並操縱資料,導致資料完整性或重複問題。

外鍵

資料庫移轉服務不會以交易方式複製資料,因此資料表可能會以非預期的順序遷移。如果存在外鍵,且使用外鍵的子項資料表在父項資料表之前遷移,您可能會遇到複製錯誤。

建議

  • 建立目的地 Cloud SQL 資料庫時,請務必使用足夠的運算和記憶體資源,以滿足移轉需求。建議選用至少具備雙核心 CPU 的機器類型。

    舉例來說,假設機器名稱為「db-custom」,內含 2 個 CPU 和 3840 MB 的 RAM,則機型名稱的格式為「db-custom-2-3840」。db-customdb-custom-2-3840

  • 遷移期間,目的地 Cloud SQL 資料庫可供寫入,因此如有需要,可套用資料操縱語言 (DML) 變更。請謹慎操作,不要變更資料庫設定或表格結構,否則可能會導致遷移程序中斷或影響資料完整性。

配額

  • 無論何時均可存在多達 2,000 個連線設定檔和 1,000 個遷移工作。如要建立更多空間,可以刪除遷移工作 (包含已完成的工作) 和連線設定檔。