迁移前构造数据 本节介绍了如何在迁移前构造数据。 迁移前需要在源库构造一些数据类型,供迁移完成后验证数据。 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 支持 支持 支持 支持 BINARYFLOAT real 不支持(目标库不支持做主键建表) 支持 不支持 支持 源目标库数据表示范围不同,存在精度损失。 BINARYDOUBLE double precision 不支持(目标库不支持做主键建表) 支持 不支持 支持 FLOAT real 不支持(目标库不支持做主键建表) 支持 不支持 支持 源目标库数据表示范围不同,存在精度损失。 INT numeric 支持 支持 支持 支持 INTEGER numeric 支持 支持 支持 支持 DATE date 支持 支持 不支持 支持 DRS在目标库建表时类型为date,此时源目标库数据表示范围不同, 存在精度损失,不支持对比。 TIMESTAMP timestamp(6) without time zone 支持 支持 不支持 校验到小数点后6位 源库使用限制:支持的最大精度是6。 TIMESTAMPTZ timestamp(6) with time zone 不支持(源库不支持做主键建表) 支持 不支持 过滤该列 TIMESTAMPLTZ timestamp(6) with time zone 不支持(目标库不支持做主键建表) 支持 不支持 过滤该列 INTERVALYM interval year to month 支持 支持 不支持 不支持 增量同步不支持该类型。 INTERVALDS interval day to second 支持 支持 不支持 不支持 增量同步不支持该类型。源库使用限制:支持的最大精度是6。 BLOB bytea 不支持(源库不支持做主键建表) 支持 不支持 过滤该列 CLOB text 不支持(源库不支持做主键建表) 支持 不支持 过滤该列 NCLOB text 不支持(源库不支持做主键建表) 支持 不支持 过滤该列 LONG text 不支持(源库不支持做主键建表) 支持 不支持 过滤该列 LONGRAW bytea 不支持(源库不支持做主键建表) 支持 不支持 过滤该列 RAW bytea 不支持(目标库不支持做主键建表) 支持 不支持 支持 RowID character varying(18) 支持 支持 支持 支持 BFILE 不支持 不支持 不支持 不支持 源库使用限制:不支持bfile类型。 XMLTYPE 不支持 不支持 不支持 不支持 源库使用限制:不支持xmltype类型。 UROWID 不支持 不支持 不支持 不支持 全量增量都不支持同步。 sdogeometry 不支持 不支持 不支持 不支持 源库使用限制:不支持sdogeometry类型。 NUMBER(,0) numeric 支持 支持 支持 支持 执行如下步骤在源库构造数据: 1. 根据本地的Oracle数据库的IP地址,通过数据库连接工具连接数据库。 2. 根据支持的数据类型,在源库执行语句构造数据。 a) 创建一个测试用的用户。 create user testinfo identified by xxx ; testinfo为本次实践创建的用户,xxx为用户的密码,请根据实际情况替换。 b) 给用户赋权。 grant dba to testinfo ; c) 在当前用户下创建一个数据表。 CREATE TABLE testinfo . DATATYPELIST (ID INT,COL01CHARE CHAR(100),COL02NCHARE NCHAR(100),COL03VARCHARE VARCHAR(1000),COL04VARCHAR2E VARCHAR2(1000),COL05NVARCHAR2E NVARCHAR2(1000),COL06NUMBERE NUMBER(38,0),COL07FLOATE FLOAT(126),COL08BFLOATE BINARYFLOAT,COL09BDOUBLEE BINARYDOUBLE,COL10DATEE DATE DEFAULT SYSTIMESTAMP,COL11TSE TIMESTAMP(6),COL12TSTZE TIMESTAMP(6) WITH TIME ZONE,COL13TSLTZE TIMESTAMP(6) WITH LOCAL TIME ZONE,COL14CLOBE CLOB DEFAULT EMPTYCLOB(),COL15BLOBE BLOB DEFAULT EMPTYBLOB(),COL16NCLOBE NCLOB DEFAULT EMPTYCLOB(),COL17RAWE RAW(1000),COL19LONGRAWE LONG RAW,COL24ROWIDE ROWID,PRIMARY KEY(ID)); d) 插入两行数据。 insert into testinfo.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 testinfo.DATATYPELIST values(2,'Migratetest','test1','test2','test3','test4', 666,12.321,1.123,2.123,sysdate,sysdate,sysdate,sysdate,'hw','cb','df','FF','FF','AAAYEVAAJAAAACrAAA'); e) 使语句生效。 commit; 3. 在目标端创建库。 a) 登录天翼云控制台。 b) 单击管理控制台左上角的,选择区域。 c) 单击左侧的服务列表图标,选择“数据库 > 数据库服务 > 数据管理服务”。 d) 在数据管理服务DAS左侧导航栏,单击“开发工具”,进入开发工具数据库登录列表页面。 e) 单击“新增数据库登录”,打开新增数据库登录窗口。 f) 选择“数据库引擎”、“数据库来源”、目标实例,填写登录用户名、密码以及描述(非必填项)信息,开启定时采集、SQL执行记录功能。 g) 您可根据需要选择“测试连接”(必选操作步骤)。 如测试连接成功,将提示“连接成功”,您可继续新增操作。如测试连接失败,将提示连接失败原因,您需根据提示信息进行修改,以便新增数据库登录成功。 h) 设置完登录信息,单击“立即新增”。 i) 新增完成后,单击新增登录的“登录”,登录当前数据库。 j) 进入SQL查询页面。 k) 执行如下语句创建兼容Oracle的数据库。 此例中为:testdatabaseinfo,请根据实际情况选择。 CREATE DATABASE testdatabaseinfo DBCOMPATIBILITY 'ORA';