本文将介绍DMDRS支持的数据类型、数据库操作以及一些操作限制。
1 支持的数据类型
支持的DM数据类型
数据类型 | 具体类型 |
---|---|
字符数据类型 | CHAR、CHARACTER、VARCHAR、VARCHAR2、NCHAR、NVARCHAR2 |
数值数据类型 | NUMERIC、DECIMAL、DEC、NUMBER、INTEGER、INT、BIGINT、TINYINT、BYTE、SMALLINT、 BINARY、VARBINARY、FLOAT、DOUBLE、REAL、DOUBLE PRECISION |
位串数据类型 | BIT |
日期时间数据类型 | DATE、TIME、DATETIME/TIMESTAMP、INTERVAL、TIME WITH TIME ZONE、 TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE |
多媒体数据类型 | TEXT、LONG/LONGVARCHAR、IMAGE/LONGVARBINARY、CLOB、BLOB |
空间数据类型 | DMGEO2.ST_GEOMETRY(仅适用于目标库为Oracle的场景) |
支持的Oracle数据类型
数据类型 | 具体类型 |
---|---|
字符数据类型 | CHAR、VARCHAR2、NCHAR、NVARCHAR2 |
数值数据类型 | INT、FLOAT、DECIMAL、REAL、NUMBER、BINARY_FLOAT、BINARY_DOUBLE |
日期时间数据类型 | DATE、TIMESTAMP、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND、 TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCALTIME ZONE |
多媒体数据类型 | CLOB、BLOB、NCLOB、RAW、LONG、LONG RAW、SYS.XMLTYPE |
ROWID数据类型 | ROWID、UROWID |
空间数据类型 | SDO_GEOMETRY(仅适用于目标库为DM8且空间数据类型为DMGEO2.ST_GEOMETRY的场景) |
支持的SQL Server数据类型
数据类型 | 具体类型 |
---|---|
字符数据类型 | CHAR、VARCHAR、NCHAR、NVARCHAR |
数值数据类型 | TINYINT、SAMLLINT、INT、BIGINT、FLOAT、DECIMAL、NUMERIC、SMALLMONEY、MONEY |
位串数据类型 | BIT |
日期时间数据类型 | DATE、DATATIME、SMALLDATETIME |
多媒体数据类型 | BINARY、VARBINARY |
支持的DB2数据类型
数据类型 | 具体类型 |
---|---|
字符数据类型 | CHARACTER、VARCHAR |
数值数据类型 | SAMLLINT、INTEGER、BIGINT、DECIMAL、DOUBLE、REAL |
日期时间数据类型 | DATE、TIME、TIMESTAMP |
多媒体数据类型 | BLOB、CLOB |
支持的MySQL数据类型
数据类型 | 具体类型 |
---|---|
字符数据类型 | CHAR、VARCHAR |
数值数据类型 | TINYINT、SAMLLINT、MEDIUMINT、INT、BIGINT、FLOAT、DOUBLE、DECIMAL、 |
位串数据类型 | BIT |
日期时间数据类型 | DATE、TIME、YEAR、DATETIME、TIMESTAMP |
多媒体数据类型 | TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB、BINARY、VARBINARY |
2 支持的数据库操作
说明在异构数据库同步场景,同步到目标数据库的新建用户的原始密码统一更新为默认密码Pwd123456#。
支持的DM数据库操作
DML操作: INSERT、UPDATE、DELETE
DDL操作:
CREATE表(普通表、一级分区表、二级分区表、三级分区表)、索引、序列、视图、用户、角色、函数、存储过程、触发器、包、类、同义词、模式、表空间
DROP表(普通表、一级分区表、二级分区表、三级分区表)、索引、序列、视图、用户、角色、函数、存储过程、触发器、包、类、同义词、模式、表空间
TRUNCATE表(普通表、一级分区表、二级分区表、三级分区表)
ALTER表(普通表、一级分区表、二级分区表、三级分区表)
将表重命名
将列重命名(三级分区表不支持)
增加列
删除列
修改列的长度
修改列的精度
修改列的数据类型(三级分区表不支持)
修改列的缺省值
增加主键约束
删除主键约束
删除外键约束
增加唯一约束
删除唯一约束
增加检查约束
删除检查约束
增加非空约束
删除非空约束
ALTER包、触发器、存储过程、函数、约束
COMMENT表、COMMENT列
DCL操作:
GRANT
REVOKE
支持的Oracle数据库操作
DML操作: INSERT、UPDATE、DELETE
DDL操作:
CREATE表(普通表、一级分区表、二级分区表)、索引、序列、视图、用户、角色、函数、存储过程、触发器、包、同义词
DROP表(普通表、一级分区表、二级分区表)、索引、序列、视图、用户、角色、函数、存储过程、触发器、包、同义词
TRUNCATE表(普通表、一级分区表、二级分区表)
ALTER表(普通表、一级分区表、二级分区表)
将表重命名
将列重命名
增加列
删除列
修改列的长度
修改列的精度
修改列的数据类型
修改列的缺省值
增加主键约束
删除主键约束
增加外键约束
删除外键约束
增加唯一约束
删除唯一约束
增加检查约束
删除检查约束
增加非空约束
删除非空约束
修改表的表空间
ALTER触发器
启用触发器
禁用触发器
重命名触发器
COMMENT表、COMMENT列
DCL操作:
GRANT
REVOKE
支持的MySQL数据库操作
DML操作: INSERT、UPDATE、DELETE
DDL操作:
CREATE表(普通表)、索引
DROP表(普通表)、索引
TRUNCATE表(普通表)
ALTER表(普通表)
将表重命名
将列重命名
增加列
删除列
修改列
改变列
增加主键约束
删除主键约束
增加外键约束
删除外键约束
增加唯一约束
删除唯一约束
增加检查约束
删除检查约束
增加非空约束
删除非空约束
COMMENT表、COMMENT列
DCL操作:
GRANT
REVOKE
支持的SQL Server数据库操作
DML操作: INSERT、UPDATE、DELETE
支持的DB2数据库操作
DML操作: INSERT、UPDATE、DELETE
DDL操作:
CREATE表(普通表)、索引
DROP表(普通表)、索引
TRUNCATE表(普通表)
ALTER表(普通表)
将表重命名
将列重命名
增加列
删除列
修改列
增加主键约束
增加外键约束
增加唯一约束
增加检查约束
删除约束
3 操作限制
- 不支持UPDATE和DELETE操作的情况:源表中列都为大对象数据类型、源表只包含一列时间间隔数据类型。
- 以“DRS_$”开头的表是DMDRS内部系统表,不支持表名为“DRS_$”开头的表同步。
- 装载和同步带外键的表时,与外键相关联的表需要在同一个分组中。
- 装载表结构之前,需要先装载序列,防止有些表默认值为序列导致表结构装载失败。
- 装载和同步删除表操作时,若目标数据库不存在对象表,目标DMDRS不会打印报错信息。
- 在源数据库为DM数据库的情况下同步创建模式操作时,创建模式的SQL中需带上模式所属的用户信息。例如:CREATE SCHEMA "DMDRS" AUTHORIZATION "DMDRS"。
- 支持装载表的最大列数为各数据库支持查询的最大列数减去1。
- 双向同步和级联同步不支持触发器方式的DDL同步,请使用系统表方式进行DDL同步。
- 仅支持模式名、对象名和列名长度在127(含)以内的对象的装载和同步。
- 如果DMDRS所在服务器操作系统需要重启网络服务,DMDRS也需要重启,否则会阻塞在网络上。
- 当目标数据库为Kafka时,DMDRS仅支持不超过1GB的大对象装载和同步。
- 对于异构数据库的Hash表,不支持分区TRUNCATE同步,否则会造成数据不一致。
- 以“SYS_EXPORT_SCHEMA_”、“SYS_IMPORT_SCHEMA_”、“SYS_EXPORT_TABLE_”、“SYS_IMPORT_TABLE_”、“SYS_EXPORT_TABLESPACE_”、“SYS_IMPORT_TABLESPACE_”、“SYS_EXPORT_FULL_”、“SYS_IMPORT_FULL_”和“ET$”开头的表是Oracle数据库的导入导出系统表,上述表的CREATE建表操作同步已屏蔽。