注册
达梦数据复制软件DMDRS数据分发配置文件模板
专栏/数+融合专栏/ 文章详情 /

达梦数据复制软件DMDRS数据分发配置文件模板

达梦数+数据融合软件(DMDF)产品团队 2026/07/28 156 0 0
摘要 介绍配置源DMDRS、DMDSS和目标DMDRS的配置文件模板。

DMDRS使用XML文件作为配置文件,通过XML配置文件配置产品服务功能。常用产品服务的配置文件模板存放于DMDRS安装目录下,配置文件模板名称和默认配置文件名称如下表所示。

说明

启动DMDRS服务时,如不指定配置文件,缺省使用默认配置文件。

DMDRS服务 配置文件模板 默认配置文件
源DMDRS cpt.xml drs.xml
目标DMDRS exec.xml drs.xml
DMDSS dss.xml dss.xml

DMDRS的XML配置文件的格式如下表所示。

组成部分 语法 说明
声明语句 <?xml version="1.0" encoding="GB18030"?> 包括XML版本号和字符集声明。
根元素 <drs></drs> 根元素中包括所有的子元素。
子元素 Manager模块:<base></base>
CPT模块:<cpt></cpt>
DSS模块:<dss></dss>
EXEC模块:<exec></exec>
各模块对应的子元素中还包括具体的元素,具体请参见《DMDRS参考手册》

1 配置源DMDRS

源DMDRS服务包括Manager模块和CPT模块。在源DMDRS服务中,Manager模块提供基本的服务管理功能,CPT模块提供数据捕获功能,模块的详细介绍请参见《DMDRS产品介绍》

配置文件模板

  • 源数据库为DM8单机

    <?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <cpt> <name>CPT模块的名称</name> <login> <dbtype>源数据库的类型</dbtype> <server>源数据库的IP地址</server> <user>源数据库的用户名</user> <pwd>源数据库的登录密码</pwd> <port>源数据库的监听端口号</port> </login> <send> <ip>下一级DMDRS服务的IP地址</ip> <port>下一级DMDRS服务的Manager模块的端口号</port> <target_name>下一级DMDRS服务的接收模块的名称</target_name> <map> <item>对象黑/白名单和映射</item> </map> </send> </cpt> </drs>
  • 源数据库为DMDSC

    <?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <cpt> <name>CPT模块的名称</name> <login> <dbtype>源数据库的类型</dbtype> <server>源数据库的服务名</server> <user>源数据库的用户名</user> <pwd>源数据库的登录密码</pwd> </login> <send> <ip>下一级DMDRS服务的IP地址</ip> <port>下一级DMDRS服务的Manager模块的端口号</port> <target_name>下一级DMDRS服务的接收模块的名称</target_name> <map> <item>对象黑/白名单和映射</item> </map> </send> <rac> <nodes>RAC节点个数</nodes> <rac_type>ASM</rac_type> <login> <server>ASM服务的服务名</server> <user>ASM服务的用户名</user> <pwd>ASM服务的登录密码</pwd> </login> <arch_dir> <item>DMDSC每个节点的归档日志文件路径</item> <item>DMDSC每个节点的归档日志文件路径</item> </arch_dir> </rac> </cpt> </drs>
  • 源数据库为DMDPC

    • 配置部署在源数据库DMDPC的MP节点上的源DMDRS。

      <?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <cpt> <name>CPT模块的名称</name> <login> <dbtype>源数据库的类型</dbtype> <server>源数据库的IP地址(SP节点的IP地址)</server> <user>源数据库的用户名</user> <pwd>源数据库的登录密码</pwd> <port>源数据库的监听端口号(SP节点的端口号)</port> </login> <send> <ip>下一级DMDRS服务的IP地址</ip> <port>下一级DMDRS服务的Manager模块的端口号</port> <target_name>下一级DMDRS服务的接收模块的名称</target_name> <map> <item>对象黑/白名单和映射</item> </map> </send> <dpc> <dpc_ip>源数据库DMDPC的MP/BP节点的IP地址</dpc_ip> <dpc_port>源数据库DMDPC的MP/BP节点的端口号</dpc_port> </dpc> </cpt> </drs>
  • 源数据库为Oracle(单机)

    <?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <cpt> <name>CPT模块的名称</name> <login> <dbtype>源数据库的类型</dbtype> <server>源数据库的服务名</server> <user>源数据库的用户名</user> <pwd>源数据库的登录密码</pwd> </login> <send> <ip>下一级DMDRS服务的IP地址</ip> <port>下一级DMDRS服务的Manager模块的端口号</port> <target_name>下一级DMDRS服务的接收模块的名称</target_name> <map> <item>对象黑/白名单和映射</item> </map> </send> </cpt> </drs>
  • 源数据库为Oracle(RAC)

    <?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <cpt> <name>CPT模块的名称</name> <login> <dbtype>源数据库的类型</dbtype> <server>源数据库的服务名</server> <user>源数据库的用户名</user> <pwd>源数据库的登录密码</pwd> </login> <send> <ip>下一级DMDRS服务的IP地址</ip> <port>下一级DMDRS服务的Manager模块的端口号</port> <target_name>下一级DMDRS服务的接收模块的名称</target_name> <map> <item>对象黑/白名单和映射</item> </map> </send> <rac> <nodes>RAC节点个数</nodes> <rac_type>ASM</rac_type> <login> <server>ASM服务的服务名</server> <user>ASM服务的用户名</user> <pwd>ASM服务的登录密码</pwd> </login> </rac> </cpt> </drs>
  • 源数据库为DM6单机、MySQL、SQL Server、PostgreSQL、Kingbase、DB2

    <?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <cpt> <name>CPT模块的名称</name> <login> <dbtype>源数据库的类型</dbtype> <server>源数据库的服务名或IP地址</server> <dbname>源数据库的库名</dbname> <user>源数据库的登录用户名</user> <pwd>源数据库的登录密码</pwd> <port>源数据库的监听端口号</port> </login> <send> <ip>下一级DMDRS服务的IP地址</ip> <port>下一级DMDRS服务的Manager模块的端口号</port> <target_name>下一级DMDRS服务的接收模块的名称</target_name> <map> <item>对象黑/白名单和映射</item> </map> </send> </cpt> </drs>

参数说明

配置文件模板中的配置参数包括Manager模块的端口号、站点号、CPT模块的名称、源数据库的登录信息和下一级DMDRS服务的连接信息。其余选配参数由用户根据实际功能或性能需求选择性地配置,参数配置请参见《DMDRS参考手册》

  • 源数据库为DMDSC或Oracle RAC,必须配置rac参数。

  • 源数据库为DMDPC,MP/BP节点必须配置dpc参数。BP节点还必须配置drs_mp_name、drs_mp_port和dpc_type参数。

  • 源数据库为DM6单机、DB2、MySQL、SQL Server、PostgreSQL或Kingbase,login下必须配置dbname参数。

  • 源数据库为DM6单机、SQL Server、PostgreSQL或Kingbase,如果不使用默认驱动,需要使用其他版本的ODBC驱动,login下必须配置driver参数。

  • 源数据库为SQL Server,需要在服务名中指定端口号,无需配置port参数。

2 配置DMDSS

DMDSS服务包括Manager模块和DSS模块。在DMDSS服务中,Manager模块提供基本的服务管理功能,DSS模块提供数据流存储功能,模块的详细介绍请参见《DMDRS产品介绍》

2.1 配置单机DMDSS

配置文件模板

<?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <dss> <name>DSS模块的名称</name> </dss> </drs>

参数说明

配置文件模板中的配置参数为必配参数,包括Manager模块的端口号、站点号和DSS模块的名称。其余选配参数由用户根据实际功能或性能需求选择性地配置,参数配置请参见《DMDRS参考手册》

2.2 配置DMDSS集群

2.2.1 配置集群规模为3节点或以上的DMDSS集群

各节点配置文件模板

<?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <dss> <name>DSS模块的名称</name> <cluster> <host>当前机器的IP地址</host> <initial_cluster>初始化集群</initial_cluster> </cluster> </dss> </drs>

参数说明

注意
  • 配置DMDSS为集群后,源DMDRS内的下一级配置为DMDSS集群内任一可用节点即可。
  • 配置DMDSS为集群后,目标DMDRS连接的DSS模块配置为DMDSS集群内任一可用节点即可。
  • 配置DMDSS集群内各节点时应保证各节点拥有唯一的DSS模块名。
  • 配置DMDSS集群内各节点时应保证各节点拥有一致的站点号。

配置文件模板中的配置参数为必配参数,包括Manager模块的端口号、站点号和DSS模块的名称,当机器存在多个网卡时当前机器的IP地址为必配项。其余选配参数由用户根据实际功能或性能需求选择性地配置,参数配置请参见《DMDRS参考手册》

2.2.2 配置集群规模为2节点的DMDSS集群

DMDSS集群遵循RAFT协议,集群中有多数节点存在时集群才能够行使功能,在这种情况下如果搭建一个双节点的DMDSS集群,只要其中任一节点失效则会导致整个集群失效。如果需要搭建一个允许任一节点失效集群仍能正常行使功能的集群,则需要配置enable_binary_node_cluster参数,并遵循以下注意事项。

注意
  • enable_binary_node_cluster参数仅在集群规模为2时生效。
  • 配置enable_binary_node_cluster参数后,DMDSS内仅允许存在单个Topic。
  • 配置enable_binary_node_cluster参数后,DMDSS集群的主机将由源DMDRS决定,因此当源DMDRS未启动且DMDSS集群仅存在1个可用节点时,集群无法正常行使功能。

各节点配置文件模板

<?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <dss> <name>DSS模块的名称</name> <cluster> <host>当前机器的IP地址</host> <initial_cluster>初始化集群</initial_cluster> <enable_binary_node_cluster>是否启动双节点集群模式</enable_binary_node_cluster> </cluster> </dss> </drs>

参数说明

注意
  • 配置DMDSS为集群后,源DMDRS内的下一级配置为DMDSS集群内任一可用节点即可。
  • 配置DMDSS为集群后,目标DMDRS连接的DSS模块配置为DMDSS集群内任一可用节点即可。
  • 配置DMDSS集群内各节点时应保证各节点拥有唯一的DSS模块名。
  • 配置DMDSS集群内各节点时应保证各节点拥有一致的站点号。
  • enable_binary_node_cluster配置为1。

配置文件模板中的配置参数为必配参数,包括Manager模块的端口号、站点号和DSS模块的名称,当机器存在多个网卡时当前机器的IP地址为必配项。其余选配参数由用户根据实际功能或性能需求选择性地配置,参数配置请参见《DMDRS参考手册》

3 配置目标DMDRS

目标DMDRS服务包括Manager模块和EXEC模块。在目标DMDRS服务中,Manager模块提供基本的服务管理功能,EXEC模块提供数据执行功能,模块的详细介绍请参见《DMDRS产品介绍》

配置文件模板

<?xml version="1.0" encoding="GB18030"?> <drs> <base> <mgr_port>Manager模块的端口号</mgr_port> <siteid>站点号</siteid> </base> <exec> <name>EXEC模块的名称</name> <dss> <item> <name>EXEC模块连接的DSS模块名称</name> <ip>DMDSS的IP地址</ip> <port>DMDSS的管理端口号</port> <topic>在DMDSS上订阅的Topic名称</topic> <map> <item>对象黑/白名单和映射</item> </map> </item> </dss> <login> <dbtype>目标数据库的类型</dbtype> <server>目标数据库的服务名或IP地址</server> <user>目标数据库的登录用户名</user> <pwd>目标数据库的登录密码</pwd> <port>目标数据库的监听端口号</port> </login> </exec> </drs>

参数说明

配置文件模板中的配置参数包括Manager模块的端口号、站点号、EXEC模块的名称、DSS相关配置和目标数据库的登录信息。其余选配参数由用户根据实际功能或性能需求选择性地配置,参数配置请参见《DMDRS参考手册》

  • 如果动态增加目标数据库进行数据同步,需配置start_lsn参数值为-1。

  • 如果基于映射规则进行数据分发,需配置dss标签下的map参数。也可以动态修改DSS映射规则,命令请参见《DMDRS控制台命令手册》动态修改DSS映射规则章节。

  • 如果目标数据库同步对象名称默认大小写与源数据库同步对象名称大小写不一致时,需配置toggle_case参数,参数值需与目标数据库默认大小写一致。

  • 目标数据库为DM6单机、MySQL、SQL Server、PostgreSQL、Kingbase或GBase 8s数据库,login下必须配置dbname参数。

  • 目标数据库为DM6单机、SQL Server、PostgreSQL、Kingbase或GBase 8s,如果不使用默认驱动,需要使用其他版本的ODBC驱动,login下必须配置driver参数。

  • 目标数据库为Oracle、DMDSC或SQL Server,在服务名中指定端口号,无需配置port参数。

  • 目标数据库为Kafka,可以在Kafka生产者属性文件中指定IP地址和端口号,无需配置port参数,必须配置producer_properties参数。

  • 如需提高数据执行入库的效率,可配置group参数。

    如下示例中配置参数为必配参数,其余选配参数请参见《DMDRS参考手册》。当目标数据库为Kafka时,group参数为必配参数,除示例中必配参数外,还需配置topic_name和json_format_path参数。

    <group> <item> <id>分组编号</id> <desc> <table>分组的表匹配信息</table> <table>分组的表匹配信息</table> </desc> </item> <item> <id>分组编号</id> <desc> <table>分组的表匹配信息</table> <table>分组的表匹配信息</table> </desc> </item> </group>

3.1 Kafka分区配置

当需要控制发送的消息到指定的分区时,需要使用数据清洗转换(DMCVT)功能,在数据清洗转换脚本中为匹配条件的日志操作的消息配置分区key。

数据清洗转换脚本的示例如下。

-- DDL配置 OBJECT "*"."*" BEGIN op.#key := CHARTOBIN(op.#OBJ); -- 示例:设置DDL消息的分区key值为对象名字符串 op.exec(); END; -- DML配置 TABLE "*"."*" BEGIN op.#key := CHARTOBIN(op.#TAB); -- 示例:设置DML消息的分区key值为表名字符串 op.exec(); END;

DMCVT功能的具体使用方法请参见《DMDRS DRS语言使用手册》

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服