同步前构造数据
同步前需要在源库构造一些数据类型,供同步完成后验证数据。
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地址,通过数据库连接工具连接数据库。
- 根据DRS支持的数据类型,在源库执行语句构造数据。
   
   - 创建一个测试用的用户。
     create user test_info identified by xxx; test_info为本次实践创建的用户,xxx为用户的密码,请根据实际情况替换。 
- 给用户赋权。
- 在当前用户下创建一个数据表。
     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) ); 
- 插入两行数据。
     insert into test_info.DATATYPELIST values(4,'huawei','xian','Shannxi','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'); 
- 使语句生效。
 
- 创建一个测试用的用户。
     
- 在目标端创建库。
   
   - 登录华为云控制台。
- 单击管理控制台左上角的 ,选择区域。 ,选择区域。
- 单击左侧的服务列表图标,选择。
- 在数据管理服务DAS左侧导航栏,单击“开发工具”,进入开发工具数据库登录列表页面。
- 单击“新增数据库实例登录”,打开新增数据库实例登录窗口。
- 选择“数据库引擎”、“数据库来源”,填写登录用户名、密码以及描述(非必填项)信息,开启定时采集、SQL执行记录功能。
 
 
   
    
