已知限制和建議

本頁說明已知限制 (包括處理實體的特殊考量,例如 主鍵 外鍵和觸發事件),以及使用資料庫移轉服務進行異構 Oracle 遷移作業的 建議做法

不會遷移的項目

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

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

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

資料編碼

  • 資料庫移轉服務僅支援 UTF8 為目的地資料庫設定編碼。系統不支援包含非 UTF8 編碼集的字元,
  • 資料庫移轉服務支援下列 Oracle 資料庫的字元集編碼:
    • AL16UTF16
    • AL32UTF8
    • IN8ISCII
    • JA16SJIS
    • 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

  • 在遷移期間,目的地 Cloud SQL 資料庫可供寫入,以便在需要時套用資料操縱語言 (DML) 變更。請注意,請勿變更資料庫設定或表格結構,否則可能會導致遷移程序中斷或影響資料完整性。

配額

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