全部產品
Search
文件中心

Data Transmission Service:遷移時源庫為Oracle的注意事項及限制

更新時間:Aug 19, 2025

如果遷移的來源資料庫類型為自建Oracle,您需要在配置具體的遷移任務前,參考本文的注意事項及限制,以保障資料移轉任務的正常運行。

源庫為Oracle的遷移方案概覽

根據如下遷移方案,查看遷移任務的注意事項及限制:

自建Oracle遷移至PolarDB PostgreSQL版(相容Oracle)

具體注意事項及限制如下:

類型

說明

源庫限制

  • 頻寬要求:源庫所屬的伺服器需具備足夠出口頻寬,否則將影響資料移轉速率。

  • 如果源庫通過專線的方式接入,那麼需要將其中任意1個VIP配置到串連資訊中,實現Oracle RAC通過專線接入遷移任務。

  • 如自建Oracle為RAC架構,且用專線/VPN網關/Smart Access Gateway、資料庫網關DG、雲企業網CEN和ECS的接入方式,則不支援配置ScanIP,僅支援將其中任意1個VIP配置到串連資訊中,該方式配置後不支援RAC的節點切換。

  • 如果待遷移的資料中存在varchar2類型的Null 字元串(Oracle會將其處理為null)且對應的目標庫欄位有非空約束,將會導致遷移任務失敗。

  • 如果待遷移的表開啟了FGA(Fine-Grained Audit)策略,將會導致DTS無法識別ORA_ROWSCN偽列,從而會導致遷移任務失敗。

    說明

    您可以關閉待遷移的表的FGA策略,或不遷移該表的資料。

  • 遷移對象要求:

    • 待遷移的表需具備主鍵或唯一約束,且欄位具有唯一性,否則可能會導致目標資料庫中出現重複資料。

      說明

      您也可以使用Oracle中的ROWID作為無主鍵和唯一約束表的主鍵。

    • 如果您的自建Oracle版本為12c及以上,待遷移表的名稱長度需不超過30個位元組。

    • 如遷移對象為表層級,且需進行編輯(如表列名映射),則單次遷移任務僅支援遷移至多1000張表。當超出數量限制,任務提交後會顯示請求報錯,此時建議您拆分待遷移的表,分批配置多個任務,或者配置整庫的遷移任務。

  • 如需進行增量遷移,Redo Log、Archive Log:

    • 需開啟。

    • 如為增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log儲存24小時以上,如為全量遷移和增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log至少保留7天以上(您可在全量遷移完成後將Redo Log、Archive Log儲存時間設定為24小時以上),否則DTS可能因無法擷取Redo Log、Archive Log而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的Redo Log、Archive Log儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。

  • 源庫的操作限制:

    • 在庫表結構遷移和全量遷移階段,請勿執行庫或表結構變更的DDL操作,否則資料移轉任務失敗。

    • 如僅執行全量資料移轉,請勿向源執行個體中寫入新的資料,否則會導致源和目標資料不一致。為即時保持資料一致性,建議選擇結構遷移、全量資料移轉和增量資料移轉。

    • 單獨更新大文字欄位情境不支援,任務會失敗。

其他限制

  • 執行資料移轉前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料移轉。否則全量資料移轉時DTS佔用源和目標庫一定讀寫資源,可能會導致資料庫的負載上升。

  • 由於全量資料移轉會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量遷移完成後目標資料庫的表格儲存體空間會比源執行個體的表格儲存體空間大。

  • DTS會嘗試恢複七天之內遷移失敗任務。因此業務切換至目標執行個體前,請務必結束或釋放該任務,或者將DTS訪問目標執行個體帳號的寫入權限用revoke命令回收掉。避免該任務被自動回復後,源端資料覆蓋目標執行個體的資料。

  • 不支援遷移外部表格。

  • 由於目標PolarDB PostgreSQL版(相容Oracle)叢集會產生類似pg_oid_1498503_index的唯一索引,來對應源自建Oracle的ROWID,所以INDEX會比源自建Oracle多。

  • 由於目標PolarDB PostgreSQL版(相容Oracle)叢集不支援寫入字串的終止符('\0'),若待遷移的資料中包含該終止符,DTS不會將該終止符寫入到目標庫,從而會導致資料不一致。

  • 源自建Oracle的CHECK約束遷移到目標PolarDB PostgreSQL版(相容Oracle)叢集後,會轉換成NOT NULL約束。

  • 需確保源庫和目標庫的字元集相容,否則可能會導致資料不一致或任務失敗。

  • 建議使用DTS的庫表結構遷移功能,否則可能會因為資料類型不相容而導致任務失敗。

  • 源庫和目標庫的時區必須保持一致。

  • 在增量遷移過程中,不支援使用Oracle Data Pump向源庫匯入資料,否則可能會導致資料丟失。

  • 您自訂的Type可以遷移到目標PolarDB PostgreSQL版(相容Oracle)叢集,Oracle自動產生的Type Object(即內建對象)不會被遷移。

    說明

    PolarDB PostgreSQL版(相容Oracle)叢集已經支援Oracle中的內建對象,您無需遷移。

  • DTS的校正對象為資料內容,暫不支援Sequence等中繼資料的校正,您需要自行校正。

  • 由於業務切換到目標端後,新寫入的Sequence不會按照源庫的Sequence最大值作為初始值去遞增,您需要在業務切換前,更新目標庫的Sequence值。更多資訊,請參見更新目標庫的Sequence值

  • 若為全量遷移或增量遷移任務,且來源資料庫中要遷移的表包含外鍵、觸發器、事件觸發程序,如果目標庫帳號為高許可權帳號或者super許可權帳號,全量或增量遷移時DTS會以Session層級暫時將session_replication_role的參數值設定為replica;如果目標庫帳號沒有該許可權,您需要手動將目標資料庫中session_replication_role的參數值設定為replica。在此期間(全量遷移或增量遷移過程中session_replication_role的參數值為replica),若源庫存在串聯更新、刪除操作,則可能會導致資料不一致。在DTS遷移任務釋放後,您可以將session_replication_role的參數值改回origin。

  • 若執行個體運行失敗,DTS技術支援人員將在8小時內嘗試恢複該執行個體。在恢複失敗執行個體的過程中,可能會對該執行個體進行重啟、調整參數等操作。

    說明

    在調整參數時,僅會修改DTS執行個體的參數,不會對資料庫中的參數進行修改。可能修改的參數,包括但不限於修改執行個體參數中的參數。

自建Oracle遷移至MySQL

如果遷移的目標資料庫類型為MySQL,如RDS MySQL、自建MySQL,具體注意事項及限制如下:

類型

說明

源庫限制

  • 頻寬要求:源庫所屬的伺服器需具備足夠出口頻寬,否則將影響資料移轉速率。

  • 如果源庫通過專線的方式接入,那麼需要將其中任意1個VIP配置到串連資訊中,實現Oracle RAC通過專線接入遷移任務。

  • 如自建Oracle為RAC架構,且用專線/VPN網關/Smart Access Gateway、資料庫網關DG、雲企業網CEN和ECS的接入方式,則不支援配置ScanIP,僅支援將其中任意1個VIP配置到串連資訊中,該方式配置後不支援RAC的節點切換。

  • 如果待遷移的資料中存在varchar2類型的Null 字元串(Oracle會將其處理為null)且對應的目標庫欄位有非空約束,將會導致遷移任務失敗。

  • 如果待遷移的表開啟了FGA(Fine-Grained Audit)策略,將會導致DTS無法識別ORA_ROWSCN偽列,從而會導致遷移任務失敗。

    說明

    您可以關閉待遷移的表的FGA策略,或不遷移該表的資料。

  • 遷移對象要求:

    • 待遷移的表需具備主鍵或唯一約束,且欄位具有唯一性,否則可能會導致目標資料庫中出現重複資料。

    • 如果您的自建Oracle版本為12c及以上,待遷移表的名稱長度需不超過30個位元組。

    • 如遷移對象為表層級,且需進行編輯(如表列名映射),則單次遷移任務僅支援遷移至多1000張表。當超出數量限制,任務提交後會顯示請求報錯,此時建議您拆分待遷移的表,分批配置多個任務,或者配置整庫的遷移任務。

  • 如需進行增量遷移,Redo Log、Archive Log:

    • 需開啟。

    • 如為增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log儲存24小時以上,如為全量遷移和增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log至少保留7天以上(您可在全量遷移完成後將Redo Log、Archive Log儲存時間設定為24小時以上),否則DTS可能因無法擷取Redo Log、Archive Log而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的Redo Log、Archive Log儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。

  • 源庫的操作限制:

    • 在庫表結構遷移和全量遷移階段,請勿執行庫或表結構變更的DDL操作,否則資料移轉任務失敗。

    • 如僅執行全量資料移轉,請勿向源執行個體中寫入新的資料,否則會導致源和目標資料不一致。為即時保持資料一致性,建議選擇結構遷移、全量資料移轉和增量資料移轉。

    • 單獨更新大文字欄位情境不支援,任務會失敗。

其他限制

  • 在增量遷移過程中,不支援使用Oracle Data Pump向源庫匯入資料,否則可能會導致資料丟失。

  • 不支援遷移外部表格。

  • 不支援遷移PACKAGE、PACKAGE_BODY、MATERIALIZED_VIEW、SYNONYM、TYPE、TYPE_BODY、FUNCTION、PROCEDURE、SEQUENCE、VIEW、TABLE_COMMENT、COLUMN_COMMENT、TRIGGER。

  • 若待遷移的資料中包含需要四位元組儲存的內容(例如生僻字、表情等資訊),則目標端接收資料的資料庫和表必須使用utf8mb4字元集。

    說明

    若您使用DTS遷移庫表結構,則需將目標庫中執行個體層級的參數character_set_server設定為utf8mb4。

  • 執行資料移轉前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料移轉。否則全量資料移轉時DTS佔用源和目標庫一定讀寫資源,可能會導致資料庫的負載上升。

  • 由於全量資料移轉會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量遷移完成後目標資料庫的表格儲存體空間會比源執行個體的表格儲存體空間大。

  • DTS會嘗試恢複七天之內遷移失敗任務。因此業務切換至目標執行個體前,請務必結束或釋放該任務,或者將DTS訪問目標執行個體帳號的寫入權限用revoke命令回收掉。避免該任務被自動回復後,源端資料覆蓋目標執行個體的資料。

  • 若目標庫的DDL寫入失敗,DTS任務會繼續運行,您需要在任務日誌中查看執行失敗的DDL。查看任務日誌的方法,請參見查詢任務日誌

  • 需確保源庫和目標庫的字元集相容,否則可能會導致資料不一致或任務失敗。

  • 建議使用DTS的庫表結構遷移功能,否則可能會因為資料類型不相容而導致任務失敗。

  • 源庫和目標庫的時區必須保持一致。

  • 若您將列名僅大小寫不同的欄位寫入到目標MySQL資料庫的同一個表中,可能會因為MySQL資料庫列名大小寫不敏感,導致遷移結果不符合預期。

  • 在資料移轉完成後(執行個體的運行狀態已完成),建議使用analyze table <表名>命令以確認資料均已寫入目標表。例如,在目標MySQL資料庫觸發HA切換機制後,可能會導致資料唯寫到了記憶體,從而造成資料丟失。

  • 若執行個體運行失敗,DTS技術支援人員將在8小時內嘗試恢複該執行個體。在恢複失敗執行個體的過程中,可能會對該執行個體進行重啟、調整參數等操作。

    說明

    在調整參數時,僅會修改DTS執行個體的參數,不會對資料庫中的參數進行修改。可能修改的參數,包括但不限於修改執行個體參數中的參數。

特殊情況

當目標庫為RDS MySQL時

  • RDS MySQL執行個體對錶名的英文大小寫不敏感,如果使用大寫英文建表,RDS MySQL會先把表名轉為小寫再執行建表操作。

    如果源Oracle資料庫中存在表名相同僅大小寫不同的表,可能會導致遷移對象重名並在結構遷移中提示“對象已經存在”。如果出現這種情況,請在配置遷移對象的時候,使用DTS提供的對象名映射功能對重名的對象進行重新命名,將表名轉為大寫,詳情請參見庫表列映射

  • DTS會自動在RDS MySQL中建立資料庫,如果待遷移的資料庫名稱不符合RDS MySQL的定義規範,您需要在配置遷移任務之前在RDS MySQL中建立資料庫。相關操作,請參見管理資料庫

自建Oracle遷移至PolarDB MySQL版

如果遷移的目的地組群為PolarDB MySQL版,具體注意事項及限制如下:

類型

說明

源庫限制

  • 頻寬要求:源庫所屬的伺服器需具備足夠出口頻寬,否則將影響資料移轉速率。

  • 如果源庫通過專線的方式接入,那麼需要將其中任意1個VIP配置到串連資訊中,實現Oracle RAC通過專線接入遷移任務。

  • 如自建Oracle為RAC架構,且用專線/VPN網關/Smart Access Gateway、資料庫網關DG、雲企業網CEN和ECS的接入方式,則不支援配置ScanIP,僅支援將其中任意1個VIP配置到串連資訊中,該方式配置後不支援RAC的節點切換。

  • 如果待遷移的資料中存在varchar2類型的Null 字元串(Oracle會將其處理為null)且對應的目標庫欄位有非空約束,將會導致遷移任務失敗。

  • 如果待遷移的表開啟了FGA(Fine-Grained Audit)策略,將會導致DTS無法識別ORA_ROWSCN偽列,從而會導致遷移任務失敗。

    說明

    您可以關閉待遷移的表的FGA策略,或不遷移該表的資料。

  • 遷移對象要求:

    • 待遷移的表需具備主鍵或唯一約束,且欄位具有唯一性,否則可能會導致目標資料庫中出現重複資料。

    • 如果您的自建Oracle版本為12c及以上,待遷移表的名稱長度需不超過30個位元組。

    • 如遷移對象為表層級,且需進行編輯(如表列名映射),則單次遷移任務僅支援遷移至多1000張表。當超出數量限制,任務提交後會顯示請求報錯,此時建議您拆分待遷移的表,分批配置多個任務,或者配置整庫的遷移任務。

  • 如需進行增量遷移,Redo Log、Archive Log:

    • 需開啟。

    • 如為增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log儲存24小時以上,如為全量遷移和增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log至少保留7天以上(您可在全量遷移完成後將Redo Log、Archive Log儲存時間設定為24小時以上),否則DTS可能因無法擷取Redo Log、Archive Log而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的Redo Log、Archive Log儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。

  • 源庫的操作限制:

    • 在庫表結構遷移和全量遷移階段,請勿執行庫或表結構變更的DDL操作,否則資料移轉任務失敗。

    • 如僅執行全量資料移轉,請勿向源執行個體中寫入新的資料,否則會導致源和目標資料不一致。為即時保持資料一致性,建議選擇結構遷移、全量資料移轉和增量資料移轉。

    • 單獨更新大文字欄位情境不支援,任務會失敗。

其他限制

  • 在增量遷移過程中,不支援使用Oracle Data Pump向源庫匯入資料,否則可能會導致資料丟失。

  • 不支援遷移外部表格。

  • 不支援遷移PACKAGE、PACKAGE_BODY、MATERIALIZED_VIEW、SYNONYM、TYPE、TYPE_BODY、FUNCTION、PROCEDURE、SEQUENCE、VIEW、TABLE_COMMENT、COLUMN_COMMENT、TRIGGER。

  • 若待遷移的資料中包含需要四位元組儲存的內容(例如生僻字、表情等資訊),則目標端接收資料的資料庫和表必須使用utf8mb4字元集。

    說明

    若您使用DTS遷移庫表結構,則需將目標庫中執行個體層級的參數character_set_server設定為utf8mb4。

  • 執行資料移轉前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料移轉。否則全量資料移轉時DTS佔用源和目標庫一定讀寫資源,可能會導致資料庫的負載上升。

  • 由於全量資料移轉會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量遷移完成後目標資料庫的表格儲存體空間會比源執行個體的表格儲存體空間大。

  • DTS會嘗試恢複七天之內遷移失敗任務。因此業務切換至目標執行個體前,請務必結束或釋放該任務,或者將DTS訪問目標執行個體帳號的寫入權限用revoke命令回收掉。避免該任務被自動回復後,源端資料覆蓋目標執行個體的資料。

  • 若目標庫的DDL寫入失敗,DTS任務會繼續運行,您需要在任務日誌中查看執行失敗的DDL。查看任務日誌的方法,請參見查詢任務日誌

  • 需確保源庫和目標庫的字元集相容,否則可能會導致資料不一致或任務失敗。

  • 建議使用DTS的庫表結構遷移功能,否則可能會因為資料類型不相容而導致任務失敗。

  • 源庫和目標庫的時區必須保持一致。

  • 若執行個體運行失敗,DTS技術支援人員將在8小時內嘗試恢複該執行個體。在恢複失敗執行個體的過程中,可能會對該執行個體進行重啟、調整參數等操作。

    說明

    在調整參數時,僅會修改DTS執行個體的參數,不會對資料庫中的參數進行修改。可能修改的參數,包括但不限於修改執行個體參數中的參數。

特殊情況

當目標庫為PolarDB MySQL版時:

  • PolarDB MySQL版叢集對錶名的英文大小寫不敏感,如果使用大寫英文建表,PolarDB MySQL版會先把表名轉為小寫再執行建表操作。

    如果源Oracle資料庫中存在表名相同僅大小寫不同的表,可能會導致遷移對象重名並在結構遷移中提示“對象已經存在”。如果出現這種情況,請在配置遷移對象的時候,使用DTS提供的對象名映射功能對重名的對象進行重新命名,將表名轉為大寫,詳情請參見庫表列映射

  • DTS會自動在PolarDB MySQL版中建立資料庫,如果待遷移的資料庫名稱不符合PolarDB MySQL版的定義規範,您需要在配置遷移任務之前在PolarDB MySQL版中建立資料庫。相關操作,請參見管理資料庫

自建Oracle遷移至AnalyticDB for PostgreSQL

如果遷移的目標執行個體為AnalyticDB for PostgreSQL,具體注意事項及限制如下:

類型

說明

源庫限制

  • 頻寬要求:源庫所屬的伺服器需具備足夠出口頻寬,否則將影響資料移轉速率。

  • 如果源庫通過專線的方式接入,那麼需要將其中任意1個VIP配置到串連資訊中,實現Oracle RAC通過專線接入遷移任務。

  • 如自建Oracle為RAC架構,且用專線/VPN網關/Smart Access Gateway、資料庫網關DG、雲企業網CEN和ECS的接入方式,則不支援配置ScanIP,僅支援將其中任意1個VIP配置到串連資訊中,該方式配置後不支援RAC的節點切換。

  • 如果待遷移的資料中存在varchar2類型的Null 字元串(Oracle會將其處理為null)且對應的目標庫欄位有非空約束,將會導致遷移任務失敗。

  • 如果待遷移的表開啟了FGA(Fine-Grained Audit)策略,將會導致DTS無法識別ORA_ROWSCN偽列,從而會導致遷移任務失敗。

    說明

    您可以關閉待遷移的表的FGA策略,或不遷移該表的資料。

  • 遷移對象要求:

    • 待遷移的表需具備主鍵或唯一約束,且欄位具有唯一性,否則可能會導致目標資料庫中出現重複資料。

    • 如果您的自建Oracle版本為12c及以上,待遷移表的名稱長度需不超過30個位元組。

    • 如遷移對象為表層級,且需進行編輯(如表列名映射),則單次遷移任務僅支援遷移至多1000張表。當超出數量限制,任務提交後會顯示請求報錯,此時建議您拆分待遷移的表,分批配置多個任務,或者配置整庫的遷移任務。

  • 如需進行增量遷移,Redo Log、Archive Log:

    • 需開啟。

    • 如為增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log儲存24小時以上,如為全量遷移和增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log至少保留7天以上(您可在全量遷移完成後將Redo Log、Archive Log儲存時間設定為24小時以上),否則DTS可能因無法擷取Redo Log、Archive Log而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的Redo Log、Archive Log儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。

  • 源庫的操作限制:

    • 在庫表結構遷移和全量遷移階段,請勿執行庫或表結構變更的DDL操作,否則資料移轉任務失敗。

    • 如僅執行全量資料移轉,請勿向源執行個體中寫入新的資料,否則會導致源和目標資料不一致。為即時保持資料一致性,建議選擇結構遷移、全量資料移轉和增量資料移轉。

    • 單獨更新大文字欄位情境不支援,任務會失敗。

其他限制

  • 僅支援表層級的遷移,且目標表暫不支援AO表。

  • 若使用列映射時為非全表遷移或者源與目標表結構不一致,則目標端比源端缺少的列的資料將會丟失。

  • 由於目標AnalyticDB PostgreSQL版不支援寫入字串的終止符('\0'),若待遷移的資料中包含該終止符,DTS不會將該終止符寫入到目標庫,從而會導致資料不一致。

  • 不支援遷移外部表格。

  • 不支援遷移PACKAGE、PACKAGE_BODY、MATERIALIZED_VIEW、SYNONYM、TYPE、TYPE_BODY、PROCEDURE、INDEX。

  • 在增量遷移過程中,不支援使用Oracle Data Pump向源庫匯入資料,否則可能會導致資料丟失。

  • 若待遷移的表存在主鍵,則目標表的主鍵列需與源表一致;若待遷移的表不存在主鍵,則目標表的主鍵列需與分布鍵保持一致。

  • 目標表的唯一鍵(含主鍵列)必須包含分布鍵的所有列。

  • 執行資料移轉前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料移轉。否則全量資料移轉時DTS佔用源和目標庫一定讀寫資源,可能會導致資料庫的負載上升。

  • 由於全量資料移轉會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量遷移完成後目標資料庫的表格儲存體空間會比源執行個體的表格儲存體空間大。

  • DTS會嘗試恢複七天之內遷移失敗任務。因此業務切換至目標執行個體前,請務必結束或釋放該任務,或者將DTS訪問目標執行個體帳號的寫入權限用revoke命令回收掉。避免該任務被自動回復後,源端資料覆蓋目標執行個體的資料。

  • 若執行個體運行失敗,DTS技術支援人員將在8小時內嘗試恢複該執行個體。在恢複失敗執行個體的過程中,可能會對該執行個體進行重啟、調整參數等操作。

    說明

    在調整參數時,僅會修改DTS執行個體的參數,不會對資料庫中的參數進行修改。可能修改的參數,包括但不限於修改執行個體參數中的參數。

自建Oracle遷移至阿里雲訊息佇列Kafka版或自建Kafka

類型

說明

源庫限制

  • 頻寬要求:源庫所屬的伺服器需具備足夠出口頻寬,否則將影響資料移轉速率。

  • 如果源庫通過專線的方式接入,那麼需要將其中任意1個VIP配置到串連資訊中,實現Oracle RAC通過專線接入遷移任務。

  • 如自建Oracle為RAC架構,且用專線/VPN網關/Smart Access Gateway、資料庫網關DG、雲企業網CEN和ECS的接入方式,則不支援配置ScanIP,僅支援將其中任意1個VIP配置到串連資訊中,該方式配置後不支援RAC的節點切換。

  • 如果待遷移的資料中存在varchar2類型的Null 字元串(Oracle會將其處理為null)且對應的目標庫欄位有非空約束,將會導致遷移任務失敗。

  • 如果待遷移的表開啟了FGA(Fine-Grained Audit)策略,將會導致DTS無法識別ORA_ROWSCN偽列,從而會導致遷移任務失敗。

    說明

    您可以關閉待遷移的表的FGA策略,或不遷移該表的資料。

  • 遷移對象要求:

    • 待遷移的表需具備主鍵或唯一約束,且欄位具有唯一性,否則可能會導致目標資料庫中出現重複資料。

    • 如果您的自建Oracle版本為12c及以上,待遷移表的名稱長度需不超過30個位元組。

    • 如遷移對象為表層級,且需進行編輯(如表列名映射),則單次遷移任務僅支援遷移至多1000張表。當超出數量限制,任務提交後會顯示請求報錯,此時建議您拆分待遷移的表,分批配置多個任務,或者配置整庫的遷移任務。

  • 如需進行增量遷移,Redo Log、Archive Log:

    • 需開啟。

    • 如為增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log儲存24小時以上,如為全量遷移和增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log至少保留7天以上(您可在全量遷移完成後將Redo Log、Archive Log儲存時間設定為24小時以上),否則DTS可能因無法擷取Redo Log、Archive Log而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的Redo Log、Archive Log儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。

  • 源庫的操作限制:

    • 在庫表結構遷移和全量遷移階段,請勿執行庫或表結構變更的DDL操作,否則資料移轉任務失敗。

    • 如僅執行全量資料移轉,請勿向源執行個體中寫入新的資料,否則會導致源和目標資料不一致。為即時保持資料一致性,建議選擇結構遷移、全量資料移轉和增量資料移轉。

    • 單獨更新大文字欄位情境不支援,任務會失敗。

其他限制

  • 在增量遷移過程中,不支援使用Oracle Data Pump向源庫匯入資料,否則可能會導致資料丟失。

  • 不支援遷移外部表格。

  • 不支援遷移INDEX、PARTITION、VIEW、PROCEDURE、FUNCTION、TRIGGER、FK、TABLE_COMMENT、COLUMN_COMMENT。

  • 執行資料移轉前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料移轉。否則全量資料移轉時DTS佔用源和目標庫一定讀寫資源,可能會導致資料庫的負載上升。

  • 由於全量資料移轉會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量遷移完成後目標資料庫的表格儲存體空間會比源執行個體的表格儲存體空間大。

  • DTS會嘗試恢複七天之內遷移失敗任務。因此業務切換至目標執行個體前,請務必結束或釋放該任務,或者將DTS訪問目標執行個體帳號的寫入權限用revoke命令回收掉。避免該任務被自動回復後,源端資料覆蓋目標執行個體的資料。

  • 在遷移期間,若目標Kafka發生了擴容或縮容,您需要重啟執行個體。

  • 若執行個體運行失敗,DTS技術支援人員將在8小時內嘗試恢複該執行個體。在恢複失敗執行個體的過程中,可能會對該執行個體進行重啟、調整參數等操作。

    說明

    在調整參數時,僅會修改DTS執行個體的參數,不會對資料庫中的參數進行修改。可能修改的參數,包括但不限於修改執行個體參數中的參數。

自建Oracle間遷移

如果遷移的目標資料庫類型為Oracle,具體注意事項及限制如下:

類型

說明

源庫限制

  • 頻寬要求:源庫所屬的伺服器需具備足夠出口頻寬,否則將影響資料移轉速率。

  • 如果源庫通過專線的方式接入,那麼需要將其中任意1個VIP配置到串連資訊中,實現Oracle RAC通過專線接入遷移任務。

  • 如自建Oracle為RAC架構,且用專線/VPN網關/Smart Access Gateway、資料庫網關DG、雲企業網CEN和ECS的接入方式,則不支援配置ScanIP,僅支援將其中任意1個VIP配置到串連資訊中,該方式配置後不支援RAC的節點切換。

  • 如果待遷移的資料中存在varchar2類型的Null 字元串(Oracle會將其處理為null)且對應的目標庫欄位有非空約束,將會導致遷移任務失敗。

  • 如果待遷移的表開啟了FGA(Fine-Grained Audit)策略,將會導致DTS無法識別ORA_ROWSCN偽列,從而會導致遷移任務失敗。

    說明

    您可以關閉待遷移的表的FGA策略,或不遷移該表的資料。

  • 遷移對象要求:

    • 待遷移的表需具備主鍵或唯一約束,且欄位具有唯一性,否則可能會導致目標資料庫中出現重複資料。

    • 如果您的自建Oracle版本為12c及以上,待遷移表的名稱長度需不超過30個位元組。

    • 如遷移對象為表層級,且需進行編輯(如表列名映射),則單次遷移任務僅支援遷移至多1000張表。當超出數量限制,任務提交後會顯示請求報錯,此時建議您拆分待遷移的表,分批配置多個任務,或者配置整庫的遷移任務。

  • 如需進行增量遷移,Redo Log、Archive Log:

    • 需開啟。

    • 如為增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log儲存24小時以上,如為全量遷移和增量遷移任務,DTS要求來源資料庫的Redo Log、Archive Log至少保留7天以上(您可在全量遷移完成後將Redo Log、Archive Log儲存時間設定為24小時以上),否則DTS可能因無法擷取Redo Log、Archive Log而導致任務失敗,極端情況下甚至可能會導致資料不一致或丟失。由於您所設定的Redo Log、Archive Log儲存時間低於DTS要求的時間進而導致的問題,不在DTS的SLA保障範圍內。

  • 源庫的操作限制:

    • 在庫表結構遷移和全量遷移階段,請勿執行庫或表結構變更的DDL操作,否則資料移轉任務失敗。

    • 如僅執行全量資料移轉,請勿向源執行個體中寫入新的資料,否則會導致源和目標資料不一致。為即時保持資料一致性,建議選擇結構遷移、全量資料移轉和增量資料移轉。

    • 單獨更新大文字欄位情境不支援,任務會失敗。

其他限制

  • 在增量遷移過程中,不支援使用Oracle Data Pump向源庫匯入資料,否則可能會導致資料丟失。

  • 不支援遷移外部表格。

  • 結構遷移任務不支援遷移Schema。

  • 執行資料移轉前需評估源庫和目標庫的效能,同時建議業務低峰期執行資料移轉。否則全量資料移轉時DTS佔用源和目標庫一定讀寫資源,可能會導致資料庫的負載上升。

  • 由於全量資料移轉會並發執行INSERT操作,導致目標資料庫的表產生片段,因此全量遷移完成後目標資料庫的表格儲存體空間會比源執行個體的表格儲存體空間大。

  • DTS會嘗試恢複七天之內遷移失敗任務。因此業務切換至目標執行個體前,請務必結束或釋放該任務,或者將DTS訪問目標執行個體帳號的寫入權限用revoke命令回收掉。避免該任務被自動回復後,源端資料覆蓋目標執行個體的資料。

  • 若執行個體運行失敗,DTS技術支援人員將在8小時內嘗試恢複該執行個體。在恢複失敗執行個體的過程中,可能會對該執行個體進行重啟、調整參數等操作。

    說明

    在調整參數時,僅會修改DTS執行個體的參數,不會對資料庫中的參數進行修改。可能修改的參數,包括但不限於修改執行個體參數中的參數。