暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于达梦数据复制软件DMDRS的使用和操作限制说明

学以致用 2024-06-14
262

本文将介绍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建表操作同步已屏蔽。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论