注册
达梦数据复制软件DMDRS控制台命令-装载操作命令
专栏/数+融合专栏/ 文章详情 /

达梦数据复制软件DMDRS控制台命令-装载操作命令

达梦数+数据融合软件(DMDF)产品团队 2026/08/09 131 0 0
摘要 介绍DMDRS控制台的装载操作命令。

5 装载

介绍装载相关的操作命令和查看命令。

5.1 操作命令

介绍装载相关的操作命令。

5.1.1 添加同步表

适用场景

数据同步、数据分发

命令功能

在同步中,动态添加同步表。添加同步表后,源DMDRS会将源数据库同步表的全量数据和增量数据同时发送到目标DMDRS,目标DMDRS会自动将表的全量数据装载到目标数据库,装载过程中增量数据会全部缓存到目标DMDRS,直至全量数据装载成功后才激活执行缓存的增量数据入目标数据库。

说明

如不需要进行增量数据同步,仅需要迁移全量数据,请参见数据迁移命令。

命令格式

ALTER [<CPT_NAME>] ADD TABLE "<FILTER>" [<LOAD_MASK>]

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
"<FILTER>" FILTER:从数据库中筛选待同步表的条件,过滤条件采用SQL表达式,需要满足SQL表达式的语法规则。过滤条件中SCH.NAME为模式名,TAB.NAME为表名。格式举例如下:
"SCH.NAME='<SCHNAME>' AND TAB.NAME='<TABNAME>'" :SCHNAME模式下的表TABNAME。
"SCH.NAME='<SCHNAME_PERSON>' or SCH.NAME='<SCHNAME_RESOURCES>'":SCHNAME_PERSON和SCHNAME_RESOURCES模式下所有的表。
LOAD_MASK 装载掩码。掩码包括DROP、CREATE、INSERT、GROUP和TRUNCATE等,装载掩码可以自由组合,默认值为CREATE|INSERT|INDEX|TABLE|CHECK|GROUP。具体说明请参见装载掩码说明表
装载掩码说明表
装载掩码 说明
ABSOLUTE 该掩码表示装载模块通过查询语句抽取数据时在查询语句中加入ABSOLUTE关键字,这会使DM6返回查询结果时不生成结果集,直接在表上提取数据,从而提升查询数据的性能。但ABSOLUTE功能会对所查询的表上S锁,导致其它应用无法修改该表,需要按实际情况选用该掩码,此掩码不能与WHERE或GROUP掩码同时使用。该功能仅适用于DM6数据库。
CDC 该掩码表示开启或关闭库级和表级CDC功能。CDC|1或CDC表示开启CDC功能,CDC|0表示关闭CDC功能。只有开启CDC功能的表才可以同步更新操作。该功能仅适用于SQL Server数据库。
  • 当数据库未开启库级CDC时,装载使用CDC|1或CDC掩码先开启库级CDC,后开启此次装载表的表级CDC。

  • 当数据库开启库级CDC时,装载使用CDC|1或CDC掩码仅开启此次装载表的表级CDC。

  • 当数据库开启库级CDC且开启了装载表的表级CDC时,装载使用CDC|0掩码仅关闭此次装载表的表级CDC。

  • 当数据库开启库级CDC且不存在表开启了表级CDC时,装载使用CDC|0掩码关闭库级CDC。

  • 当数据库未开启库级CDC时,或者数据库开启库级CDC且开启了非装载表的表级CDC,但是未开启装载表的表级CDC时,装载使用CDC|0掩码无效。


示例:
装载源数据库RESOURCES模式下的所有表,并开启表的CDC功能。
alter cpt_mssql add table "sch.name='RESOURCES'" TABLE|CREATE|INSERT|CDC
CHECK 该掩码表示装载CHECK约束。该掩码必须与CREATE或者DROP掩码组合使用。如果与CREATE组合使用,会将源表CHECK约束装载到目标表;如果再加上INSERT等组合使用,会在创建完表并装载完数据后才会装载CHECK约束。如果与DROP组合使用,会删除目标数据库表的CHECK约束。
示例:
将源表RESOURCES.EMPLOYEE和表上的CHECK约束信息一起装载到目标数据库。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='EMPLOYEE'" CREATE|CHECK|TABLE
CREATE 该掩码表示装载时需要在目标数据库创建对象。在源数据库和目标数据库为异构的情况下,在目标数据库创建表时会对源表的数据类型做映射处理,默认数据类型映射关系请参见各数据库的DMDRS搭建手册。使用该掩码后,如果目标表已存在,则会报错并忽略该错误继续执行。如果与INSERT、INDEX掩码组合使用,则会在装载完数据后创建索引。如果CREATE后面没有INDEX等对象,默认的操作对象为TABLE。
示例1:
装载源数据库RESOURCES模式下的所有表。
alter cpt_dm8 add table "sch.name='RESOURCES'" CREATE|TABLE
示例2:
先装载源表RESOURCES.EMPLOYEE的数据,再装载索引。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='EMPLOYEE'" CREATE|INSERT|INDEX
CONTINUE 该掩码表示对某些表断点续传。不适用于DB2、MySQL/MariaDB数据库。当对整个模式下的表使用CONTINUE时,会对模式下最近装载历史为失败的表自动续传,续传时的掩码为历史装载的掩码;成功的表自动忽略;没有装载历史的表正常装载,只有CONTINUE掩码时使用默认掩码装载。当和FORCE掩码组合使用时,会自动添加FORCE掩码到续传表以及首次装载的表。
当对端为DSS时,可以在掩码后面指定要重新装载的分组,用逗号间隔,区间可使用短横线表示,如"20-30"表示重装所有失败分组以及指定的20到30的分组。
示例1:
对装载过程出故障的PERSON.PERSON表续传。
alter cpt_dm8 add table "sch.name='PERSON' and tab.name='PERSON'" CONTINUE
示例2:
对PERSON模式下的所有装载历史失败表自动续传,成功表跳过,无装载历史的使用默认掩码装载。
alter cpt_dm8 add table "sch.name='PERSON'" CONTINUE
示例3:
过DSS装载,对装载过程出故障的PERSON.PERSON表续传,除本身失败分组外并强制指定分组1,20-30,100分组重装。
alter cpt_dm8 add table "sch.name='PERSON' and tab.name='PERSON'" CONTINUE "1, 20-30,100"
DELAY 该掩码表示延迟装载字节长度超过4000的大对象数据。不适用于DM6、MySQL/MariaDB、PostgreSQL、Kingbase和SQL Server数据库。在装载含大对象数据的表时使用,对非大对象数据和小于等于4000字节的大对象数据正常装载,而对超过4000大对象列先填充空值,之后再对大对象列更新大对象数据,以达到先装载普通数据,后装载大对象数据的效果。使用该掩码会默认在目标DMDRS启用ROWID映射功能,如果表含主键,当装载完大对象后会自动删除创建的ROWID映射表。由于EXCHANGE掩码会将数据插入临时表,使用DELAY掩码插入非大对象数据时得到的是临时表的ROWID,后续更新大对象时无法使用,所以DELAY掩码无法和EXCHANGE掩码共同使用。使用DELAY掩码功能装载的表故障时不支持续传。
当源端为Oracle时,为了提高大对象列的查询效率,可以在源数据库里对表中所有大对象列先执行以下操作:alter table sch.tab modify lob(colname) (nocache);
装载完成后,再执行以下操作还原修改:alter table sch.tab modify lob(colname) (cache);
示例:
装载表RESOURCES.EMPLOYEE中数据时,先装载表中普通数据,再装载大对象数据。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='EMPLOYEE'" CREATE|INSERT|GROUP|DELAY
DROP 该掩码表示删除目标数据库的对象。如果与INSERT掩码组合使用,在没有指定CREATE掩码的情况下,装载命令会自动加入CREATE掩码。如果DROP后面没有INDEX、FR_KEY等对象,默认的操作对象为TABLE。
注意:如果一个表正在同步,想要重新装载这个表,请使用DROP|CREATE|INSERT等掩码组合使用,单独使用DROP会导致执行端报错或因error_policy自杀。
示例:
装载源数据库RESOURCES模式下的所有表,如果目标数据库存在同名的表,则先删除再装载。
alter cpt_dm8 add table "sch.name='RESOURCES'" DROP|CREATE|INSERT|GROUP
EXCHANGE 该掩码表示目标DMDRS采用交换分区装载的方式来装载数据。仅适用于目标数据库为DM7、DM8和Oracle数据库,且不适用于源数据库为MySQL、SQL Server和DMDPC数据库。该掩码不能与UNIQUE_KEY掩码组合使用。装载模块根据被装载表的分区分别装载多个分区基表,可以有效缓解装载到同一张表时引发的热点,待某个子分区的数据装载完成以后,在目标数据库上利用交换分区功能将这些基表合并为同一张表。由于EXCHANGE掩码会将数据插入临时表,使用DELAY掩码插入非大对象数据时得到的是临时表的ROWID,后续更新大对象时无法使用,所以EXCHANGE掩码无法与DELAY掩码共同使用。使用EXCHANGE掩码功能装载的表故障时不支持续传。推荐使用的掩码组合:DROP|CREATE|INSERT|GROUP|EXCHANGE。
在装载数据量上亿的分区表时,为了加快装载速度,可以采用交换分区的掩码来进行装载,以便提升目标DMDRS数据入库的速度。
说明:
该掩码不支持Hash分区表。
示例:
使用分区装载功能装载表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" DROP|CREATE|INSERT|GROUP|EXCHANGE
FAST 该掩码表示快速装载。仅适用于DM8和Oracle数据库。双向同步和环形同步不支持该掩码。
对于目标数据库DM8/Oracle,目标DMDRS已安装数据库对应的DPI/OCI接口组件,通过快速装载的方式投递到目标DMDRS的数据,EXEC模块使用DPI的FLDR系列接口或使用OCI的DIRPATH系列接口来进行数据入库,并且当使用快装接口出错时,会转为普通的SQL语句方式重试。目标数据库为DM时使用FAST掩码功能装载的表故障时不支持续传。目标数据库为DM时使用FAST掩码,如果目标表存在主键或者索引会导致主键或索引损坏。
说明:
当目标数据库为Oracle,且目标DMDRS字符集与源DMDRS字符集不一致时,目标DMDRS的参数char_code必须配置为源DMDRS的字符集。
当目标数据库为DM8时,FAST掩码功能仅支持DPI版本为V8.1.3.100及以上版本;当内存不足以支持快装并发时,会自动将分组切换为普通装载;大对象将使用普通装载;源表的列宽过大或者目标DMDRS的char_length_expand参数配置过大,会导致快装记录超长报错。
该掩码的使用存在一些限制,具体可参考《DM8_dmfldr使用手册》“dmfldr使用限制”章节。
示例:
使用快速装载功能装载表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" DROP|CREATE|INSERT|GROUP|FAST
FLASHBACK 该掩码表示在装载查询时,采用闪回查询的方式获取源表数据。仅适用于源数据库为DM8(单机、DMDSC)和Oracle的同步环境。闪回查询时需要具有flashback any table权限。
在源数据库某些表存在24小时不间断修改的情况下,如果使用对表上S锁的方式装载,可能会存在S锁永远上不成功的现象。在这种环境下,可以使用闪回查询的方式来获取源表的数据。闪回查询需要等待该表在当前获取到的源库­SCN之前的事务提交以后才能进行,如果某个事务长时间不提交,装载则会被阻塞。
示例:
以闪回查询的方式装载RESOURCES模式下表的数据。
alter cpt_ora add table "sch.name='RESOURCES'" INSERT|GROUP|FLASHBACK
FOREIGN 该掩码表示在目标数据库建表时是否需要创建外键或者独立地装载外键。该掩码需要谨慎使用,因为目标数据库如果存在外键会影响同步性能,还会造成EXEC模块工作线程死锁。
示例:
装载RESOURCES模式下表,最后装载外键。
alter cpt_dm8 add table "sch.name='RESOURCES'" CREATE|TABLE|FOREIGN
独立装载RESOURCES模式的外键。
alter cpt_dm8 add table "sch.name='RESOURCES'" CREATE|FOREIGN
FORCE 该掩码表示装载时忽略执行端入库错误,将错误操作SQL保存至执行端错误日志load_error中,并强制激活表的同步。注意:使用该掩码进行数据的动态装载可能导致执行端出现错误,两端数据不一致,请谨慎使用。仅推荐由于两端库间差异导致的无法装载成功表使用,且需要用户手动干预目标表。
GROUP 该掩码表示分组装载。DM6/DM7/MySQL/MariaDB数据库和不支持SF_GET_TABLE_GROUP_INFO_BY_ROWS函数的DM8版本数据库只能指定分组数,紧跟数字表示每个表分多少组,默认的分组数为4,能够指定的最大分组数为10000;对于MySQL/MariaDB数据库目前仅支持含有唯一整形列主键的表进行分组装载,分区键为主键列。不满足唯一整形列主键的表即使指定了GROUP掩码,装载也不会并行。支持SF_GET_TABLE_GROUP_INFO_BY_ROWS函数的DM8版本数据库只能指定分组的条件行数,紧跟数字表示每达到多少行分一组,最小分组行数为5000,默认分组行数为100000。Oracle数据库可以指定分组的条件块数,紧跟数字表示每超过多少块便分一组,限定的最小分组块数为2048,默认分组块数为10000,表中含大对象时默认为3000。该掩码不适用于Oracle索引组织表(IOT)。每个组都启用一个独立的线程来装载该组的数据,从而实现多线程并行地装载同一张表。在装载上亿行的大表时使用该掩码可以显著提高性能。
在装载数据量上亿的大表或是有很多大对象的表时,为了加快装载速度,可以把一个表拆分成多个组来并行装载。
示例:
DM7:以分成4组的分组装载方式并行装载表RESOURCES.DEPARTMENT。
alter cpt_dm7 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP|4
MySQL:以分成5组的分组装载方式并行装载表RESOURCES.DEPARTMENT。
alter cpt_mysql add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP|5
DM8:以每组100000行的分组装载方式并行装载表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP|100000
Oracle:以每达到20480块就分一组的分组装载方式并行装载表RESOURCES.DEPARTMENT。
alter cpt_ora add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP|20480
注意:分区表的装载在不使GROUP掩码时,自动按子分区来分组,每个子分区将作为一个组进行装载。
GROUPS 该掩码表示按指定分组数装载。紧跟数字表示每个表分多少组,默认的分组数为4,分组范围为1~1000。目前仅适用于支持SF_GET_TABLE_GROUP_INFO_BY_ROWS函数的DM8版本数据库。使用该掩码表示分组时,使用SF_GET_TABLE_GROUP_INFO分组方式,按组数分组;若同时配置GROUP和GROUPS则以GROUPS掩码为准。
示例:
DM8:以分成4组的分组装载方式并行装载表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUPS|4
INDEX 该掩码表示装载索引。该掩码必须与CREATE或者DROP掩码组合使用。如果与CREATE组合使用,会将源表索引装载到目标表;如果再加上INSERT等组合使用,会在创建完表并装载完数据后才会装载索引。如果与DROP组合使用,会删除目标数据库表的索引。
示例:
装载源表RESOURCES.DEPARTMENT到目标数据库,数据装载完后再装载索引。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" CREATE|INSERT|INDEX
INSERT 该掩码表示装载数据。该掩码是数据装载的主要掩码。
如果与WHERE掩码组合使用,则可以装载指定的数据行。如INSERT|WHERE|"ID>3 AND ID<9",表示装载3<ID<9的数据行。
使用该掩码时,如果不指定NOLOCK掩码,则默认对源表上S锁。
示例:
将源表RESOURCES.DEPARTMENT中的数据装载到目标数据库。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP
NCVT 该掩码表示装载的数据不经过两端的CVT数据清洗转换。
示例:
将源表RESOURCES.DEPARTMENT中的数据装载到目标数据库,表中数据不经过两端配置的CVT转换。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP|NCVT
NDEFAULT 该掩码表示在装载表时不装载表中列的默认值信息。该掩码必须与CREATE|TABLE掩码一起使用时才生效,避免因默认值异常导致表无法正常装载。
示例:
装载源数据库RESOURCES模式下的所有表,忽略表中的默认值。
alter cpt_dm8 add table "sch.name='RESOURCES'" CREATE|TABLE|NDEFAULT
NOLOB 该掩码表示不装载大对象数据。不适用于DM6数据库。该掩码是一个辅助掩码,需与INSERT或UPDATE组合使用,如:INSERT|NOLOB。由于大对象数据的装载速度缓慢,如果同步环境中不需要同步大对象数据时,可以使用该掩码来忽略装载大对象数据。在此掩码使用情景中MySQL的TINYTEXT、TINYBLOB类型不认为是大对象。
如果需要装载大对象数据,再使用UPDATE|LOB掩码来更新目标表的大对象数据。如果NOLOB和CREATE同时使用,目标DMDRS会将大对象列的非空属性统一设置为允许为空。
示例:
装载源数据库RESOURCES模式下的所有表,如果表中存在大对象列,忽略大对象列进行装载。
alter cpt_dm8 add table "sch.name='RESOURCES'" CREATE|INSERT|GROUP|NOLOB
NOLOCK 该掩码表示对装载表不上锁。由于使用INSERT掩码装载数据时默认对表上S锁,导致表一直无法被第三方写入,从而影响到其它应用。使用NOLOCK掩码,查询之前将不再对表上S锁,可以减少对应用的影响,但是也会导致装载到目标表数据跟源表不一致,请谨慎使用该掩码。
在线系统上搭建同步时,数据库永远处于工作状态,某些表上时时刻刻都会有操作,而装载时要求对表上S锁,S锁需要在表没有修改访问的前提下才能成功,这就导致可能会上锁失败。当源数据库为DM7/DM8时,同时对该表的上锁操作过多可能会报错死锁,导致上锁失败。当上锁失败后不会重试,直接跳过该分组装载,后续可选择续装或者重装该表。如果装载的表对数据一致性的要求并不高,允许有差异存在,可以使用该掩码,在装载时不对源表上S锁,直接查询抽取数据。
对于MySQL数据库,NOLOCK掩码在CPT启动时会解析日志,查找SELECT执行前后LSN范围内是否有操作,没有操作即可装载且保持数据一致性,如未找到没有操作的LSN区间则按原有NOLOCK方式装载。
示例:
使用非上锁模式装载表RESOURCES.EMPLOYEE中数据。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='EMPLOYEE'" INSERT|GROUP|NOLOCK
NOTMP 该掩码表示不装载临时表。仅适用于DM7、DM8和Oracle数据库。如果不需要装载临时表,可以使用该掩码。不使用该掩码,默认会装载临时表。
示例:
装载RESOURCES模式下所有不是临时表的表,即不包含临时表。
alter cpt_dm8 add table "sch.name='RESOURCES'" TABLE|DROP|CREATE|GROUP|INSERT|NOTMP
PARTITION 该掩码表示单独装载某分区,后跟参数指定本次装载的分区。使用该掩码时会忽略掉除了TRUNCATE掩码以外的所有DDL掩码。当和TRUNCATE掩码一起使用时,表示先truncate指定分区,再装载数据。
示例:
先完整装载数据库中分区表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" DROP|CREATE|INSERT|GROUP
再单独装载分区表RESOURCES.DEPARTMENT的P1分区。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" TRUNCATE|INSERT|GROUP|PARTITION|"P1"
PDB 该掩码用于容器数据库的装载,需要紧跟容器名。如果是容器数据库,且使用CDB公共用户登录时,必须使用PDB掩码。如果使用PDB用户登录,无需该掩码。此掩码不适用于MySQL/MariaDB数据库。
示例:
装载容器名为COMPANY的容器数据库中表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" PDB|"COMPANY"
PRELOB 该掩码表示含大对象表每次批量获取时每一列大对象超过多少长度后就设置预获取属性。设置预获取属性可以加快较小大对象的获取速率,但会加大源DMDRS的内存占用。此掩码仅适用于Oracle数据库。没有指定时,CLOB列默认超过4000字符开启预取,预取长度为字符数*3;BLOB列默认超过4000字节开启预取,预取长度为字节数。该长度和装载批量读取的行数共同影响装载大对象表时源DMDRS占用的内存。
示例:
装载数据库中表RESOURCES.DEPARTMENT,表含大对象列,设置预取长度临界为10000。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" DROP|CREATE|INSERT|PRELOB|10000
ROWID ROWID仅支持与CREATE掩码组合使用。不适用于DM6、MySQL/MariaDB和SQL Server数据库,以及Oracle索引组织表(IOT)。该掩码表示启用目标DMDRS的ROWID相关功能。
示例:
装载源表RESOURCES.DEPARTMENT,并在目标表上隐式创建#ROWID辅助列映射。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" CREATE|ROWID
ROWS 该掩码用于设置装载批量读取的行数。参数最大值为10000,当未设置该掩码时,装载批量读取行数为250。
当源数据库为MySQL时,该掩码还表示一个事务的行数。使用该掩码时,源DMDRS会以每次批量读取的行数打包为一个事务发送到目标DMDRS。
示例:
装载源表RESOURCES.DEPARTMENT的数据,设置批量读取行数为500。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|ROWS|500
SAME 该掩码用于FLASHBACK闪回装载时强制指定一个表的所有分组使用同一个LSN闪回查询。不使用该掩码的默认情况下各分组使用独立的LSN闪回查询。该掩码只能和FLASHBACK掩码组合使用。
装载源表RESOURCES.DEPARTMENT的数据,且所有分组使用同一个LSN闪回。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" DROP|CREATE|INSERT|GROUP|FLASHBACK|SAME
SITE 该掩码用于过DSS装载时指定消费者的站点号。后面双引号内跟本次装载允许消费的目标DMDRS站点号,多个站点用逗号间隔。
示例:
装载源表RESOURCES.DEPARTMENT的数据,仅允许站点id为4和5的目标DMDRS消费。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" DROP|CREATE|INSERT|SITE|"4,5"
TABLE 该掩码表示装载的对象是表。需要与其它操作掩码组合使用,但不能与除CHECK、INDEX和FOREIGN掩码外的其它对象掩码组合使用。当指定了CREATE却没有指定对象掩码时,默认使用TABLE对象掩码进行装载。装载表时会默认装载表的主键和唯一约束。
示例:
装载源数据库RESOURCES模式下的所有表。
alter cpt_dm8 add table "sch.name='RESOURCES'" CREATE|TABLE
TIME 该掩码用于普通装载获取非法的日期时间类型数据报错时绕过错误,装载非法数据。仅适用于源数据库为Oracle。如果非法的日期时间数据无法通过OCI接口转换为字符串,比如年份超过-9999~9999范围,月、日、时、分、秒存在不小于100的值,此时会把数据自动转换为1900-01-01 00:00:00。建议仅对有非法日期时间类型数据的表普通装载报错时再单独使用,因为该掩码会采用单行绑定获取的方式查询数据。
示例:
装载源数据库PURCHASING模式下的PURCHASEORDER_DETAIL表,其中的日期时间类型数据含0000-0-0或普通装载报错ORA-01801。
alter cpt_ora add table "sch.name='PURCHASING' and tab.name='PURCHASEORDER_DETAIL'" INSERT|GROUP|TIME
注意:
某些目标数据库可能不支持非法的日期时间类型数据,建议开启enable_check_date参数,转换非法的日期时间类型数据,否则可能会导致目标端入库失败。
TRUNCATE 该掩码表示清空目标数据库的表。当需要删除目标数据库表的数据而保留表结构时,可以使用该掩码来清空表中数据后再装载新的数据。需谨慎使用该掩码,不要在目标表有独立数据的环境下使用,以免造成数据损失。
示例:
重新装载源表RESOURCES.DEPARTMENT,重装之前先清空目标表RESOURCES.DEPARTMENT的旧数据。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" TRUNCATE
TRY 该掩码表示装载分组对表上锁失败后重试的次数,后跟数字指定重试次数。不使用该掩码的默认情况下,分组装载对表上锁失败后不会重试。
示例:
装载源表RESOURCES.DEPARTMENT,指定上锁失败重试次数为10次。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" DROP|CREATE|INSERT|GROUP|TRY|10
WAIT 该掩码表示上锁时强制等待。
注意:上锁时强制等待的方式会阻塞后续的应用对该表的修改,可能造成该表死锁,需要谨慎使用。
不适用于MySQL/MariaDB数据库。普通装载需要对源数据库的表上锁,装载模块默认上锁使用了NOWAIT选项,导致源表在业务繁忙的情况下上锁失败,使用该掩码则可以解决该问题,但是在上锁等待过程中会造成其它业务无法访问该表。
如果某个表在数据库默认的超时时间之间无法完成装载上S锁的动作,可以指定WAIT掩码,上锁时强制等待。当源数据库为DM7/DM8时,同时对该表的上锁操作过多可能会报错死锁,导致上锁失败。当上锁失败后不会重试,直接跳过该分组装载,后续可选择续装或者重装该表。当使用NOLOCK掩码时,WAIT功能会失效。
示例:
采用强制上锁等待的方式装载表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP|WAIT
WHERE 该掩码用来过滤表中数据。不适用于源数据库为SQL Server时,且装载对象为分区表时与GROUP掩码同时使用。需要紧跟过滤条件。当不需要装载表中全部数据,只需要装载表中符合某些条件的数据时,可以使用该掩码。使用WHERE掩码功能装载的表故障时不支持续传。
示例:
只装载源表RESOURCES.DEPARTMENT中1<ID<1000的行。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP|WHERE|"ID>1 AND ID<1000"
如果要限制条件列的大小写,需要用到转义字符。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUP|WHERE|"""id"">1 AND ""id""<1000"
UNIQUE_KEY 该掩码表示主键和唯一约束跟随建表添加。该掩码不能与EXCHANGE掩码组合使用。
普通的含主键或唯一约束表装载,主键和唯一约束是在数据装载完成后,通过alter的方式添加。使用该掩码可以让表在创建时就同时添加主键和唯一约束,之后再插入数据。使用该掩码前需要平衡目标库表含主键和唯一约束插入与最后添加主键和唯一约束的操作性能优劣,需谨慎使用。
示例:
采用主键和唯一约束跟随建表添加的方式装载表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" CREATE|TABLE|UNIQUE_KEY
STATIC 该掩码表示静态分组装载DM8聚集主键表。需要和GROUP或者GROUPS掩码一起使用,将DM8聚集主键表分组装载到目标数据库,如果不分组则无需配置该掩码。如需静态分组装载必须保证源表数据是静态的,如不分组装载则对源表数据没有要求。目前仅适用于支持SF_GET_TABLE_GROUP_INFO_BY_ROWS函数的DM8版本数据库,且聚集主键字段个数少于等于3。
示例:
DM8:以分成4组的分组装载方式并行装载表RESOURCES.DEPARTMENT。
alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" INSERT|GROUPS|4|STATIC

命令示例

  • 动态地添加RESOURCES和PERSON模式下所有的同步表,添加后自动进行该表的全量数据的装载,装载完成后自动进行增量数据的同步。

    alter cpt_dm8 add table "sch.name='RESOURCES' or sch.name='PERSON'"
  • 动态地添加同步表RESOURCES.DEPARTMENT,添加后自动进行该表的全量数据的装载,装载完成后自动进行增量数据的同步。

    alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'"
  • 动态地添加pdb1容器中的同步表RESOURCES.DEPARTMENT,添加后自动进行该表的全量数据的装载,装载完成后自动进行增量数据的同步。

    alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" insert|group|create|pdb|"pdb1"
  • 动态地添加一批PERSON模式下表名以A开头的同步表 ,添加后自动进行表的全量数据的装载,装载完成后自动进行增量数据的同步。

    alter cpt_dm8 add table "sch.name='PERSON' and tab.name like 'A%'"

    注意:当使用模糊匹配like时,需要对要匹配的内容中含有的通配符进行转义,如:需要查询T_前缀的对象。

    alter cpt_dm8 add table "sch.name='PERSON' and tab.name like 'T\_%' escape '\'"
  • 动态地添加带嵌套表类型的同步表PERSON.TEST_PRI_TAB01,该同步表包含嵌套子表PERSON.NEST_DATA_OBJECTS,添加后自动进行表的全量数据的装载,装载完成后自动进行增量数据的同步。

    注意
    • 装载带嵌套表类型的同步表时,需要先装载该同步表,装载完成后再装载它的嵌套子表。
    • 嵌套子表的装载不支持DDL相关的掩码,在装载嵌套子表时会取消DROP、CREATE、TRUNCATE掩码。
    • 使用DROP掩码装载带嵌套表类型的增量同步表时,将会删除和终止该表的嵌套子表的增量同步。
    1. 动态地添加带嵌套表类型的同步表PERSON.TEST_PRI_TAB01。

      alter cpt_ora add table "sch.name='PERSON' and tab.name='TEST_PRI_TAB01'"
    2. 动态地添加嵌套子表PERSON.NEST_DATA_OBJECTS。

      alter cpt_ora add table "sch.name='PERSON' and tab.name='NEST_DATA_OBJECTS'"

5.1.2 数据断点续传

适用场景

数据迁移、数据同步、数据分发

命令功能

当装载异常中断,可使用断点续传命令完成数据装载。该命令会对最近装载历史为失败的所有表自动续传。该功能不适用于DMDPC、DB2和MySQL/MariaDB数据库。

注意

某次装载命令中失败的表必须等待该次命令结束后才能续传。

命令格式

ALTER [<CPT_NAME>] CONTINUE LOAD

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。

命令示例

如果表RESOURCES.PERSON中数据装载部分后出错,可使用断点续传命令继续装载。

alter cpt_dm8 continue load

5.1.3 停止装载

停止装载全部装载表或指定装载表。

5.1.3.1 停止装载所有表

适用场景

数据迁移、数据同步、数据分发

命令功能

停止装载指定CPT模块的所有表。

说明

此命令仅停止装载源数据库所有表,并未删除目标数据库已装载的表或数据。

命令格式

ALTER [<CPT_NAME>] STOP LOAD

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。

命令示例

停止装载名称为“cpt_dm8”的CPT模块的所有表。

alter cpt_dm8 stop load
5.1.3.2 停止装载指定表

适用场景

数据迁移、数据同步、数据分发

命令功能

停止装载指定CPT模块的指定表。

说明

此命令为停止装载源数据库指定表,并未删除目标数据库已装载的表或数据。

命令格式

ALTER [<CPT_NAME>] STOP TABLE [<PDBNAME>.]<SCHNAME>.<TABNAME>

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
[<PDBNAME>.]<SCHNAME>.<TABNAME> 容器名.模式名.表名,容器名仅适用于容器数据库。容器名、模式名和表名都支持模糊查询,具体如下:
*:所有容器、模式或表。
A*:前缀为A的所有容器、模式或表。
*B:后缀为B的所有容器、模式或表。
A*B:前缀为A且后缀为B的所有容器、模式或表。

命令示例

停止装载名称为“cpt_dm8”的CPT模块的表RESOURCES.PERSON。

alter cpt_dm8 stop table RESOURCES.PERSON

5.1.4 对象装载

适用场景

数据迁移、数据同步、数据分发

命令功能

将源数据库的对象装载到目标数据库,支持一次装载单一对象、一类对象。

说明

对象装载支持的对象包括序列、视图、触发器、函数、存储过程、包、同义词和类,不包括表的装载,表的装载请使用添加同步表数据迁移命令。

命令格式

  • 命令格式一:

    CP <CPT_NAME> "<OBJ_FILTER>" <LOAD_MASK> <OBJ_TYPE>
  • 命令格式二:

    ALTER [<CPT_NAME>] CP "<OBJ_FILTER>" <LOAD_MASK> <OBJ_TYPE>

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
"<OBJ_FILTER>" 从数据库中筛选待装载对象的条件,过滤条件采用SQL表达式,需要满足SQL表达式的语法规则。过滤条件中SCH.NAME为模式名,OBJ.NAME为对象名。
格式举例如下:
"SCH.NAME='<SCHNAME>' AND OBJ.NAME='<OBJNAME>'" :SCHNAME模式下的OBJNAME对象。
"SCH.NAME='<SCHNAME_PERSON>' or SCH.NAME='<SCHNAME_RESOURCES>'":SCHNAME_PERSON和SCHNAME_RESOURCES模式下所有的支持对象。
LOAD_MASK 对象装载掩码,仅支持CREATE和DROP掩码,掩码后面需接对象类型。具体说明请参见对象装载掩码说明表
OBJ_TYPE 对象类型。
源数据库Oracle支持的对象类型:"SEQUENCE"、"VIEW"、"MVIEW"、"TRIGGER"、"FUNCTION"、"PROCEDURE"、"PACKAGE"(含PACKAGE BODY)和"SYNONYM"。
源数据库为Oracle DG,源DMDRS部署在DG环境的备数据库且不配置主数据库登录信息时,不支持装载序列。
源数据库DM7/DM8支持的对象类型:"SEQUENCE"、"PROCEDURE"(含FUNCTION)、"TRIGGER"、"PACKAGE"(含PACKAGE BODY)、"CLASS"(含TYPE、CLASS)、"JCLASS"、"VIEW"、"MVIEW"和"SYNONYM"对象类型。
源数据库SQL Server支持的对象类型:"SEQUENCE"。
对象装载掩码说明表
装载掩码 说明
CREATE 该掩码表示装载时需要在目标数据库创建对象。
示例:
装载源数据库RESOURCES模式下的对象名为EMPLOY_VIEW的视图。
cp cpt_dm8 "sch.name='RESOURCES' and obj.name='EMPLOY_VIEW'" CREATE VIEW
DROP 该掩码表示删除目标数据库的对象。
示例:
装载源数据库RESOURCES模式下对象名为EMPLOY_VIEW的视图,如果目标数据库存在同名的视图,则先删除再装载。
cp cpt_dm8 "sch.name='RESOURCES' and obj.name='EMPLOY_VIEW'" DROP|CREATE VIEW
DICT 该掩码表示仅装载序列的字典,仅支持与"SEQUENCE"对象类型配合使用。
适用于使用其他工具或者其他方式(比如手动两边创建序列)迁移序列到目标数据库,后续需要对序列进行增量同步的场景。
示例:
装载源数据库RESOURCES模式下的所有序列的字典。
cp cpt_dm8 "sch.name='RESOURCES'" DICT SEQUENCE

命令示例

  • 装载单一对象:装载RESOURCES模式下的对象名为EMPLOY_VIEW的视图。

    cp cpt_dm8 "sch.name='RESOURCES' and obj.name='EMPLOY_VIEW'" CREATE VIEW
  • 装载一类对象:装载RESOURCES模式下的所有触发器。

    cp cpt_dm8 "sch.name='RESOURCES'" CREATE TRIGGER

5.1.5 结果集装载

适用场景

数据迁移

命令功能

装载SQL获取的结果集到目标数据库的新表中。

说明
  • DM源数据库不支持LONG数据类型的结果集装载。
  • Oracle源数据库不支持LONG、NCLOB数据类型和自定义类型的结果集装载。
  • DMDPC源数据库不支持在装载SQL中一次查询多表信息获取到的结果集的装载,若需要一次查询多表,需要使用SF_GET_EP_SEQNO函数确保每个BP节点仅能查询到本节点的数据。

命令格式

  • 命令格式一:

    CP <CPT_NAME> <SCHNAME>.<TABNAME> <LOAD_MASK>
  • 命令格式二:

    ALTER [<CPT_NAME>] CP <SCHNAME>.<TABNAME> <LOAD_MASK>

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
<SCHNAME>.<TABNAME> 目标数据库新表的模式名.表名。
LOAD_MASK 结果集装载掩码。结果集装载仅支持SQL、DROP、CREATE、INSERT和PDB掩码,SQL掩码为必配掩码,掩码后面需接SQL语句。掩码的具体说明请参见添加同步表章节的装载掩码说明表
注:仅使用SQL掩码会自动加上INSERT掩码。

命令示例

装载SELECT A.NAME, A.AGE, B.ADDRESS FROM PERSON.ADDRESS A, PERSON.ADDRESS_TYPE B获取的结果集到目标数据库的新表OTHER.EMPSALARY中。

  • 命令示例一:

    cp cpt_dm8 OTHER.EMPSALARY SQL|"SELECT A.NAME, A.AGE, B.ADDRESS FROM PERSON.ADDRESS A, PERSON.ADDRESS_TYPE B"
  • 命令示例二:

    alter cpt_dm8 cp OTHER.EMPSALARY SQL|"SELECT A.NAME, A.AGE, B.ADDRESS FROM PERSON.ADDRESS A, PERSON.ADDRESS_TYPE B"
  • 命令示例三:

    cp cpt_dm8 OTHER.EMPSALARY SQL|"SELECT A.NAME, A.AGE, B.ADDRESS FROM PERSON.ADDRESS A, PERSON.ADDRESS_TYPE B"|PDB|"PDB1"

5.1.6 自定义类型装载

命令功能

将源数据库的自定义类型对象信息保存到离线字典,并将自定义类型对象装载到目标数据库。

说明

该命令仅适用于Oracle源数据库。

命令格式

ALTER [<CPT_NAME>] ADD TYPE "<FILTER>" [<LOAD_MASK>]

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
"<FILTER>" FILTER:从数据库中筛选待同步的自定义类型对象的条件,过滤条件采用SQL表达式,需要满足SQL表达式的语法规则。过滤条件中SCH.NAME为模式名,TYPE.NAME为自定义类型名。格式举例如下:
"SCH.NAME='<SCHNAME>' AND TYPE.NAME='<TYPENAME>'" :SCHNAME模式下的自定义类型TYPENAME。
"SCH.NAME='<SCHNAME_PERSON>' or SCH.NAME='<SCHNAME_RESOURCES>'":SCHNAME_PERSON和SCHNAME_RESOURCES模式下所有的自定义类型。
LOAD_MASK 装载掩码,掩码包括DROP、CREATE和DICT,装载掩码可以自由组合,默认值为CREATE。具体说明请参见装载掩码说明表
装载掩码说明表
装载掩码 说明
CREATE 该掩码表示装载时需要在目标数据库创建对象。
示例:
装载源数据库RESOURCES模式下的对象名为ETYPE的自定义类型。
alter cpt_ora add type "sch.name='RESOURCES' and type.name='ETYPE'" CREATE
DROP 该掩码表示删除目标数据库的对象。
示例:
装载源数据库RESOURCES模式下对象名为ETYPE的自定义类型,如果目标数据库存在同名的自定义类型,则先删除再装载。
alter cpt_ora add type "sch.name='RESOURCES' and type.name='ETYPE'" DROP|CREATE
DICT 该掩码表示仅装载自定义类型的字典。
示例:
装载源数据库RESOURCES模式下的所有自定义类型的字典。
alter cpt_ora add type "sch.name='RESOURCES'" DICT

命令示例

  • 装载RESOURCES模式下的对象名为ETYPE的自定义类型。

    alter cpt_ora add type "sch.name='RESOURCES' and type.name='ETYPE'" CREATE
  • 装载RESOURCES模式下的所有自定义类型。

    alter cpt_ora add type "sch.name='RESOURCES'" CREATE

5.1.7 备份还原装载

适用场景

数据迁移、数据同步

命令功能

使用备份还原的方式进行初始化装载。使用该命令可以使源数据库自动生成备份集或备份文件进行全库装载,也可以使用已存在的备份集或备份文件进行全库装载。

说明
  • 该命令仅适用于DM6、DM7和DM8同构数据库间的备份还原装载。
  • 源数据库为DM6时,由于数据装载需要对源数据库表上锁,在DM6源数据库存在业务的情况下,上锁可能会对业务造成影响,故需使用该命令进行备份还原装载。
  • 源数据库为DM7/DM8时,当装载业务较多或较为复杂时,可使用该命令进行备份还原装载。

使用备份还原装载命令前的准备工作如下:

  1. DM7/DM8需要关闭目标数据库实例,DM6则需要设置目标数据库脱机。清空目标数据库的归档日志。

  2. 在目标DMDRS程序运行目录的mgr目录下创建以源DMDRS模块名命名的文件夹,在该目录下创建LD_BACKUP文件夹,将目标数据库的dm.ini、dmdcr.ini文件拷贝到LD_BACKUP目录。删除目标DMDRS程序运行目录下的drsvr.ini文件。

  3. 启动目标DMDRS服务,不启动EXEC模块。

  4. 删除源DMDRS程序运行目录下的drsvr.ini文件。

  5. 启动源DMDRS服务,不启动CPT模块。

使用备份还原装载命令备份还原成功后启动同步前的准备工作如下:

  1. DM7/DM8需要启动目标数据库实例,DM6则需要设置数据库联机。删除目标数据库的“DRS_”开头的辅助表和库级触发器。

  2. 启动EXEC模块。

  3. 添加增量同步表。

    注意

    设置DM6/DM7/DM8(单机、DMDSC)备份集或备份文件LSN前,添加增量同步表应该考虑增量同步表字典的生成时机。源DMDRS装载字典有两种方式。

    • 在源数据库备份集产生时间和获取字典时间周期内,无DDL语句产生时,源DMDRS可以直接从源数据库获取字典信息生成离线字典文件。
    • 在源数据库备份集产生时间和获取字典时间周期内,有DDL产生,应从目标数据库中获取字典信息生成离线字典文件,并拷贝到源DMDRS字典目录。
  4. 配置起始LSN。使用从备份集或备份文件中获取的LSN。

    注意
    • 若通过DMDRS进行备份还原,无需手动设置LSN。
    • 若不通过DMDRS进行备份还原,手动进行数据库的备份还原操作,需要手动设置LSN。不同数据库用法不同,具体如下:
      • DM7/DM8单机示例:alter cpt set lsn from "/opt/dm8/backupset"。
      • DMDSC示例:alter cpt set lsn from "/opt/dsc/backupset"。
      • DM6不支持手动方式从备份集中设置LSN。
  5. 启动CPT模块,开启同步。

命令格式

ALTER [<CPT_NAME>] ADD BACKUP BACKUPSET|BACKUPFILE [START] [FILE] ["<BACKUP_PATH>"]|[PDB "<SRC_DB_NAME>==<DST_DB_NAME>"]

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
BACKUPSET|BACKUPFILE BACKUPSET:使用备份集方式进行备份还原装载(仅适用于DM7、DM8数据库)。
BACKUPFILE:使用备份文件方式进行备份还原装载(仅适用于DM6、DM7和DM8数据库)。
START 备份还原完成后自动启动服务和模块,包括启动目标还原数据库服务与目标DMDRS服务的EXEC模块,以及源DMDRS根据备份集/备份文件设置LSN和启动源DMDRS服务的CPT模块一系列的操作(仅适用于DM7、DM8数据库)。该掩码适用于在源数据库备份集/备份文件产生时间和获取字典时间周期内,无DDL语句产生的情况,且需在执行备份还原操作前获取字典。
FILE 表示指定已存在的备份集或备份文件进行备份还原装载。

  • 当使用备份集方式,指定已存在的备份集目录进行备份还原装载时,必须配置FILE参数。

  • 当使用备份集方式,指定源数据库生成备份集的目录,不需要配置FILE参数。

  • 当使用备份文件方式,指定已存在的备份文件进行备份还原装载时,必须配置FILE参数。

  • 当数据库为DM6时:不指定FILE参数,由于DM6备份文件中仅包含结束LSN,故源DMDRS日志分析的LSN将设置为最早活动事务的LSN;指定FILE参数,由于DM6备份文件中仅包含结束LSN,故源DMDRS日志分析的LSN将设置为0。

"<BACKUP_PATH>" 备份集/备份文件所在目录或备份文件路径。
PDB "<SRC_DB_NAME>==<DST_DB_NAME>" 指定DM6源备份数据库名以及目标还原数据库名。DM6数据库为必配参数,且目标DMDRS连接的DM6数据库不能是目标DMDRS要还原的库。DM7/DM8数据库不需要配置该参数。
SRC_DB_NAME:源备份数据库名。
DST_DB_NAME:目标还原数据库名。

命令示例

  • 使用备份集方式进行数据库全库装载。

    alter cpt_dm8 add backup backupset
  • 使用备份集方式进行数据库全库装载,完成后并自动启动同步。

    alter cpt_dm8 add backup backupset start
  • 指定已存在的备份文件进行数据库全库装载。

    alter cpt_dm8 add backup backupfile file "/opt/bak/drs.bak"
  • 指定已存在的备份集进行数据库全库装载。

    alter cpt_dm8 add backup backupset file "/opt/bak/drs"
  • 指定源数据库自动生成的备份集保存在 "/opt/backupset/bak"目录。

    alter cpt_dm8 add backup backupset "/opt/backupset/bak"
  • 指定源数据库自动生成的备份文件保存在 "/opt/backupfile/bak"目录。

    alter cpt_dm8 add backup backupfile "/opt/backupfile/bak"
  • 指定DM6备份还原装载时的源备份库为SRC_DB,目标还原库为DST_DB。

    alter cpt_dm8 add backup backupfile pdb "SRC_DB==DST_DB"

5.1.8 强制激活装载失败表同步

适用场景

数据同步、数据分发

命令功能

该命令用来对装载失败的表强制激活同步。当装载表存在分组失败或创建主键失败时,源DMDRS不会发送消息激活该表同步,目标DMDRS会一直将该表的同步操作缓存起来直至激活该表的同步。

注意

强制激活装载失败表的同步会导致没有装载成功的分组数据全部被过滤,目标DMDRS可能会报错影响行数不一致,请慎重使用!

命令格式

ALTER [<CPT_NAME>] SYNC TABLE [<PDBNAME>.]"<SCHNAME>"."<TABNAME>"

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
[<PDBNAME>.]"<SCHNAME>"."<TABNAME>" 容器名.模式名.表名,容器名仅适用于容器数据库。

命令示例

表RESOURCES.EMPLOYEE装载失败,强制激活该表的同步。

alter cpt_dm8 sync table "RESOURCES"."EMPLOYEE"

5.1.9 删除装载历史记录

适用场景

数据迁移、数据同步、数据分发

命令功能

删除内置库中的装载历史记录,包括字典和表的装载记录。删除后可节约一定的存储空间,但后续无法再使用显示命令查看已经完成的装载信息,且无法对之前存在的装载中断后数据进行断点续传。

注意

正在装载时无法使用该命令。

命令格式

ALTER [<CPT_NAME>] DELETE LOAD_RECORD

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。

命令示例

删除名称为“cpt_dm8”的CPT模块的全部装载记录。

alter cpt_dm8 delete load_record

5.1.10 指定掩码重装错误表

适用场景

数据迁移、数据同步、数据分发

命令功能

当装载异常中断,表的历史装载掩码无法续传,可使用该命令重新指定装载掩码对所有历史装载错误表重装。该命令会对最近装载历史为失败的所有表按照指定的掩码自动重装。

注意

某次装载命令中失败的表必须等待该次命令结束后才能使用该命令重装。

命令格式

ALTER [<CPT_NAME>] CONTINUE RELOAD [<LOAD_MASK>]

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
LOAD_MASK 装载掩码。掩码包括DROP、CREATE、INSERT、GROUP和TRUNCATE等,装载掩码可以自由组合,此处必须指定装载掩码。具体说明请参见添加同步表章节的装载掩码说明表

命令示例

如果第一次装载表RESOURCES.PERSON结果失败,第二次装载表RESOURCES.EMPLOYEE和RESOURCES.DEPARTMENT结果失败,需要直接对两次装载的所有失败表指定掩码重新装载。

alter cpt_dm8 continue reload DROP|CREATE|INSERT|GROUP|INDEX

5.1.11 动态修改装载虚拟LSN

适用场景

数据分发

命令功能

可以动态设置装载虚拟LSN,用于手动调整装载数据的LSN。

命令格式

ALTER [<CPT_NAME>] SET LOAD LSN <NEW_LSN>

参数说明

参数 说明
CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。
NEW_LSN 新虚拟LSN,设置的新虚拟LSN必须大于旧虚拟LSN。

命令示例

动态设置装载虚拟LSN为10000。

alter cpt_dm8 set load lsn 10000
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服