遷移前構造數據
更新時間 2023-06-02 15:52:23
最近更新時間: 2023-06-02 15:52:23
分享文章
本節介紹了如何在遷移前構造數據。
遷移前需要在源庫構造一些數據類型,供遷移完成后驗證數據。
DRS支持的數據類型如下所示:
| 源庫數據類型 | 目標庫數據類型 | 源庫數據類型做主鍵,同步能力 | 源庫數據類型做非主鍵, 同步能力 |
源庫數據類型做主鍵, 對比能力 |
源庫數據類型做非主鍵, 對比能力 |
備注 |
|---|---|---|---|---|---|---|
| CHAR | character | 支持 | 支持 | 支持,忽略字符前后的空格 | 支持,忽略字符前后的空格 | - |
| VARCHAR | character varying | 支持 | 支持 | 支持 | 支持 | 源目標庫數據表示范圍不同,存在精度損失。 |
| VARCHAR2 | character varying | 支持 | 支持 | 支持 | 支持 | - |
| NCHAR | character | 支持 | 支持 | 支持,忽略字符前后的空格 | 支持,忽略字符前后的空格 | - |
| NVARCHAR2 | nvarchar2 | 支持 | 支持 | 支持 | 支持 | - |
| NUMBER | numeric | 支持 | 支持 | 支持 | 支持 | - |
| NUMBER (6,3) | numeric(6,3) | 支持 | 支持 | 支持 | 支持 | - |
| NUMBER (6,0) | Integer | 支持 | 支持 | 支持 | 支持 | - |
| NUMBER (3) | smallint | 支持 | 支持 | 支持 | 支持 | - |
| NUMBER (6,-2) | integer | 支持 | 支持 | 支持 | 支持 | - |
| BINARY_FLOAT | real | 不支持(目標庫不支持做主鍵建表) | 支持 | 不支持 | 支持 | 源目標庫數據表示范圍不同,存在精度損失。 |
| BINARY_DOUBLE | double precision | 不支持(目標庫不支持做主鍵建表) | 支持 | 不支持 | 支持 | - |
| FLOAT | real | 不支持(目標庫不支持做主鍵建表) | 支持 | 不支持 | 支持 | 源目標庫數據表示范圍不同,存在精度損失。 |
| INT | numeric | 支持 | 支持 | 支持 | 支持 | - |
| INTEGER | numeric | 支持 | 支持 | 支持 | 支持 | - |
| DATE | date | 支持 | 支持 | 不支持 | 支持 | DRS在目標庫建表時類型為date,此時源目標庫數據表示范圍不同, 存在精度損失,不支持對比。 |
| TIMESTAMP | timestamp(6) without time zone | 支持 | 支持 | 不支持 | 校驗到小數點后6位 | 源庫使用限制:支持的最大精度是6。 |
| TIMESTAMP_TZ | timestamp(6) with time zone | 不支持(源庫不支持做主鍵建表) | 支持 | 不支持 | 過濾該列 | - |
| TIMESTAMP_LTZ | timestamp(6) with time zone | 不支持(目標庫不支持做主鍵建表) | 支持 | 不支持 | 過濾該列 | - |
| INTERVAL_YM | interval year to month | 支持 | 支持 | 不支持 | 不支持 | 增量同步不支持該類型。 |
| INTERVAL_DS | interval day to second | 支持 | 支持 | 不支持 | 不支持 | 增量同步不支持該類型。源庫使用限制:支持的最大精度是6。 |
| BLOB | bytea | 不支持(源庫不支持做主鍵建表) | 支持 | 不支持 | 過濾該列 | - |
| CLOB | text | 不支持(源庫不支持做主鍵建表) | 支持 | 不支持 | 過濾該列 | - |
| NCLOB | text | 不支持(源庫不支持做主鍵建表) | 支持 | 不支持 | 過濾該列 | - |
| LONG | text | 不支持(源庫不支持做主鍵建表) | 支持 | 不支持 | 過濾該列 | - |
| LONG_RAW | bytea | 不支持(源庫不支持做主鍵建表) | 支持 | 不支持 | 過濾該列 | - |
| RAW | bytea | 不支持(目標庫不支持做主鍵建表) | 支持 | 不支持 | 支持 | - |
| RowID | character varying(18) | 支持 | 支持 | 支持 | 支持 | - |
| BFILE | - | 不支持 | 不支持 | 不支持 | 不支持 | 源庫使用限制:不支持bfile類型。 |
| XMLTYPE | - | 不支持 | 不支持 | 不支持 | 不支持 | 源庫使用限制:不支持xmltype類型。 |
| UROWID | - | 不支持 | 不支持 | 不支持 | 不支持 | 全量增量都不支持同步。 |
| sdo_geometry | - | 不支持 | 不支持 | 不支持 | 不支持 | 源庫使用限制:不支持sdo_geometry類型。 |
| NUMBER(*,0) | numeric | 支持 | 支持 | 支持 | 支持 | - |
執行如下步驟在源庫構造數據:
- 根據本地的Oracle數據庫的IP地址,通過數據庫連接工具連接數據庫。
- 根據支持的數據類型,在源庫執行語句構造數據。
a) 創建一個測試用的用戶。
create user?test_info?identified by? xxx ;
test_info為本次實踐創建的用戶,xxx為用戶的密碼,請根據實際情況替換。
b) 給用戶賦權。
grant dba to? test_info ;
c) 在當前用戶下創建一個數據表。
CREATE TABLE *?test_info* . DATATYPELIST (ID INT,COL_01_CHAR______E CHAR(100),COL_02_NCHAR_____E NCHAR(100),COL_03_VARCHAR___E VARCHAR(1000),COL_04_VARCHAR2__E VARCHAR2(1000),COL_05_NVARCHAR2_E NVARCHAR2(1000),COL_06_NUMBER____E NUMBER(38,0),COL_07_FLOAT_____E FLOAT(126),COL_08_BFLOAT____E BINARY_FLOAT,COL_09_BDOUBLE___E BINARY_DOUBLE,COL_10_DATE______E DATE DEFAULT SYSTIMESTAMP,COL_11_TS________E TIMESTAMP(6),COL_12_TSTZ______E TIMESTAMP(6) WITH TIME ZONE,COL_13_TSLTZ_____E TIMESTAMP(6) WITH LOCAL TIME ZONE,COL_14_CLOB______E CLOB DEFAULT EMPTY_CLOB(),COL_15_BLOB______E BLOB DEFAULT EMPTY_BLOB(),COL_16_NCLOB_____E NCLOB DEFAULT EMPTY_CLOB(),COL_17_RAW_______E RAW(1000),COL_19_LONGRAW___E LONG RAW,COL_24_ROWID_____E ROWID,PRIMARY KEY(ID));
d) 插入兩行數據。
insert into test_info.DATATYPELIST values(4,'huawei','xian','shanxi','zhongguo','shijie', 666,12.321,1.123,2.123,sysdate,sysdate,sysdate,sysdate,'hw','cb','df','FF','FF','AAAYEVAAJAAAACrAAA');
insert into test_info.DATATYPELIST values(2,'Migrate-test','test1','test2','test3','test4', 666,12.321,1.123,2.123,sysdate,sysdate,sysdate,sysdate,'hw','cb','df','FF','FF','AAAYEVAAJAAAACrAAA');
e) 使語句生效。
commit;
- 在目標端創建庫。
a) 登錄天翼云控制臺。
b) 單擊管理控制臺左上角的
,選擇區域。
c) 單擊左側的服務列表圖標,選擇“數據庫 > 數據庫服務 > 數據管理服務”。
d) 在數據管理服務DAS左側導航欄,單擊“開發工具”,進入開發工具數據庫登錄列表頁面。
e) 單擊“新增數據庫登錄”,打開新增數據庫登錄窗口。
f) 選擇“數據庫引擎”、“數據庫來源”、目標實例,填寫登錄用戶名、密碼以及描述(非必填項)信息,開啟定時采集、SQL執行記錄功能。


g) 您可根據需要選擇“測試連接”(必選操作步驟)。
如測試連接成功,將提示“連接成功”,您可繼續新增操作。如測試連接失敗,將提示連接失敗原因,您需根據提示信息進行修改,以便新增數據庫登錄成功。
h) 設置完登錄信息,單擊“立即新增”。
i) 新增完成后,單擊新增登錄的“登錄”,登錄當前數據庫。


j) 進入SQL查詢頁面。


k) 執行如下語句創建兼容Oracle的數據庫。
此例中為:test_database_info,請根據實際情況選擇。
CREATE DATABASE test_database_info DBCOMPATIBILITY 'ORA';