日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

遷移 Oracle 數據庫的數據至 OceanBase 數據庫 Oracle 租戶

本文為您介紹如何使用數據傳輸遷移 Oracle 數據庫的數據至 OceanBase 數據庫 Oracle 租戶。

重要

如果數據遷移任務長期處于非活躍狀態(任務狀態為 失敗已暫停已完成),受增量日志保留時長等影響,任務可能無法恢復。數據傳輸將主動釋放處于非活躍狀態超過 7 天的數據遷移任務,以回收相關資源,建議您為任務配置告警并及時處理任務相關異常。

前提條件

  • 數據傳輸已具備云資源訪問權限。詳情請參見 數據傳輸遷移角色授權

  • 已為源端 Oracle 數據庫和目標端 OceanBase 數據庫 Oracle 租戶創建專用于數據遷移的數據庫用戶,并為其賦予相關權限。詳情請參見 創建數據庫用戶

  • 已在目標端 OceanBase 數據庫 Oracle 租戶創建對應的數據庫。OceanBase 數據遷移功能支持遷移表和列,不支持遷移庫,您需要提前在目標端創建對應的數據庫。

  • Oracle 源實例必須開啟 Archive Log,并且在數據傳輸增量復制前已經切換過 LogFile。

  • Oracle 源實例必須已經安裝并可正常使用 LogMiner 工具。

    您可以通過 LogMiner 工具獲取 Oracle 歸檔日志文件中的具體內容。

  • 確認 Oracle 實例已開啟數據庫級別或者表級別的補償日志。

  • 開啟數據庫級別的 PK 和 UK 補償日志,當無需同步的表產生較多不必要的日志時,會增加 LogMiner Reader 拉取日志的壓力和 Oracle 自身的壓力。所以,數據傳輸支持 Oracle 數據庫僅開啟表級別的 PK 和 UK 補償日志。但是,如果在創建遷移任務時,針對非 PK 列或 UK 列設置了 ETL 過濾,請開啟對應列的補償日志,或者直接開啟所有列的補償日志。

  • Oracle 機器和數據傳輸機器之間需要進行時鐘同步(例如配置 NTP 服務),否則會存在數據風險。如果是 Oracle RAC,則多個 Oracle 實例之間也需要進行時鐘同步。

  • 如果源端是通過數據庫網關接入的 Oracle 數據庫,請確保已通過數據庫網關接入阿里云,詳情請參見 快速入門

使用限制

  • 源端數據庫的操作限制

    請勿在結構遷移和全量遷移階段執行庫或表結構變更的 DDL 操作,否則可能造成數據遷移任務中斷。

  • 數據傳輸支持的 Oracle 數據庫版本為 10G/11G/12C/18C/19C,12C 及之后版本包含數據庫容器(Container Database,CDB)和可插拔數據庫(Pluggable Database,PDB)。

  • 數據傳輸僅支持遷移普通表和視圖。

  • 數據傳輸僅支持遷移庫名、表名和列名為 ASCII 碼且不包含特殊字符(包括換行、空格,以及 .|"'`()=;/&\)的對象。

  • 目標端是數據庫的情況下,數據傳輸不支持目標端存在觸發器(Trigger)。如果存在,可能導致數據遷移失敗。

  • 數據傳輸不支持遷移 Oracle 數據庫中的索引組織表(IOT,Index-Organized Table,否則會出現數據遷移任務中斷的問題。

  • 數據類型的限制

    • 不支持表中全部列均為 LOB 類型(BLOB/CLOB/NCLOB)的增量數據同步。

    • 對于無主鍵且包含 LOB 類型字段的表,反向增量會出現數據質量問題。

  • 數據源標識和用戶賬號等,在數據傳輸系統內是全局唯一的。

  • Oracle 數據庫的增量日志解析最大支持 5T/天。

  • Oracle 數據庫 11G 及之前版本不支持創建超過 30 個字節的數據庫對象。在反向增量步驟中,請注意不能在 OceanBase 數據庫 Oracle 租戶中創建大于本限制的數據庫對象。

  • 數據傳輸不支持遷移 Oracle 數據庫 12C 及之后版本中超過 30 個字節的數據庫對象(包括 Schema、表和列等)。如果您需要遷移超過 30 個字節的數據庫對象,請聯系技術支持人員。

  • 數據傳輸不支持源端 Oracle 數據庫執行某些 UPDATE 命令。以下示例為一個不支持的 UPDATE 命令。

     UPDATE TABLE_NAME SET KEY=KEY+1;

    上述示例中,TABLE_NAME 是表名,KEY 是定義為主鍵的 NUMERIC 類型的列。

  • 自建數據庫所在的 VPC 必須和 OceanBase 數據庫位于同一個地域。

注意事項

  • 當需要進行 Oracle 數據庫的增量同步時,Oracle 數據庫單個歸檔文件的大小建議小于 2GB。

  • Oracle 數據庫的歸檔文件保存 2 天以上,否則由于某個時間段歸檔量陡增等情況,準備恢復時沒有了歸檔文件,將無法恢復。

  • 如果源端 Oracle 數據庫存在交換主鍵的 DML 語句,將導致數據傳輸解析日志異常,遷移至目標端時存在數據丟失的問題。交換主鍵的 DML 語句示例如下:

    update test set c1=(case when c1=1 then 2 when c1=2 then 1 end) where c1 in (1,2);
  • Oracle 實例的字符集配置可以為 AL32UTF8、AL16UTF16、ZHS16GBK 和 GB18030。

    如果源端字符集為 UTF-8,建議目標端使用兼容源端的字符集(例如,UTF-8、UTF-16 等),避免因字符集不兼容導致目標端出現亂碼等問題。

  • 遷移 Oracle 數據庫的數據至 OceanBase 數據庫 Oracle 租戶時,禁止所有表進行導入、導出、Alter Table、Flashback Table、分區分裂或合并等會導致 ROWID 變更的操作。

    當源端 Oracle 數據庫存在更新分區鍵、合并分區等影響 RowID 行為的操作時,目標端 OceanBase 數據庫 Oracle 租戶增加了隱藏列依賴 RowID,可能導致數據丟失的風險。

  • 節點之間的時鐘不同步,或者電腦終端和服務器之間的時鐘不同步,均可能導致延遲時間(增量同步/反向增量)不準確。

    例如,如果時鐘早于標準時間,可能導致延遲時間為負數。如果時鐘晚于標準時間,可能導致延遲。

  • 由于中國曾經實行夏令時的歷史原因,導致 Oracle 數據庫至 OceanBase 數據庫 Oracle 租戶的增量同步中,1986 年~1991 年的夏令時開始和結束的日期,以及 1988 年 4 月 10 日~ 4 月 17 日,TIMESTAMP(6) WITH TIME ZONE 類型,源端和目標端可能存在 1 小時的時間差。

  • 在未開啟同步 DDL 的情況下,如果您變更目標端的唯一索引,需要重啟數據遷移任務,否則可能存在數據不一致的問題。

  • 如果數據遷移任務沒有啟用正向切換,請刪除目標端數據庫對應的唯一索引和偽列。如果不刪除唯一索引和偽列,會導致無法寫入數據,以及往下游導入數據時,會重新生成偽列,導致與源端數據庫的偽列發生沖突。

    如果數據遷移任務已啟用正向切換,數據傳輸會根據數據遷移任務的類型,自動刪除隱藏列和唯一索引。詳情請參見 數據遷移服務隱藏列機制說明

  • 對于 Oracle 數據庫至 OceanBase 數據庫 Oracle 租戶的增量同步,如果有新增的無主鍵表遷移,數據傳輸不會自動刪除在 OceanBase 數據庫 Oracle 租戶目標端添加的隱藏列和唯一索引。在進行反向遷移前,請您手動刪除。

    您可以查看 logs/msg/manual_table.log 文件,確認增量同步階段添加的無主鍵表。

  • 當源端和目標端的字符編碼配置不同時,結構遷移會提供字段長度定義擴大的策略。例如,字段長度擴大 1.5 倍,長度單位從 BYTE 轉為 CHAR 等。

    轉換后可以確保源端不同字符集中的數據能成功遷移至目標端,但割接后反向增量可能會出現數據超長無法寫回源端的問題。

  • 如果源端存在包含時區信息的數據類型(例如 TIMESTAMP WITH TIME ZONE),請您確保目標端數據庫支持并存在源端對應的時區,否則將導致數據遷移過程中產生數據不一致的問題。

  • 庫表匯聚場景下:

    • 建議您使用匹配規則的方式映射源端和目標端的關系。

    • 建議您自行在目標端創建表結構。如果使用數據傳輸創建,請在結構遷移步驟中跳過部分失敗對象。

  • 請檢查 Oracle 數據庫回收站內的對象。當對象數量大于 100 時,容易造成內部表查詢超時,請進行回收站的對象清理工作。

    • 檢查回收站是否打開。

      SELECT Value FROM V$parameter WHERE Name = 'recyclebin';
    • 檢查回收站內對象的數量。

      SELECT COUNT(*) FROM RECYCLEBIN;
  • 如果在創建數據遷移任務時,您僅配置了 增量同步,數據傳輸要求源端數據庫的歸檔日志保存 48 小時以上。

    如果在創建數據遷移任務時,您配置了 全量遷移+增量同步,數據傳輸要求源端數據庫的歸檔日志至少保留 7 天以上。否則數據傳輸可能因無法獲取增量日志而導致數據遷移任務失敗,甚至導致源端和目標端數據不一致。

  • 如果源端或目標端存在僅大小寫不同的表對象,可能會因為源端或目標端大小寫不敏感導致數據遷移的結果不符合預期。

支持的源端和目標端實例類型

下表中,OceanBase 數據庫 Oracle 租戶簡稱為 OB_Oracle。

源端

目標端

Oracle(VPC 內自建數據庫)

OB_Oracle(OceanBase 集群實例)

Oracle(數據庫網關)

OB_Oracle(OceanBase 集群實例)

Oracle(公網 IP 自建數據庫)

OB_Oracle(OceanBase 集群實例)

數據類型映射

重要
  • CLOB 和 BLOB 類型的數據必須小于 48 MB。

  • 不支持遷移 ROWID、BFILE、XMLType、UROWID、UNDEFINED 和 UDT 類型的數據。

  • 不支持 LONG 或 LONG RAW 類型的表進行增量同步。

Oracle 數據庫

OceanBase 數據庫 Oracle 租戶

CHAR(n CHAR)

CHAR(n CHAR)

CHAR(n BYTE)

CHAR(n BYTE)

NCHAR(n)

NCHAR(n)

VARCHAR2(n)

VARCHAR2(n)

NVARCHAR2(n)

NVARCHAR2(n)

NUMBER(n)

NUMBER(n)

NUMBER (p, s)

NUMBER(p,s)

RAW

RAW

CLOB

CLOB

NCLOB

NVARCHAR2

說明

OceanBase 數據庫 Oracle 租戶中,NVARCHAR2 類型的字段不支持空值。如果源端存在空值,則以字符串 NULL 表示。

BLOB

BLOB

REAL

FLOAT

FLOAT(n)

FLOAT

BINARY_FLOAT

BINARY_FLOAT

BINARY_DOUBLE

BINARY_DOUBLE

DATE

DATE

TIMESTAMP

TIMESTAMP

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

TIMESTAMP WITH LOCAL TIME ZONE

INTERVAL YEAR(p) TO MONTH

INTERVAL YEAR(p) TO MONTH

INTERVAL DAY(p) TO SECOND

INTERVAL DAY(p) TO SECOND

LONG

CLOB

重要

該類型不支持增量同步。

LONG RAW

BLOB

重要

該類型不支持增量同步。

SDO_GEOMETRY

SDO_GEOMETRY

檢查和修改 Oracle 實例的系統配置

您需要進行下述操作:

  1. 在源端 Oracle 數據庫開啟歸檔模式

  2. 在源端 Oracle 數據庫開啟補償日志

  3. (可選)設置 Oracle 數據庫的系統參數

在源端 Oracle 數據庫開啟歸檔模式

SELECT log_mode FROM v$database;

log_mode 字段需要是 archivelog。否則,您需要根據下述方法進行修改。

  1. 執行下述命令,開啟歸檔模式。

    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER DATABASE ARCHIVELOG;
    ALTER DATABASE OPEN;
  2. 執行下述命令,查看歸檔日志的路徑和配額。

    檢查recovery file 的路徑和配額,建議 db_recovery_file_dest_size 的配置值盡量大一些。另外,開啟歸檔后,需要用 RMAN 等方法定期清理歸檔日志。

    SHOW PARAMETER db_recovery_file_dest;
  3. 根據業務需要更改歸檔日志的配額。

    ALTER SYSTEM SET db_recovery_file_dest_size =50G SCOPE = BOTH;

在源端 Oracle 數據庫開啟補償日志

LogMiner Reader 支持 Oracle 系統配置僅開啟表級別的補償日志。如果在遷移過程中,源端 Oracle 數據庫新創建了表并需要遷移,則您需要在執行 DML 操作前,打開 PK、UK 的補償日志。否則,數據傳輸會報日志不全的異常。

對于源端和目標端索引不一致、ETL 不符合預期和分區表遷移性能降低等問題,您需要添加以下補償日志:

  • 添加 DataBase 級別或 Table 級別的 supplemental_log_data_pk supplemental_log_data_ui

  • 添加具體列到補償日志

    • 添加源端和目標端中所有 PK 和 UK 涉及的列。解決源端和目標端索引不一致的問題。

    • 如果有 ETL,請添加 ETL 的列。解決 ETL 不符合預期的問題。

    • 如果目標端是分區表,請添加分區列。解決無法進行分區裁剪,導致降低寫入性能的問題。

    您可以執行下述語句,檢查添加結果。

    SELECT log_group_type FROM all_log_groups WHERE OWNER = '<schema_name>' AND table_name = '<table_name>';

    查詢結果中包含 ALL COLUMN LOGGING,則檢查通過。如果未包含,請查看ALL_LOG_GROUP_COLUMNS表中,是否包含上述并集的所有列。

    添加具體列至補償日志的方式,示例如下:

    ALTER TABLE <table_name> ADD SUPPLEMENTAL LOG GROUP <table_name_group> (c1, c2) ALWAYS;

下表為數據遷移任務在運行過程中,如果進行 DDL 操作,可能會遇到的風險及解決方式。

操作

風險

解決方式

CREATE TABLE(且該表需要同步)

如果該表存在目標端是分區表,源和目標端的索引不一致,需要進行 ETL 等情況,可能會影響數據遷移性能,導致 ETL 不符合預期。

必須開啟 DataBase 級別的 PK、UK 補償日志。手動添加涉及的列至補償日志。

增加、刪除和修改 PK/UK/分區列,或修改 ETL 列

會不滿足啟動時要求添加補償日志的規則,可能導致數據不一致或數據遷移性能降低的問題。

根據上述補償日志的規則進行相應的添加。

LogMiner Reader 根據以下兩種方式進行檢查。如果檢查到補償日志未打開,則退出。

  • DataBase 級別打開 supplemental_log_data_pk supplemental_log_data_ui

    執行下述命令,檢查是否已打開補償日志。如果查詢結果均為 YES,表示已打開補償日志。

    SELECT supplemental_log_data_pk, supplemental_log_data_ui FROM v$database;

    如果未打開,請執行下述操作:

    1. 執行下述語句,打開補償日志。

      ALTER DATABASE ADD supplemental log DATA(PRIMARY KEY, UNIQUE) columns;
    2. 打開后,切換 2 次歸檔日志,并且啟動任務前需要等待 5 分鐘以上。如果是 Oracle RAC,多個實例交替切換。

      ALTER SYSTEM SWITCH LOGFILE;

      Oracle RAC 的情況下,如果一個實例切換多次后,再切換到另外的實例,而非交替切換,則在定位起始拉取文件時,后切換的實例將可能定位到開啟補償日志前的日志。

  • Table 級別打開 supplemental_log_data_pk supplemental_log_data_ui

    1. 執行下述語句,確認 DataBase 級別的 supplemental_log_data_min 是否已打開。

      SELECT supplemental_log_data_min FROM v$database;

      查詢結果為 YES IMPLICIT,表示已打開。

    2. 執行下述語句,確認待同步表的表級別補償日志是否打開。

      SELECT log_group_type FROM all_log_groups WHERE OWNER = '<schema_name>' AND table_name = '<table_name>';

      每種補償日志返回一行,結果中需要包含 ALL COLUMN LOGGING,或者 PRIMARY KEY LOGGING UNIQUE KEY LOGGING

      如果未打開表級別的補償日志,請執行下述語句。

      ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE) COLUMNS;
    3. 打開后,切換 2 次歸檔日志,并且啟動任務前需要等待 5 分鐘以上。如果是 Oracle RAC,多個實例交替切換。

      ALTER SYSTEM SWITCH LOGFILE;

設置 Oracle 數據庫的系統參數(可選)

建議您將 Oracle 數據庫的系統參數 _log_parallelism_max 設置為 1,通常該系統參數默認為 2。

  1. 查詢_log_parallelism_max的值。您可以通過以下兩種方式進行查詢:

    • 方式一

      SELECT NAM.KSPPINM,VAL.KSPPSTVL,NAM.KSPPDESC FROM SYS.X$KSPPI NAM,SYS.X$KSPPSV VAL WHERE NAM.INDX= VAL.INDX AND NAM.KSPPINM LIKE '_%' AND UPPER(NAM.KSPPINM) LIKE '%LOG_PARALLEL%';
    • 方式二

      SELECT VALUE FROM v$parameter WHERE name = '_log_parallelism_max';
  2. 修改 _log_parallelism_max 的值。進行修改時,分為以下兩種情況:

    • Oracle RAC 修改

      ALTER SYSTEM SET "_log_parallelism_max" = 1 SID = '*' SCOPE = spfile;
    • 非 Oracle RAC 修改

      ALTER SYSTEM SET "_log_parallelism_max" = 1 SCOPE = spfile;

    Oracle 數據庫 10G 版本修改 _log_parallelism_max 參數時,如果報錯 write to SPFILE requested but no SPFILE specified at startup,請執行下述操作:

    CREATE SPFILE FROM PFILE;
    SHUTDOWN IMMEDIATE;
    STARTUP;
    SHOW PARAMETER SPFILE;
  3. 修改系統參數 _log_parallelism_max 后,請重啟實例,切換 2 次歸檔日志,并且啟動任務前需要等待 5 分鐘以上。

操作步驟

  1. 登錄 OceanBase 管理控制臺,購買數據遷移任務。

    詳情請參見 購買數據遷移任務

  2. 數據傳輸 > 數據遷移 頁面,單擊新購買的數據遷移任務后的 配置

    image.png

    如果您需要引用已有的任務配置信息,可以單擊 引用配置。詳情請參見 引用數據遷移任務配置

  3. 選擇源和目標 頁面,配置各項參數。

    參數

    描述

    遷移任務名稱

    建議使用中文、數字和字母的組合。名稱中不能包含空格,長度不能超過 64 個字符。

    標簽(可選)

    單擊文本框,在下拉列表中選擇目標標簽。您也可以單擊 管理標簽 進行新建、修改和刪除。詳情請參見 通過標簽管理數據遷移任務

    源端

    如果您已新建 Oracle 數據源,請從下拉列表中進行選擇。如果未新建,請單擊下拉列表中的 新建數據源,在右側對話框進行新建。參數詳情請參見 新建 Oracle 數據源

    目標端

    如果您已新建 OceanBase 數據庫 Oracle 租戶數據源,請從下拉列表中進行選擇。如果未新建,請單擊下拉列表中的 新建數據源,在右側對話框進行新建。參數詳情請參見 新建 OceanBase 數據源

    重要

    目標端僅支持 OceanBase 數據庫 Oracle 租戶的 實例類型OceanBase 集群實例

  4. 單擊 下一步。在 選擇遷移類型 頁面,選擇當前數據遷移任務的遷移類型。

    遷移類型 包括 結構遷移全量遷移增量同步全量校驗 反向增量

    image

    遷移類型

    描述

    結構遷移

    結構遷移任務開始后,數據傳輸會遷移源庫中的數據對象定義(表、索引、約束、注釋和視圖等)至目標端數據庫中,并自動過濾臨時表。

    全量遷移

    全量遷移任務開始后,數據傳輸會遷移源端庫表的存量數據至目標端數據庫對應的表中。如果選擇 全量遷移,建議您在遷移數據前,使用 GATHER_SCHEMA_STATSGATHER_TABLE_STATS 語句收集 Oracle 數據庫的統計信息。

    增量同步

    增量同步任務開始后,數據傳輸會同步源端數據庫發生變化的數據(新增、修改或刪除)至目標端數據庫對應的表中。

    增量同步 包括 DML 同步DDL 同步,您可以根據需求進行自定義配置。詳情請參見 自定義配置 DDL/DML增量同步 的使用限制如下:

    • 多表到單表的匯集場景,均不支持 DDL 同步。

    • 如果您選擇了 DDL 同步,當源端數據庫發生數據傳輸不支持的同步 DDL 操作時,會存在數據遷移中斷的風險。

    • 如果 DDL 操作為新增列,請將該列的屬性設置為 Null,否則會存在數據遷移中斷的風險。

    全量校驗

    在全量遷移完成、增量數據同步至目標端并與源端基本追平后,數據傳輸會自動發起一輪針對源端數據庫配置的數據表和目標表的全量數據校驗任務。

    • 如果選擇 全量校驗,建議您在全量校驗開始前,分別收集 Oracle 數據庫和 OceanBase 數據庫 Oracle 租戶的統計信息。

    • 如果您選擇了 增量同步,且 DML 同步 選項中未選擇所有的 DML,則數據傳輸不支持本場景下的全量數據校驗。

    反向增量

    反向增量任務開始后,可以實時將業務切換后在目標端數據庫產生的變更數據回流至源端數據庫。

    通常反向增量會復用增量同步的配置,您也可以根據實際需求進行自定義配置。

  5. 單擊 下一步。在 選擇遷移對象 頁面,選擇當前數據遷移任務的遷移對象。

    您可以通過 指定對象匹配規則 兩個入口選擇遷移對象。

    重要
    • 待遷移的表名和其中的列名不能包含中文字符。

    • 當數據庫的庫名或表名存在“$$”字符時,會影響數據遷移任務的創建。

    • 如果您在 選擇遷移類型 步驟已勾選 DDL 同步,建議通過匹配規則方式選擇遷移對象,以確保所有符合遷移對象規則的新增對象都將被同步。如果您通過指定對象方式選擇遷移對象,則新增對象或重命名后的對象將不會被同步。

    • 選擇 指定對象,在左側選中需要遷移的對象,單擊 >,將其添加至右側列表中。您可以選擇一個或多個庫的表、視圖作為遷移對象。

      數據傳輸支持通過文本導入對象,并支持對目標端對象進行重命名、設置行過濾、查看列信息,以及移除單個或全部遷移對象等操作。

      說明

      通過 匹配規則 方式選擇遷移對象時,重命名能力由匹配規則語法覆蓋,操作處僅支持設置過濾條件。詳情請參見 配置匹配規則

      image.png

      操作

      步驟

      導入對象

      1. 在選擇區域的右側列表中,單擊右上角的 導入對象

      2. 在對話框中,單擊 確定

        重要

        導入會覆蓋之前的操作選擇,請謹慎操作。

      3. 導入遷移對象 對話框中,導入需要遷移的對象。

        您可以通過導入 CSV 文件的方式進行庫表重命名、設置行過濾條件等操作。詳情請參見 下載和導入遷移對象配置

      4. 單擊 檢驗合法性

        完成遷移對象導入后,請先檢驗合法性。目前暫不支持列字段映射。

      5. 通過檢驗后,單擊 確定

      重命名

      數據傳輸支持重命名遷移對象的名稱,詳情請參見 數據庫庫表重命名

      設置

      數據傳輸支持 WHERE 條件實現行過濾,詳情請參見 SQL 條件過濾數據

      您還可以在 查看列 區域,查看遷移對象的列信息。

      移除/全部移除

      數據傳輸支持在數據映射時,對暫時選中到目標端的單個或多個對象進行移除操作。

      • 移除單個遷移對象

        在選擇區域的右側列表中,鼠標懸停至目標對象,單擊顯示的 移除,即可移除該遷移對象。

      • 移除全部遷移對象

        在選擇區域的右側列表中,單擊右上角的 全部移除。在對話框中,單擊 確定,即可移除全部遷移對象。

    • 選擇 匹配規則,詳情請參見 配置匹配規則

  6. 單擊 下一步。在 遷移選項 頁面,配置各項參數。

    • 全量遷移

      選擇遷移類型 頁面,選中 全量遷移,才會顯示下述參數。

      image

      參數

      描述

      讀取并發配置

      該參數用于配置全量遷移階段從源端讀取數據的并發數,最大限制為 512.并發數過高可能會造成源端壓力過大,影響業務。

      寫入并發配置

      該參數用于配置全量遷移階段往目標端寫入數據的并發數,最大限制為 512。并發數過高可能會造成目標端壓力過大,影響業務。

      全量遷移速率限制

      您可以根據實際需求決定是否開啟全量遷移速率限制。如果開啟,請設置 RPS(全量遷移階段每秒最多可以遷移至目標端的數據行數的最大值限制)和 BPS(全量遷移階段每秒最多可以遷移至目標端的數據量的最大值限制)。

      說明

      此處設置的 RPS 和 BPS 僅作為限速和限流能力,全量遷移實際可以達到的性能受限于源端、目標端、實例規格配置等因素的影響。

      目標端表對象存在記錄時處理策略

      • 選擇 忽略:當目標端表對象存在數據時,如果原數據與寫入數據沖突,數據傳輸采用將沖突數據記錄日志,保留原數據不變的策略進行數據寫入。

        重要

        選擇 忽略,全量校驗將使用 IN 模式拉取數據,無法校驗目標端存在源端沒有的數據的場景,并且校驗性能會有一定程度降級。

      • 選擇默認值 停止遷移:當目標端表對象存在數據時,全量遷移會報錯不允許遷移,請處理好目標端數據后再繼續遷移。

        重要

        如果出錯后單擊恢復,數據傳輸將忽略該配置選項,繼續遷移表數據,請謹慎操作。

      是否允許索引后置

      您可以設置是否允許全量數據遷移完成后再創建索引,索引后置功能能夠縮短全量遷移耗時。選擇索引后置的注意事項,請參見表格下方的說明。

      重要
      • 選擇遷移類型 頁面同時選中 結構遷移 全量遷移,才會顯示該參數。

      • 僅非唯一鍵索引支持后置創建。

      • 執行索引時,如果目標端 OceanBase 數據庫 Oracle 租戶遇到name is already used by an existing object報錯,數據傳輸會進行忽略,默認索引創建成功,不會再重復創建。

      當您選擇 允許 后,請進行下述配置:

      • 單條索引 DDL 并發配置:并行度越高,資源消耗越大,遷移速度越快。

      • 最大并發索引 DDL 數量配置:同一時刻,系統調用的后置索引 DDL 數量的最大值限制。

      允許索引后置的情況下,建議您根據 OceanBase 數據庫的硬件條件和當前業務流量情況,自行調節參數。

      • 如果您使用的是 OceanBase 數據庫 V4.x,請通過黑屏客戶端工具調整以下 sys 租戶參數和業務租戶參數。

        • 調整 sys 租戶參數

          // parallel_servers_target 用于設置每個 Server 上的并行查詢排隊條件。
          // 如果完全為了性能,建議您將該參數調整為大于物理 CPU 的值,例如 1.5 倍。同時設置的值不超過 64,避免產生 OceanBase 數據庫內核搶鎖問題。
          set global parallel_servers_target = 64; 
        • 調整業務租戶參數

          // 文件內存緩沖區限制
          alter system set _temporary_file_io_area_size = '10' tenant = 'xxx'; 
          // V4.x 關閉限流
          alter system set sys_bkgd_net_percentage = 100;  
      • 如果您使用的是 OceanBase 數據庫 V3.x ,請通過黑屏客戶端工具調整以下 sys 租戶參數。

        // parallel_servers_target 用于設置每個 Server 上的并行查詢排隊條件。
        // 如果完全為了性能,建議您將該參數調整為大于物理 CPU 的值,例如 1.5 倍。同時設置的值不超過 64,避免產生 OceanBase 數據庫內核搶鎖問題。
        set global parallel_servers_target = 64; 
        // data_copy_concurrency 用于設置系統中并發執行的數據遷移復制任務的最大并發數。
        alter system set data_copy_concurrency = 200; 
    • 增量同步

      選擇遷移類型 頁面,選中 增量同步,才會顯示下述參數。

      image

      參數

      描述

      寫入并發配置

      該參數用于配置增量同步階段往目標端寫入數據的并發數,最大限制為 512。并發數過高可能會造成目標端壓力過大,影響業務。

      增量同步速率限制

      您可以根據實際需求決定是否開啟增量同步速率限制。如果開啟,請設置 RPS(增量同步階段每秒最多可以同步至目標端的數據行數的最大值限制)和 BPS(增量同步階段每秒最多可以同步至目標端的數據量的最大值限制)。

      說明

      此處設置的 RPS 和 BPS 僅作為限速限流能力,增量同步實際可以達到的性能受限于源端、目標端、實例規格配置等因素的影響。

      增量同步起始位點

      • 如果選擇遷移類型時已選擇 全量遷移,該參數不顯示。

      • 如果選擇遷移類型時未選擇 全量遷移,但選擇了 增量同步,請在此處指定遷移某個時間節點之后的數據,默認為當前系統時間。詳情請參見 設置增量同步位點

    • 反向增量

      選擇遷移類型 頁面,選中 增量同步,才會顯示該區域的參數。反向增量的配置參數默認 復用增量同步配置

      image

      您也可以取消復用增量同步配置,根據實際需求進行配置。

      參數

      描述

      寫入并發配置

      該參數用于配置反向增量階段往源端寫入數據的并發數,最大限制為 512。并發數過高可能會造成源端壓力過大,影響業務。

      增量同步速率限制

      您可以根據實際需求決定是否開啟增量同步速率限制。如果開啟,請設置 RPS(反向增量同步階段每秒最多可以同步至源端的數據行數的最大值限制)和 BPS(反向增量同步階段每秒最多可以同步至源端的數據量的最大值限制)。

      說明

      此處設置的 RPS 和 BPS 僅作為限速限流能力,反向增量同步實際可以達到的性能受限于源端、目標端、實例規格配置等因素的影響。

      增量同步起始位點

      默認以正向切換(如有)為準,不支持修改。

    • 遷移高級配置

      image

      參數

      描述

      字符編碼與長度定義選項

      選擇遷移類型 頁面選中 結構遷移,且源端和目標端的字符集不一致時,才會顯示該參數。

      說明

      源端和目標端的字符集不一致(例如,源端為 GBK,目標端為 UTF-8)時,可能會發生字段截斷,數據不一致的情況。

      當您選擇 自動放大目標端字段長度,即 N BYTE → 1.5N BYTE 時,如果轉化后的長度超過最大長度限制,則轉化后的長度為最大長度限制。

      目標端表對象存儲類型

      當目標端 OceanBase 數據庫 Oracle 租戶為 V4.3.0 及之后版本,并且在 選擇遷移類型 頁面,選中 結構遷移增量同步 > DDL 同步,才會顯示該區域的參數。

      目標端表對象存儲類型包括 默認行存列存行列混存,該配置用于確定結構遷移或增量同步時目標端表對象的存儲類型,詳情請參見 default_table_store_format

      說明

      默認 選項是根據目標端參數配置自適應其他選項,是結構遷移的表對象或增量 DDL 的新增表對象根據設置的存儲類型寫對應的結構。

  7. 單擊 預檢查,系統對數據遷移任務進行預檢查。

    預檢查 環節,數據傳輸會檢查數據庫用戶的讀寫權限、數據庫的網絡連接等是否符合要求。全部檢查任務均通過后才能啟動數據遷移任務。如果預檢查報錯:

    • 您可以在排查并處理問題后,重新執行預檢查,直至預檢查成功。

    • 您也可以單擊錯誤預檢查項操作列中的 跳過,會彈出對話框提示您跳過本操作的具體影響,確認可以跳過后,請單擊對話框中的 確定

  8. 預檢查成功后,單擊 啟動任務

    如果您暫時無需啟動任務,請單擊 保存。后續您只能在 遷移任務列表 頁面手動啟動任務或通過批量操作啟動任務。批量操作的詳情請參見 批量操作數據遷移任務

    數據傳輸支持在數據遷移任務運行過程中修改遷移對象,詳情請參見 查看和修改遷移對象及其過濾條件。數據遷移任務啟動后,會根據所選擇的遷移類型依次執行,詳情請參見 查看遷移詳情

相關文檔