注册
达梦数据复制软件DMDRS配置参数-CPT模块功能参数(二)
专栏/数+融合专栏/ 文章详情 /

达梦数据复制软件DMDRS配置参数-CPT模块功能参数(二)

达梦数+数据融合软件(DMDF)产品团队 2026/08/04 85 0 0
摘要 介绍DMDRS CPT模块的功能配置参数。

3.2.28 need_push_lsn

参数含义

源DMDRS是否启用空闲时推进LSN功能。

参数说明

该参数仅适用于源数据库DB2数据库。用于绕过DB2 V10.5.0.5数据库接口句柄泄露问题,在日志读空闲时,自动执行DMDRS辅助表DML并回滚,以产生日志推进LSN。启用时,也可以通过push_lsn_sql参数指定自动执行的SQL。

参数值

  • 0:不启用。默认值为0。

  • 1:启用。

参数语法

<need_push_lsn></need_push_lsn>

参数示例

<need_push_lsn>1</need_push_lsn>

3.2.29 online_dir

参数含义

源DMDRS在线日志路径。

参数说明

该参数仅适用于源数据库PostgreSQL数据库。适用于当连接用户没有权限无法获取在线日志路径或配置离线解析的场景。

参数值

源DMDRS在线日志路径。

参数语法

<online_dir></online_dir>

参数示例

<online_dir>/data/pg_wal</online_dir>

3.2.30 pk_by_create

参数含义

创建表时,主键信息和列默认值信息是否附带在建表语句中。

参数说明

该参数仅适用于源数据库为DM数据库。

参数值

  • 0:创建表时,主键和默认值通过alter操作添加。默认值为0。

  • 1:创建表时,主键和默认值附带在建表操作中。

参数语法

<pk_by_create></pk_by_create>

参数示例

<pk_by_create>1</pk_by_create>

3.2.31 push_lsn_sql

参数含义

源DMDRS启用空闲时推进LSN功能时,指定自动执行推进LSN的SQL语句。

参数说明

该参数仅适用于源数据库DB2数据库。用于绕过DB2 V10.5.0.5数据库接口句柄泄露问题,在日志读空闲时,指定自动执行的SQL语句,以产生日志推进LSN。

默认不配置该参数。

在SQL中可以使用${LSN}和${LFS}两种特殊字符占位,在实际执行时会被替换为对应含义值。

  • ${LSN}:当前最新读日志LSN。

  • ${LFS}:当前最新读日志LFS。

注意

使用${LSN}和${LFS}两种特殊字符占位时,需要注意大小写匹配、无空格。

参数值

  • 以$符号开始,配置自动执行的SQL语句所在的文件路径。

  • 以非$符号开始,直接配置自动执行的SQL语句。

参数语法

<push_lsn_sql></push_lsn_sql>

参数示例

  • 以$符号开始,配置自动执行的SQL语句所在的文件路径。

    <push_lsn_sql>$/home/dmdrs/push_lsn.sql</push_lsn_sql>
  • 以非$符号开始,直接配置自动执行的SQL语句。

    <push_lsn_sql> UPDATE DMDRS.MY_LSN_TABLE SET LSN=${LSN}, LFS=${LFS}; COMMIT; </push_lsn_sql>

3.2.32 rac

参数含义

CPT针对DMDSC或Oracle RAC的配置项。

参数说明

该参数是一个功能标签,需要配置它的子项。该参数支持DMDSC和Oracle RAC源数据库。

参数值

参数语法

<rac></rac>

参数示例

以DMDSC数据库为例。

<rac> <nodes>2</nodes> <rac_type>ASM</rac_type> <login> <server>DMASM</server> <user>asmsys</user> <pwd>abcd</pwd> </login> <arch_dir> <item>0#+DMDATA/arch_dsc0</item> <item>1#+DMDATA/arch_dsc1</item> </arch_dir> </rac>
3.2.32.1 arch_dir*

参数含义

DMDSC和Oracle RAC每个节点的归档日志文件目录。

参数说明

该参数的原名为dir_replace。

该参数是一个功能标签,需要配置它的子项。如需配置多个节点的归档日志文件路径,可配置多个<item></item>标签。

  • 当归档日志文件在ASM服务器时,DMDSC需要配置该参数,Oracle RAC不需要配置该参数。

  • 当归档日志文件在各个节点的本地文件系统时,DMDSC和Oracle RAC都需要配置该参数。

参数值

参数语法

<arch_dir></arch_dir>

参数示例

<arch_dir> <item>0#+DMDATA/arch_dsc0</item> <item>1#+DMDATA/arch_dsc1</item> </arch_dir>
3.2.32.1.1 item*

参数含义

按照节点编号配置归档文件目录。

参数说明

  • DMDSC参数格式为:节点编号(从0开始)#节点归档文件的路径。

  • Oracle RAC参数格式为:节点线程编号#节点归档文件的路径,节点线程编号由Oracle的v$thread视图查询。

参数值

参数语法

<item></item>

参数示例

  • DMDSC归档文件在ASM服务器。

    <item>0#+DMDATA/arch_dsc0</item> <item>1#+DMDATA/arch_dsc1</item>
  • DM8 DMDSC归档文件在各个节点的本地文件系统。

    0号节点为数据库0号节点归档目录(当0号节点为远程节点,则需要配置文件映射等,确保能远程访问),1号节点为数据库1号节点归档目录(当1号节点为远程节点,则需要配置文件映射等,确保能远程访问)。

    <item>0#/home/dmdba/arch_ep0</item> <item>1#/home/dmdba/arch_ep1_nfs</item>
  • Oracle RAC归档文件在各个节点的本地文件系统。

    • 查询Oracle RAC节点对应的线程编号。

      select thread#, status from v$thread;

      查询出节点对应的线程编号为1、2。

    • 按照节点的线程编号配置归档文件路径。

      <item>1#/home/dmdba/arch_ep0</item> <item>2#/home/dmdba/arch_ep1_nfs</item>
3.2.32.2 login*

参数含义

ASM服务的登录信息。

参数说明

当rac_type配置为ASM或1时,需要配置login参数及子项。

参数值

参数语法

<login></login>

参数示例

以DMDSC数据库为例。

<login> <server>DMASM</server> <user>asmsys</user> <pwd>abcd</pwd> </login>
3.2.32.2.1 port

参数含义

ASM服务的端口号。

参数说明

DMDSC和Oracle RAC数据库可以在ASM的服务名中指定端口号,无需配置端口号。

参数值

取值范围:1000~65535。

参数语法

<port></port>

参数示例

<port>9349</port>
3.2.32.2.2 privilege_type

参数含义

ASM服务连接时使用的系统权限。

参数说明

当Oracle RAC处于ASM模式时,连接ASM服务时使用的系统权限。

参数值

  • 0:SYSASM。默认值为0。

  • 1:SYSDBA。

参数语法

<privilege_type></privilege_type>

参数示例

<privilege_type>0</privilege_type>
3.2.32.2.3 pwd*

参数含义

ASM服务的登录密码。

参数说明

当DMDSC或Oracle RAC处于ASM模式时,连接ASM服务的登录密码。

参数值

ASM服务用户名对应的登录密码。

说明

源数据库为DMDSC时,默认用户名default对应的默认密码为default。

参数语法

<pwd></pwd>

参数示例

以DMDSC数据库为例,ASM服务的用户名asmsys对应的密码为abcd。

<pwd>abcd</pwd>
3.2.32.2.4 server*

参数含义

ASM服务的服务名。

参数说明

当DMDSC或Oracle RAC处于ASM模式时,连接ASM服务的服务名。

参数值

  • DMDSC数据库:ASM的服务名。服务名请参见数据库的dm_svc.conf配置文件。

    (建议配置为服务名,如有需求,也支持配置为ASM任一节点的IP地址。)

  • Oracle RAC数据库:ASM的服务名。

参数语法

<server></server>

参数示例

DMDSC数据库的dm_svc.conf配置文件中,ASM的服务名配置为DMASM=(192.168.16.31:9349,192.168.16.32:9351)。

<server>DMASM</server>
注意

在未采用服务名方式,且为IPv6环境的特殊DMDSC场景下,该参数配置示例为fe80::1f3:99be:7b6a:890d%eno3。

3.2.32.2.5 user*

参数含义

ASM服务的用户名。

参数说明

当DMDSC或Oracle RAC处于ASM模式时,连接ASM服务的用户名。

说明

当源数据库为Oracle RAC时,ASM服务的用户名需具有SYSDBA或SYSASM权限,需要根据用户的实际权限配置privilege_type参数。

参数值

ASM服务的用户名。

  • DMDSC:本机ASM默认用户名为default。

  • Oracle RAC:默认用户名为sys。

说明

源数据库为DMDSC时,本地登录ASM时,可以使用default用户;远程登录ASM时,使用asmsys用户。

参数语法

<user></user>

参数示例

以DMDSC数据库为例,ASM服务的用户名为asmsys。

<user>asmsys</user>
3.2.32.3 nodes*

参数含义

RAC节点的个数。

参数说明

当前RAC运行环境中有效的节点数。必须跟实际值相符,否则会导致数据丢失。

参数值

取值范围:1~32。

参数语法

<nodes></nodes>

参数示例

<nodes>2</nodes>
3.2.32.4 rac_type

参数含义

源DMDRS读取数据库日志的方式。

参数说明

参数值

参数值不区分大小写。

  • ASM或1:既可以读取在线日志也可以读取归档日志。默认值为ASM或1。

  • FILE或2:仅适用于DMDSC离线分析场景,读取本地归档文件。

参数语法

<rac_type></rac_type>

参数示例

<rac_type>ASM</rac_type>

3.2.33 sel_ddl_convert

参数含义

是否启用查询建表操作同步转换功能。

参数说明

该参数仅适用于DM7、DM8(单机、DMDSC)、Oracle源数据库。

  • 源数据库为DM时

    • 配置为0以禁用查询建表操作同步转换功能。

      查询建表操作同步时会在源端DDL目录缓存同步操作数据,当同步表数据量较大时,会占用较多的缓存空间。

    • 配置为1以启用查询建表操作同步转换功能。

      查询建表操作同步时不再缓存同步操作数据,查询建表会转换为同步建表操作和对该表的数据插入操作。

  • 源数据库为Oracle时

    对于包含Anydata、自定义类型、嵌套表、大字段的表此处称为复杂表。普通表的查询建表会转换为同步建表操作和对该表的数据插入操作。

    • 配置为0以禁用复杂表的查询建表转装载功能。

    • 配置为1以启用复杂表的查询建表转装载功能。

    • 配置为2以启用根据条件的复杂表的查询建表转装载功能,当内存中的查询建表数据缓存达到4MB或大字段数据个数超过10000后,查询建表将被转换为装载。

注意

当源DMDRS DDL目录下存在DDL文件时,不推荐修改该参数值,否则会造成原DDL文件无法正常恢复。

参数值

  • 0:禁用。

  • 1:启用。默认值为1。

  • 2:根据条件启用。仅适用于Oracle数据库。

参数语法

<sel_ddl_convert></sel_ddl_convert>

参数示例

<sel_ddl_convert>1</sel_ddl_convert>

3.2.34 sync_ddl_sql

参数含义

采用转发原始SQL的方式同步DDL。

参数说明

该参数仅适用于DB2数据库,用于实现语法解析器不识别的DDL语句同步。

DB2同步DDL依赖语法解析器,由于语法解析不完善或SQL语法复杂,可能导致某些DDL语句不支持,可以启用该参数缓解,但要求源数据库和目标数据库SQL语法兼容,如果不兼容目标DMDRS执行时会报错。

参数值

  • 0:禁用。默认值为0。

  • 1:启用。

参数语法

<sync_ddl_sql></sync_ddl_sql>

参数示例

<sync_ddl_sql>1</sync_ddl_sql>

3.2.35 table_supplement_log

参数含义

源DMDRS是否检查源数据库表的附加日志开启情况。

参数说明

该参数仅适用于Oracle源数据库。当源数据库未开启库级全列和主键附加日志,开了表级附加日志时,需要将该参数配置为1。表级附加日志中,仅全列、主键和无条件的自定义日志组附加日志支持DML同步。无条件的自定义日志组附加日志如果存在开启附加日志的列无法唯一定位某行,会导致更新和删除不到对应行,此时可以开启能够定位唯一行的列附加日志或目标DMDRS配置ROWID_ASSIST参数。DDL同步不受表级附加日志影响。

参数值

  • 0:源DMDRS不检查源数据库表的附加日志开启情况。默认值为0。

  • 1:源DMDRS检查源数据库表的附加日志开启情况。仅在源数据库未开启库级全列和主键附加日志时生效。

参数语法

<table_supplement_log></table_supplement_log>

参数示例

<table_supplement_log>1</table_supplement_log>

3.2.36 trim_space

参数含义

源DMDRS是否去掉CHAR类型数据末尾的空格。

参数说明

该参数的原名为trim_flag。

该参数仅适用于源数据库DM和Oracle。在装载/同步数据时,是否去掉CHAR类型数据末尾的空格。在源数据库为DM7/DM8,目标数据库为MySQL/MariaDB的同步场景中,该参数必须配置为1。

参数值

  • 0:保留CHAR类型数据末尾的空格。默认值为0。

  • 1:去掉CHAR类型数据末尾的空格。

参数语法

<trim_space></trim_space>

参数示例

<trim_space>0</trim_space>

3.2.37 update_dup_col

参数含义

是否发送update操作全部列的新值。

参数说明

该参数仅适用于源数据库MySQL/MariaDB。由于MySQL/MariaDB update操作会将全部列的新值写入归档日志,此参数用于判断列的新值和旧值是否相同,是否发送与旧值相同的新值。

参数值

  • 0:同步时不发送与旧值相同的新值。

  • 1:同步时发送与旧值相同的新值。默认值为1。

参数语法

<update_dup_col></update_dup_col>

参数示例

<update_dup_col>1</update_dup_col>

3.2.38 update_fill_flag

参数含义

源DMDRS填充UPDATE和DELETE操作的方式。

参数说明

该参数仅适用于源数据库DM8、Kingbase、PostgreSQL和openGauss数据库。适用于源数据库开启了全列日志且目标库为Kafka的情况下,需要补全日志操作中未记录的列的元数据的场景。

参数值

  • 0:根据源库日志记录进行填充,不作任何列的转换。默认值为0。

  • 1:

    • DM8数据库:在全列日志下,UPDATE和DELETE操作的条件列中自动加上大字段列,且仅记录列名与列数据类型。

    • Kingbase、PostgreSQL和openGauss数据库:UPDATE和DELETE操作的条件列中记录全列。

参数语法

<update_fill_flag></update_fill_flag>

参数示例

<update_fill_flag>1</update_fill_flag>
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服