目录
一、环境信息
|-----------|------------------------------------------------------------------------------------------------------------------------------|
| 名称 | 值 |
| CPU | 12th Gen Intel(R) Core(TM) i7-12700H |
| 操作系统 | CentOS Linux release 7.9.2009 (Core) |
| 内存 | 4G |
| 逻辑核数 | 4 |
| Oracle端IP | 192.168.139.10 |
| Dm端IP | 192.168.139.11 |
| Oracle版本 | Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production |
| DM版本 | 1 DM Database Server 64 V8 2 DB Version: 0x7000d 3 03134284336-20250218-260144-20132 4 Msg Version: 32 5 Gsu level(5) cnt: 0 |
| Drs版本 | V5.2.4.3-Build(2025.09.02-198770_trunc_sp1)_64 |
二、介绍
异构增量同步工具在国产化替代项目中,经常会用到,其命令也复杂多样,我们来对于一些实用性的命令进行介绍,方便大家更好的使用此工具。
此文参考并引用了官方文档。
三、DRS相关文章
|----|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 编号 | 链接 |
| 1 | 达梦数据库-学习-32-异构数据库同步工具DmDrs(Oracle同步至达梦) |
| | |
四、命令介绍
1、配置起始LSN
(1)功能
此命令用来设置同步时日志解析的起始LSN。
在同步时,一般使用数据库的最新日志LSN作为同步的起点,因此在设置起始LSN时不应指定具体的LSN值。如果需要回溯或跳跃某段日志后继续进行日志解析,可以指定某个归档或在线日志文件的LSN作为同步的起点,此时在设置LSN时指定具体的LSN值,同步服务将从该LSN处开始解析日志。需要注意的是,当指定具体的LSN值时,会向目标端投递活动事务清理操作,目标端会释放所有未接收提交操作的活动事务,这一步会导致同步数据丢失,需要谨慎使用该功能。
(2)注意
- 设置LSN时会向目标端发送清理命令,目标端会清理掉之前接收到的所有事务,造成同步数据的丢失。
- 源DMDRS的CPT模块为停止状态以及没有装载活动时才能执行配置起始LSN命令。
(3)格式
sql
命令格式一:
ALTER [<CPT_NAME>] SET LSN [<LSN>|FROM <BACKUPSET_DIR>|<LSN_STR>]
命令格式二:
配置起始LSN为数据库的最新日志LSN。
CLEAR|SET EXEC LSN
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| LSN | LSN值。对除DSC和MySQL以外的数据库有效。 |
| BACKUPSET_DIR | DSC的备份集目录。仅对DSC数据库有效。 用于设置源DMDRS的起始LSN,在DSC场景中,由于存在多个节点的起始LSN,所以不允许指定单一LSN。 |
| LSN_STR | DSC各个节点的LSN值,参数格式为"[(节点0,LSN值),(节点1,LSN值),...]"。仅对DSC数据库有效。 建议在新搭建环境时使用,否则可能导致目标数据库数据不一致。 |
(5)示例
配置起始LSN为数据库的最新日志LSN。
sql
CSL> alter cpt_oracle set lsn
CSL[INFO]: [INPUT CMD: alter cpt_oracle set lsn]
MGR[INFO]: 成功获取模块的起始SCN cpt name: cpt_oracle, SCN: 2729571
命令执行成功
指定起始LSN(Oracle)
sql
SQL> SELECT current_scn FROM v$database;
CURRENT_SCN
-----------
2729620
sql
CSL> alter cpt_oracle set lsn 2729620
CSL[INFO]: [INPUT CMD: alter cpt_oracle set lsn 2729620]
MGR[INFO]: 成功获取模块的起始SCN cpt name: cpt_oracle, SCN: 2729620
命令执行成功
从备份集中设置DSC起始LSN。
alter cpt_dsc set lsn from "/opt/dsc/backupset"
注意
设置DSC备份集LSN时,应该考虑字典的生成时机。源DMDRS装载字典有两种方式。
- 在源数据库备份集产生时间和获取字典时间周期内,无DDL语句产生时,源DMDRS可以直接从源数据库获取字典信息生成离线字典文件。
- 在源数据库备份集产生时间和获取字典时间周期内,有DDL产生,应从目标数据库中获取字典信息生成离线字典文件,并拷贝到源DMDRS字典目录。
配置DSC环境各个节点的起始LSN。
alter cpt_dsc set lsn "[(0,100),(1,200)]"
注意
设置DSC各个节点的LSN时,应该在新环境中使用,否则可能导致目标数据库数据不一致。
2、关闭模块
(1)功能
关闭CPT模块、DSS模块和EXEC模块。
(2)注意
无。
(3)格式
sql
命令格式一:
关闭该类型的第一个模块。
STOP CPT|DSS|EXEC
命令格式二:
关闭该类型指定的模块。
STOP <CPT_NAME>|<DSS_NAME>|<EXEC_NAME>
命令格式三:
关闭所有的模块。
STOP
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| DSS_NAME | DSS模块的名称,对应配置文件中DSS模块的"name"参数。 |
| EXEC_NAME | EXEC模块的名称,对应配置文件中EXEC模块的"name"参数。 |
(5)示例
sql
CSL> stop cpt
CSL[INFO]: [INPUT CMD: stop cpt]
MGR[INFO]: 模块已经处于停止状态 module: cpt_oracle
命令执行成功
3、启动模块
(1)功能
启动CPT模块、DSS模块和EXEC模块。对于CPT模块,启动后即开始进行增量同步,EXEC模块和DSS模块启动后开始接收上一级发送的数据。
根据应用场景的不同,模块之间启动的先后顺序也有不同,具体如下所示。
-
数据迁移
先启动EXEC模块,无需启动CPT模块。
-
数据同步
先启动EXEC模块,再启动CPT模块。
-
数据分发
先启动DSS模块,再启动CPT模块,最后启动EXEC模块。
(2)注意
无。
(3)格式
sql
命令格式一:
启动该类型的第一个模块。
START CPT|DSS|EXEC
命令格式二:
启动该类型指定的模块。
START <CPT_NAME>|<DSS_NAME>|<EXEC_NAME>
命令格式三:
启动所有的模块。
START
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| DSS_NAME | DSS模块的名称,对应配置文件中DSS模块的"name"参数。 |
| EXEC_NAME | EXEC模块的名称,对应配置文件中EXEC模块的"name"参数。 |
(5)示例
sql
CSL> start cpt
CSL[INFO]: [INPUT CMD: start cpt]
MGR[INFO]: 模块正在启动 module: cpt_oracle
MGR[INFO]: 得到起始SCN start scn: 2729620
MGR[INFO]: 模块已经处于运行状态 module: cpt_oracle
命令执行成功
4、添加同步表
(1)功能
在同步中,动态添加同步表。添加同步表后,源DMDRS会将源数据库同步表的全量数据和增量数据同时发送到目标DMDRS,目标DMDRS会自动将表的全量数据装载到目标数据库,装载过程中增量数据会全部缓存到目标DMDRS,直至全量数据装载成功后才激活同步。
(2)注意
无。
(3)格式
sql
ALTER [<CPT_NAME>] ADD TABLE "<FILTER>" [<LOAD_MASK>]
(4)参数说明
| 参数 | 说明 |
|---|---|
| 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数据库。当对整个模式下的表使用CONTINUE时,会对模式下最近装载历史为失败的表自动续传,续传时的掩码为历史装载的掩码;成功的表自动忽略;没有装载历史的表正常装载,只有CONTINUE掩码时使用默认掩码装载。当和FORCE掩码组合使用时,会自动添加FORCE掩码到续传表以及首次装载的表。 示例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 |
| DELAY | 该掩码表示延迟装载字节长度超过4000的大对象数据。不适用于DM6、MySQL和SQL Server数据库。在装载含大对象数据的表时使用,对非大对象数据和小于等于4000字节的大对象数据正常装载,而对超过4000大对象列先填充空值,之后再对大对象列更新大对象数据,以达到先装载普通数据,后装载大对象数据的效果。使用该掩码会默认在目标端启用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 | 该掩码表示目标端采用交换分区装载的方式来装载数据。仅适用于目标数据库为DM7、DM8和Oracle数据库,且不适用于源数据库为MySQL和SQL Server数据库。装载模块根据被装载表的分区分别装载多个分区基表,可以有效缓解装载到同一张表时引发的热点,待某个子分区的数据装载完成以后,在目标数据库上利用交换分区功能将这些基表合并为同一张表。由于EXCHANGE掩码会将数据插入临时表,使用DELAY掩码插入非大对象数据时得到的是临时表的ROWID,后续更新大对象时无法使用,所以EXCHANGE掩码无法与DELAY掩码共同使用。使用EXCHANGE掩码功能装载的表故障时不支持续传。推荐使用的掩码组合:DROP|CREATE|INSERT|GROUP|EXCHANGE。 在装载数据量上亿的分区表时,为了加快装载速度,可以采用交换分区的掩码来进行装载,以便提升目标端数据入库的速度。 说明: 该掩码不支持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,目标端已安装数据库对应的DPI/OCI接口组件,通过快速装载的方式投递到目标端的数据,EXEC模块使用DPI的FLDR系列接口或使用OCI的DIRPATH系列接口来进行数据入库,并且当使用快装接口出错时,会转为普通的SQL语句方式重试。目的端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单机和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数据库和不支持SF_GET_TABLE_GROUP_INFO_BY_ROWS函数的DM8版本数据库只能指定分组数,紧跟数字表示每个表分多少组,默认的分组数为4,能够指定的最大分组数为10000;对于MySQL数据库目前仅支持含有唯一整形列主键的表进行分组装载,分区键为主键列。不满足唯一整形列主键的表即使指定了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 |
| 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掩码来更新目标端的大对象数据。 示例: 装载源数据库RESOURCES模式下的所有表,如果表中存在大对象列,忽略大对象列进行装载。 alter cpt_dm8 add table "sch.name='RESOURCES'" CREATE|INSERT|GROUP|NOLOB |
| NOLOCK | 该掩码表示对装载表不上锁。由于使用INSERT掩码装载数据时默认对表上S锁,导致表一直无法被第三方写入,从而影响到其它应用。使用NOLOCK掩码,查询之前将不再对表上S锁,可以减少对应用的影响,但是也会导致装载到目标端数据跟源端不一致,请谨慎使用该掩码。 在线系统上搭建同步时,数据库永远处于工作状态,某些表上时时刻刻都会有操作,而装载时要求对表上S锁,S锁需要在表没有修改访问的前提下才能成功,这就导致可能会上锁失败。当源端为DM7/DM8数据库,同时对该表的上锁操作过多可能会报错死锁,导致上锁失败。当上锁失败后不会重试,直接跳过该分组装载,后续可选择续装或者重装该表。如果装载的表对数据一致性的要求并不高,允许有差异存在,可以使用该掩码,在装载时不对源表上S锁,直接查询抽取数据。 示例: 使用非上锁模式装载表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 |
| PDB | 该掩码用于容器数据库的装载,需要紧跟容器名。如果是容器数据库,必须使用PDB掩码。此掩码不适用于MySQL数据库。 示例: 装载容器名为COMPANY的容器数据库中表RESOURCES.DEPARTMENT。 alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" PDB|"COMPANY" |
| ROWID | ROWID仅支持与CREATE掩码组合使用。不适用于DM6、MySQL和SQL Server数据库,以及Oracle索引组织表(IOT)。该掩码表示启用目标端ROWID相关功能。 示例: 装载源端表RESOURCES.DEPARTMENT,并在目标端表上隐式创建#ROWID辅助列映射。 alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" CREATE|ROWID |
| ROWS | 该掩码用于设置装载批量读取的行数。参数最大值为10000,当未设置该掩码时,装载批量读取行数为250。 示例: 装载源端表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装载时指定消费者的站点号。后面双引号内跟本次装载允许消费的目标端站点号,多个站点用逗号间隔。 示例: 装载源端表RESOURCES.DEPARTMENT的数据,仅允许站点id为4和5的目标端消费。 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 | 该掩码表示装载数据时校验日期时间类型的合法性。如果日期时间不合法,即小于1900-01-01 00:00:00或大于9999-12-31 23:59:59,都会被替换为1900-01-01 00:00:00的日期时间。如果时间值不合法,则会替换为00:00:00。由于Oracle数据库允许DATA列存放任意时间值,而有些数据库只允许存放1900年以后的值,这种情况会导致装载失败,在这种情况下可以使用该掩码在装载时检查日期时间值的合法性。 示例: 装载源数据库PURCHASING模式下的PURCHASEORDER_DETIAL表,对其中的日期时间类型数据开启合法性检验。 alter cpt_ora add table "sch.name='PURCHASING' and tab.name='PURCHASEORDER_DETIAL'" INSERT|GROUP|TIME 注意: 使用TIME掩码进行装载后,同步需要开启[enable_check_date](#ROWID辅助列映射。 alter cpt_dm8 add table "sch.name='RESOURCES' and tab.name='DEPARTMENT'" CREATE |
| 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数据库。普通装载需要对源端的表上锁,装载模块默认上锁使用了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 | 该掩码表示主键和唯一约束跟随建表添加。 普通的含主键或唯一约束表装载,主键和唯一约束是在数据装载完成后,通过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 |
(5)示例
sql
CSL> alter cpt_oracle add table "sch.name='CZG' and tab.name='SUN'" insert|group"
CSL[INFO]: [INPUT CMD: alter cpt_oracle add table "sch.name='CZG' and tab.name='SUN'" insert|group"]
MGR[INFO]: 获取到装载掩码组合 mask: |INSERT|TABLE|GROUP
命令执行成功
5、数据断点续传
(1)功能
当装载异常中断,可使用断点续传命令完成数据装载。该命令会对最近装载历史为失败的所有表自动续传。该功能不适用于DB2、MySQL数据库。
(2)注意
- 某次装载命令中失败的表必须等待该次命令结束后才能续传。
(3)格式
sql
ALTER [<CPT_NAME>] CONTINUE LOAD
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
配置起始LSN为数据库的最新日志LSN。
sql
alter cpt_dm8 continue load
6、停止装载所有表
(1)功能
停止装载指定CPT模块的所有表。
(2)注意
- 此命令为停止装载源端所有表,并未删除目标端已装载的表或数据。
(3)格式
sql
ALTER [<CPT_NAME>] STOP LOAD
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
停止装载名称为"cpt_dm8"的CPT模块的所有表。
sql
alter cpt_dm8 stop load
7、停止装载指定表
(1)功能
停止装载指定CPT模块的指定表。
(2)注意
- 此命令为停止装载源端指定表,并未删除目标端已装载的表或数据。
(3)格式
sql
ALTER [<CPT_NAME>] STOP TABLE [<PDBNAME>.]<SCHNAME>.<TABNAME>
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| [<PDBNAME>.]<SCHNAME>.<TABNAME> | 容器名.模式名.表名,容器名仅适用于容器数据库。容器名、模式名和表名都支持模糊查询,具体如下: *:所有容器、模式或表。 A*:前缀为A的所有容器、模式或表。 *B:后缀为B的所有容器、模式或表。 A*B:前缀为A以及后缀为B的所有容器、模式或表。 |
(5)示例
停止装载名称为"cpt_dm8"的CPT模块的表RESOURCES.PERSON。
sql
alter cpt_dm8 stop table RESOURCES.PERSON
8、对象装载
(1)功能
将源数据库的对象装载到目标数据库,支持一次装载单一对象、一类对象。
(2)注意
(3)格式
sql
命令格式一:
CP <CPT_NAME> "<OBJ_FILTER>" <LOAD_MASK> <OBJ_TYPE>
命令格式二:
ALTER [<CPT_NAME>] CP "<OBJ_FILTER>" <LOAD_MASK> <OBJ_TYPE>
(4)参数说明
| 参数 | 说明 |
|---|---|
| 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 |
(5)示例
-
装载单一对象:装载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
9、结果集装载
(1)功能
装载SQL获取的结果集到目标数据库的新表中。
(2)注意
- DM源数据库不支持LONG数据类型的结果集装载。
- Oracle源数据库不支持LONG和NCLOB数据类型的结果集装载。
(3)格式
sql
命令格式一:
CP <CPT_NAME> <SCHNAME>.<TABNAME> <LOAD_MASK>
命令格式二:
ALTER [<CPT_NAME>] CP <SCHNAME>.<TABNAME> <LOAD_MASK>
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| <SCHNAME>.<TABNAME> | 目标数据库新表的模式名.表名。 |
| LOAD_MASK | 结果集装载掩码。结果集装载仅支持SQL、DROP、 CREATE、 INSERT和 PDB掩码,SQL掩码为必配掩码,掩码后面需接SQL语句。掩码的具体说明请参见[添加同步表](#参数 说明 CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。 <SCHNAME>.<TABNAME> 目标数据库新表的模式名.表名。 LOAD_MASK 结果集装载掩码。结果集装载仅支持SQL、DROP、 CREATE、 INSERT和 PDB掩码,SQL掩码为必配掩码,掩码后面需接SQL语句。掩码的具体说明请参见添加同步表章节的装载掩码说明表。 注:仅使用SQL掩码会自动加上CREATE和INSERT掩码。)章节的装载掩码说明表。 注:仅使用SQL掩码会自动加上CREATE和INSERT掩码。 |
(5)示例
装载SELECT A.NAME, A.SGE, B.ADDRES FROM PERSON.ADDRESS A, PERSON.ADDRESS_TYPE B获取的结果集到目标数据库的新表OTHER.EMPSALARY中。
-
命令示例一:
cp cpt_dm8 OTHER.EMPSALARY SQL|"SELECT A.NAME, A.SGE, B.ADDRES FROM PERSON.ADDRESS A, PERSON.ADDRESS_TYPE B" -
命令示例二:
alter cpt_dm8 cp OTHER.EMPSALARY SQL|"SELECT A.NAME, A.SGE, B.ADDRES FROM PERSON.ADDRESS A, PERSON.ADDRESS_TYPE B" -
命令示例三:
cp cpt_dm8 OTHER.EMPSALARY SQL|"SELECT A.NAME, A.SGE, B.ADDRES FROM PERSON.ADDRESS A, PERSON.ADDRESS_TYPE B"|PDB|"PDB1"
10、强制激活装载失败表同步
(1)功能
该命令用来对装载失败的表强制激活同步。当装载表存在分组失败或创建主键失败时,源DMDRS不会发送消息激活该表同步,目标DMDRS会一直将该表的同步操作缓存起来直至激活该表的同步。
(2)注意
- 强制激活装载失败表的同步会导致没有装载成功的分组数据全部被过滤,目标DMDRS可能会报错影响行数不一致,请慎重使用!
(3)格式
sql
ALTER [<CPT_NAME>] SYNC TABLE [<PDBNAME>.]"<SCHNAME>"."<TABNAME>"
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| [<PDBNAME>.]"<SCHNAME>"."<TABNAME>" | 容器名.模式名.表名,容器名仅适用于容器数据库。 |
(5)示例
表RESOURCES.EMPLOYEE装载失败,强制激活该表的同步。
alter cpt_dm8 sync table "RESOURCES"."EMPLOYEE"
11、删除装载历史记录
(1)功能
删除内置库中的装载历史记录,包括字典和表的装载记录。删除后可节约一定的存储空间,但后续无法再使用显示命令查看已经完成的装载信息,且无法对之前存在的装载中断后数据进行断点续传。
(2)注意
- 正在装载时无法使用该命令。
(3)格式
sql
ALTER [<CPT_NAME>] DELETE LOAD_RECORD
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
删除名称为"cpt_dm8"的CPT模块的全部装载记录。
alter cpt_dm8 delete load_record
12、静态分组装载
(1)功能
将DM8的聚集主键表静态分组装载到目标表中,不管同步与装载之间的衔接。
(2)注意
- 仅支持DM8数据库,且数据库支持SF_GET_TABLE_GROUP_INFO函数。
- 仅针对DM8的聚集主键表,其他表仍采用rowid分组方式。
(3)格式
sql
ALTER [<CPT_NAME>] CP <SCHNAME>.<TABNAME> <LOAD_MASK>
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| <SCHNAME>.<TABNAME> | 目标数据库新表的模式名.表名。 |
| LOAD_MASK | 静态装载掩码。静态装载需增加STATIC掩码。掩码的具体说明请参见[添加同步表](#参数 说明 CPT_NAME CPT模块的名称,对应配置文件中CPT模块的“name”参数。 <SCHNAME>.<TABNAME> 目标数据库新表的模式名.表名。 LOAD_MASK 静态装载掩码。静态装载需增加STATIC掩码。掩码的具体说明请参见添加同步表章节的装载掩码说明表。 注:仅适用DM8聚集主键表,且聚集主键字段个数小于等于3。)章节的装载掩码说明表。 注:仅适用DM8聚集主键表,且聚集主键字段个数小于等于3。 |
(5)示例
静态装载聚集主键表RESOURCES.PERSON。
alter cpt_dm8 add table "sch.name='RESOURCES' or sch.name='PERSON'" DROP|CREATE|INSERT|GROUP|5000|STATIC
13、查看总体装载状态
(1)功能
查看指定CPT模块各装载状态的对象数量、开始时间、结束时间、装载条件、装载掩码和对象类型等。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME>] LOAD STATUS [LAST]
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| LAST | 配置该参数表示仅查看最近一次装载历史状态。不配置该参数表示查看所有装载历史状态。 |
(5)示例
查看CPT模块各装载状态的表数量信息。
sql
CSL> show cpt_oracle load status
CSL[INFO]: [INPUT CMD: show cpt_oracle load status]
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 【装载状态】 |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 序号 | 需装载对象 | 装载字典 | 已装载对象 | 未装载对象 | 正装载对象 | 装载错误对象 | 开始时间 | 结束时间 | 装载条件 | 装载掩码 | 对象类型 |
+------+------------+----------+------------+------------+------------+--------------+---------------------+---------------------+-----------------------------------+---------------+----------+
| 4 | 1 | 1 | 1 | 0 | 0 | 0 | 2026-01-06 10:40:17 | 2026-01-06 10:40:21 | sch.name='CZG' and tab.name='SUN' | INSERT|GROUP" | TABLE |
| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 2026-01-06 10:37:10 | 2026-01-06 10:37:10 | sch.name='CZG' and tab.name='SUN' | INSERT|GROUP" | TABLE |
| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 2026-01-06 10:33:23 | 2026-01-06 10:33:24 | sch.name='CZG' and tab.name='SUN' | INSERT|GROUP" | TABLE |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2026-01-06 10:30:49 | 2026-01-06 10:30:51 | sch.name='CZG' and tab.name='SUN' | INSERT|GROUP" | TABLE |
+------+------------+----------+------------+------------+------------+--------------+---------------------+---------------------+-----------------------------------+---------------+----------+
命令执行成功
CSL> show cpt_oracle load status last
CSL[INFO]: [INPUT CMD: show cpt_oracle load status last]
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 【装载状态】 |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 序号 | 需装载对象 | 装载字典 | 已装载对象 | 未装载对象 | 正装载对象 | 装载错误对象 | 开始时间 | 结束时间 | 装载条件 | 装载掩码 | 对象类型 |
+------+------------+----------+------------+------------+------------+--------------+---------------------+---------------------+-----------------------------------+---------------+----------+
| 4 | 1 | 1 | 1 | 0 | 0 | 0 | 2026-01-06 10:40:17 | 2026-01-06 10:40:21 | sch.name='CZG' and tab.name='SUN' | INSERT|GROUP" | TABLE |
+------+------------+----------+------------+------------+------------+--------------+---------------------+---------------------+-----------------------------------+---------------+----------+
命令执行成功
结果说明
| 参数 | 说明 |
|---|---|
| 序号 | 从装载线程启动开始,第几个装载命令。 |
| 需装载对象 | 需要装载的对象的总数量。只装载字典时为0。 |
| 装载字典 | 装载的字典数量。默认值为0。 |
| 已装载对象 | 已装载完成的对象数量。只装载字典时为0。 |
| 未装载对象 | 等待装载的对象数量。只装载字典或表以外对象时为0。 |
| 正装载对象 | 正在装载的对象数量。只装载字典或表以外对象时为0。 |
| 装载错误对象 | 装载错误的对象数量。只装载字典时为0。 |
| 开始时间 | 装载命令开始执行的时间。 |
| 结束时间 | 装载命令结束执行的时间。 |
| 装载条件 | 装载命令的过滤条件。 |
| 装载掩码 | 装载命令使用的掩码组合。 |
| 对象类型 | 装载的对象类型。 |
14、查看正在装载的表信息
(1)功能
查看指定CPT模块正在装载的表的具体信息,如已装载行数、装载条件、发送进度、速度等。
(2)注意
无。
(3)格式
-
命令格式一:
查看第一个CPT模块正在装载的表的具体信息。
LD -
命令格式二:
查看指定CPT模块或者第一个CPT模块正在装载的表的具体信息。
SHOW [<CPT_NAME>] LOAD TABLE RUNNING
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
查看CPT模块正在装载的表的具体信息。
sql
CSL> show cpt_oracle load table running
CSL[INFO]: [INPUT CMD: show cpt_oracle load table running]
无正在装载表信息!
命令执行成功
CSL> ld
CSL[INFO]: [INPUT CMD: ld]
+------------------------------------------------------------------------------------+
| 【全部装载表】 |
+------------------------------------------------------------------------------------+
| 序号 | 模式名 | 表名 | 已装载行数 | 状态 | 开始时间 | 耗时 | 分组数 |
+------+--------+------+------------+----------+---------------------+------+--------+
| 4 | CZG | SUN | 5 | COMPLETE | 2026-01-06 10:40:18 | 3 s | 1 |
+------+--------+------+------------+----------+---------------------+------+--------+
命令执行成功
15、查看装载错误的表信息
(1)功能
查看指定CPT模块装载错误的表的具体信息,如已装载行数、错误原因等。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME] LOAD TABLE ERROR
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
查看CPT模块装载错误的表的具体信息。
sql
CSL> show cpt_oracle load table error
CSL[INFO]: [INPUT CMD: show cpt_oracle load table error]
无装载错误表信息!
命令执行成功
16、查看全部装载的表信息
(1)功能
查看指定CPT模块各装载状态表的具体信息,如模式名、表名、已装载行数、状态、耗时等。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME>] LOAD TABLE ALL
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
查看CPT模块各装载状态表的具体信息。
sql
CSL> show cpt_oracle load table all
CSL[INFO]: [INPUT CMD: show cpt_oracle load table all]
+------------------------------------------------------------------------------------+
| 【全部装载表】 |
+------------------------------------------------------------------------------------+
| 序号 | 模式名 | 表名 | 已装载行数 | 状态 | 开始时间 | 耗时 | 分组数 |
+------+--------+------+------------+----------+---------------------+------+--------+
| 4 | CZG | SUN | 5 | COMPLETE | 2026-01-06 10:40:18 | 3 s | 1 |
+------+--------+------+------------+----------+---------------------+------+--------+
命令执行成功
结果说明
| 参数 | 说明 |
|---|---|
| 序号 | 从装载线程启动开始,第几个装载命令产生的装载表。 |
| 模式名 | 装载表所属的模式名。 |
| 表名 | 装载表的表名。 |
| 已装载行数 | 已完成装载的行数。状态为"已完成装载"的表,则为全部行数;状态为"等待装载"的表,则为0。 |
| 状态 | 装载状态。 LOADING:正在装载。 COMPLETE:已完成装载。 ERROR:装载错误。 TOLOAD:等待装载。 WAIT CONTINUE:等待续传 LOAD STOP:正常停止装载 UNEXPECTED HALT:故障停止装载 |
| 开始时间 | 表装载开始的时间。 |
| 耗时 | 装载已用时间。状态为"装载错误"或"等待装载"时为0。 |
| 分组数 | 分组装载划分的组数。 |
注:如查看结果为空,则表示没有装载表或已删除装载历史记录。
17、查看指定表总体装载信息
(1)功能
查看指定CPT模块中,指定表的总体装载信息,如已装载行数、状态、开始时间、耗时等。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME>] LOAD TABLE [<PDBNAME>.]<SCHNAME>.<TABNAME>
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| [<PDBNAME>.]<SCHNAME>.<TABNAME> | 容器名.模式名.表名,容器名仅适用于容器数据库。容器名、模式名和表名都支持模糊查询,具体如下: *:所有容器、模式或表。 A*:前缀为A的所有容器、模式或表。 *B:后缀为B的所有容器、模式或表。 A*B:前缀为A以及后缀为B的所有容器、模式或表。 |
(5)示例
查看CPT模块中,模式名为"CZG"、表名任意的装载表的具体信息。
sql
CSL> show cpt_oracle load table CZG.*
CSL[INFO]: [INPUT CMD: show cpt_oracle load table CZG.*]
+---------------------------------------------------------------------------+
| 【表状态】 |
+---------------------------------------------------------------------------+
| 序号 | 模式名 | 表名 | 已装载行数 | 状态 | 开始时间 | 耗时 |
+------+--------+------+------------+----------+---------------------+------+
| 4 | CZG | SUN | 5 | COMPLETE | 2026-01-06 10:40:18 | 3 s |
+------+--------+------+------------+----------+---------------------+------+
命令执行成功
结果说明
| 参数 | 说明 |
|---|---|
| 序号 | 从装载线程启动开始,第几个装载命令产生的装载表。 |
| 模式名 | 装载表所属的模式名。 |
| 表名 | 装载表的表名。 |
| 已装载行数 | 已完成装载的行数。状态为"已完成装载"的表,则为全部行数;状态为"等待装载"的表,则为0。 |
| 状态 | 装载状态。 LOADING:正在装载 COMPLETE:已完成装载 ERROR:装载错误 TOLOAD:等待装载 WAIT CONTINUE:等待续传 LOAD STOP:正常停止装载 UNEXPECTED HALT:故障停止装载 |
| 开始时间 | 表装载开始的时间。 |
| 耗时 | 装载已用时间。状态为"装载错误"或"等待装载"时为0。 |
注:如查看结果为空,则表示没有此装载表或装载已全部完成。
18、查看指定表分组装载信息
(1)功能
查看指定CPT模块中,指定装载表或指定装载序号的表的分组装载的具体信息,如组号、起始/结束ROWID、状态、开始/结束时间等。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME>] LOAD GROUP [<NUMBER>] [<PDBNAME>.]<SCHNAME>.<TABNAME>
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| NUMBER | 指定装载序号,必须为数字。 |
| [<PDBNAME>.]<SCHNAME>.<TABNAME> | 容器名.模式名.表名,容器名仅适用于容器数据库。容器名、模式名和表名都支持模糊查询,具体如下: *:所有容器、模式或表。 A*:前缀为A的所有容器、模式或表。 *B:后缀为B的所有容器、模式或表。 A*B:前缀为A以及后缀为B的所有容器、模式或表。 |
(5)示例
查看CPT模块中,模式名为"CZG"、表名为"SUN"的表分组装载的具体信息。
sql
CSL> show cpt_oracle load group CZG.SUN
CSL[INFO]: [INPUT CMD: show cpt_oracle load group CZG.SUN]
+------------------------------------------------------------------------------------------------------------+
| 【表状态】 |
+------------------------------------------------------------------------------------------------------------+
| 序号 | 模式名 | 表名 | 组号 | 起始ROWID | 结束ROWID | 状态 | 开始时间 | 结束时间 |
+------+--------+------+------+-----------+-----------+----------+---------------------+---------------------+
| 4 | CZG | SUN | 1 | | | COMPLETE | 2026-01-06 10:40:20 | 2026-01-06 10:40:20 |
+------+--------+------+------+-----------+-----------+----------+---------------------+---------------------+
命令执行成功
结果说明
| 参数 | 说明 |
|---|---|
| 序号 | 从装载线程启动开始,第几个装载命令产生的装载表的分组。 |
| 模式名 | 装载表所属的模式名。 |
| 表名 | 装载表的表名。 |
| 组号 | 分组装载时的分组号。 |
| 起始ROWID | 此分组的起始ROWID。 |
| 结束ROWID | 此分组的结束ROWID。 |
| 状态 | 装载状态。 LOADING:正在装载 COMPLETE:已完成装载 ERROR:装载错误 TOLOAD:等待装载 WAIT CONTINUE:等待续传 LOAD STOP:正常停止装载 UNEXPECTED HALT:故障停止装载 |
| 开始时间 | 此分组开始装载的时间。 |
| 结束时间 | 此分组结束装载的时间。 |
注:如查看结果为空,则表示没有此装载表或已删除装载历史记录。
19、查看所有表最后一次总体装载信息
(1)功能
查看指定CPT模块各装载状态表最后一次装载的具体信息, 如已装载行数、状态、耗时、发送进度、速度、分组数等。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME>] LOAD TABLE LAST
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
查看CPT模块各装载状态表最后一次装载的具体信息。
sql
CSL> show cpt_oracle load table last
CSL[INFO]: [INPUT CMD: show cpt_oracle load table last]
+---------------------------------------------------------------------------------------------------------------------------------+
| 【全部装载表】 |
+---------------------------------------------------------------------------------------------------------------------------------+
| 模式名 | 表名 | 已装载行数 | 状态 | 开始时间 | 耗时 | 发送进度 | 速度 | 分组数 | 装载掩码 | 仅迁移 |
+--------+------+------------+----------+---------------------+------+----------+---------+--------+---------------------+--------+
| CZG | SUN | 5 | COMPLETE | 2026-01-06 10:40:18 | 3 s | 100 % | 1 row/s | 1 | |INSERT|TABLE|GROUP | 0 |
+--------+------+------------+----------+---------------------+------+----------+---------+--------+---------------------+--------+
命令执行成功
结果说明
| 参数 | 说明 |
|---|---|
| 模式名 | 装载表所属的模式名。 |
| 表名 | 装载表的表名。 |
| 已装载行数 | 已完成装载的行数。状态为"已完成装载"的表,则为全部行数;状态为"等待装载"的表,则为0。 |
| 状态 | 装载状态。 LOADING:正在装载。 COMPLETE:已完成装载。 ERROR:装载错误。 TOLOAD:等待装载。 WAIT CONTINUE:等待续传 LOAD STOP:正常停止装载 UNEXPECTED HALT:故障停止装载 TABLE_ERROR:字典装载错误(该状态属于错误状态的细分,表示这个表字典装载没有成功) |
| 开始时间 | 表装载开始的时间。 |
| 耗时 | 装载已用时间。状态为"装载错误"或"等待装载"时为0。 |
| 发送进度 | 装载表的发送进度。 |
| 速度 | 每秒钟装载的行数。 |
| 分组数 | 分组装载时,显示分组的数量。不是分组装载则为0。 |
| 装载掩码 | 装载表使用的装载掩码。 |
注:如查看结果为空,则表示没有装载表或已删除装载历史记录。
20、查看指定表最后一次分组装载信息
(1)功能
查看指定CPT模块中,指定表及分组状态的最后一次分组装载的具体信息,如起始/结束ROWID、状态、已装载行数和总行数等。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME>] LOAD GROUP LAST [<PDBNAME>.]<SCHNAME>.<TABNAME> [STATE]
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| [<PDBNAME>.]<SCHNAME>.<TABNAME> | 容器名.模式名.表名,容器名仅适用于容器数据库。容器名、模式名和表名都支持模糊查询,具体如下: *:所有容器、模式或表。 A*:前缀为A的所有容器、模式或表。 *B:后缀为B的所有容器、模式或表。 A*B:前缀为A以及后缀为B的所有容器、模式或表。 |
| STATE | 分组的装载状态。具体如下: LOADING:正在装载。 COMPLETE:已完成装载。 ERROR:装载错误。 |
(5)示例
查看CPT模块中,模式名为"CZG"、表名为"SUN"的表最后一次分组装载的具体信息。
sql
CSL> show cpt_oracle load group last czg.sun
CSL[INFO]: [INPUT CMD: show cpt_oracle load group last czg.sun]
+---------------------------------------------------------------------------------------------------------------------------+
| 【表状态】 |
+---------------------------------------------------------------------------------------------------------------------------+
| 模式名 | 表名 | 组号 | 起始ROWID | 结束ROWID | 状态 | 已装载行数 | 总行数 | 开始时间 | 结束时间 |
+--------+------+------+-----------+-----------+----------+------------+--------+---------------------+---------------------+
| CZG | SUN | 1 | | | COMPLETE | 5 | 5 | 2026-01-06 10:40:20 | 2026-01-06 10:40:20 |
+--------+------+------+-----------+-----------+----------+------------+--------+---------------------+---------------------+
命令执行成功
结果说明
| 参数 | 说明 |
|---|---|
| 模式名 | 装载表所属的模式名。 |
| 表名 | 装载表的表名。 |
| 组号 | 分组装载时的分组号。 |
| 起始ROWID | 该分组的起始ROWID。 |
| 结束ROWID | 该分组的结束ROWID。 |
| 状态 | 装载状态。 LOADING:正在装载。 COMPLETE:已完成装载。 ERROR:装载错误。 |
| 已装载行数 | 已完成装载的行数。状态为"已完成装载"的表,则为全部行数;状态为"等待装载"的表,则为0。 |
| 总行数 | 该分组的总行数。 |
| 开始时间 | 该分组开始装载的时间。 |
| 结束时间 | 该分组结束装载的时间。 |
注:如查看结果为空,则表示没有此装载表或已删除装载历史记录。
21、查看全部装载的对象信息
(1)功能
查看指定CPT模块各装载状态(除表外)对象的具体信息,如模式名、对象名、状态、开始时间、结束时间和对象类型等。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME>] LOAD OBJ ALL
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
查看CPT模块各装载状态(除表外)对象的具体信息。
sql
show cpt_oracle load obj all
结果说明
| 参数 | 说明 |
|---|---|
| 序号 | 从装载线程启动开始,第几个装载命令产生的装载对象。 |
| 模式名 | 装载对象所属的模式名。 |
| 对象名 | 装载对象的对象名。 |
| 状态 | 装载状态。 LOADING:正在装载。 COMPLETE:已完成装载。 ERROR:装载错误。 TOLOAD:等待装载。 UNEXPECTED HALT:故障停止装载。 |
| 开始时间 | 对象装载开始的时间。没有记录时为"null"。 |
| 结束时间 | 对象装载结束的时间。没有记录时为"null"。 |
| 对象类型 | 装载对象的类型。 |
注:如查看结果为空,则表示没有装载对象或已删除装载历史记录。
22、查看所有对象最后一次总体装载信息
(1)功能
查看指定CPT模块各装载状态(除表外)对象的最后一次装载的具体信息,如模式名、对象名、状态、开始时间、结束时间和对象类型。
(2)注意
无
(3)格式
sql
SHOW [<CPT_NAME>] LOAD OBJ LAST
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
查看CPT模块各装载状态(除表外)对象的最后一次装载的具体信息。
sql
show cpt_oracle load obj last
结果说明
| 参数 | 说明 |
|---|---|
| 模式名 | 装载对象所属的模式名。 |
| 对象名 | 装载对象的对象名。 |
| 状态 | 装载状态。 LOADING:正在装载。 COMPLETE:已完成装载。 ERROR:装载错误。 TOLOAD:等待装载。 UNEXPECTED HALT:故障停止装载。 |
| 开始时间 | 对象装载开始的时间。没有记录时为"null"。 |
| 结束时间 | 对象装载结束的时间。没有记录时为"null"。 |
| 对象类型 | 装载对象的类型。 |
注:如查看结果为空,则表示没有装载对象或已删除装载历史记录。
23、查看指定类型装载的对象信息
(1)功能
查看指定CPT模块各装载状态指定类型的(除表外)对象的具体信息,如模式名、对象名、状态、开始时间和结束时间等
(2)注意
(3)格式
sql
SHOW [<CPT_NAME>] LOAD OBJ <OBJ_TYPE>
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
| OBJ_TYPE | 对象的类型。 |
(5)示例
查看CPT模块各装载状态序列对象的具体信息。
sql
show cpt_dm8 load obj sequence
结果说明
| 参数 | 说明 |
|---|---|
| 序号 | 从装载线程启动开始,第几个装载命令产生的装载对象。 |
| 模式名 | 装载对象所属的模式名。 |
| 对象名 | 装载对象的对象名。 |
| 状态 | 装载状态。 LOADING:正在装载。 COMPLETE:已完成装载。 ERROR:装载错误。 TOLOAD:等待装载。 UNEXPECTED HALT:故障停止装载。 |
| 开始时间 | 对象装载开始的时间。没有记录时为"null"。 |
| 结束时间 | 对象装载结束的时间。没有记录时为"null"。 |
注:如查看结果为空,则表示没有装载对象或已删除装载历史记录。
24、查看装载的字典历史信息
(1)功能
查看指定CPT模块各装载字典历史的具体信息,如模式名、表名、表ID、时间和状态等。
(2)注意
(3)格式
sql
SHOW [<CPT_NAME>] LOAD DICT ALL
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
查看CPT模块各装载字典的历史信息。
sql
CSL> show cpt_oracle load dict all
CSL[INFO]: [INPUT CMD: show cpt_oracle load dict all]
+---------------------------------------------------------------+
| 【全部装载字典】 |
+---------------------------------------------------------------+
| 序号 | 模式名 | 表名 | 表ID | 状态 | 时间 |
+------+--------+------+-------+----------+---------------------+
| 4 | CZG | SUN | 73746 | COMPLETE | 2026-01-06 10:40:19 |
+------+--------+------+-------+----------+---------------------+
命令执行成功
结果说明
| 参数 | 说明 |
|---|---|
| 序号 | 从装载线程启动开始,第几个装载命令产生的装载表。 |
| 模式名 | 装载字典所属的模式名。 |
| 表名 | 装载字典的表名。 |
| 表ID | 装载表的ID。 |
| 状态 | * COMPLETE:已完成装载。 * ERROR:装载错误。 |
| 时间 | 字典装载开始的时间。 |
注:如查看结果为空,则表示没有装载字典或已删除装载历史记录。
25、查看装载的字典最新信息
(1)功能
查看指定CPT模块各装载字典最新的具体信息,如模式名、表名、表ID、时间和状态。
(2)注意
(3)格式
sql
SHOW [<CPT_NAME>] LOAD DICT LAST
(4)参数说明
| 参数 | 说明 |
|---|---|
| CPT_NAME | CPT模块的名称,对应配置文件中CPT模块的"name"参数。 |
(5)示例
查看CPT模块各装载字典的最新信息。
sql
CSL> show cpt_oracle load dict last
CSL[INFO]: [INPUT CMD: show cpt_oracle load dict last]
+--------------------------------------------------------+
| 【全部装载字典】 |
+--------------------------------------------------------+
| 模式名 | 表名 | 表ID | 状态 | 时间 |
+--------+------+-------+----------+---------------------+
| CZG | SUN | 73746 | COMPLETE | 2026-01-06 10:40:19 |
+--------+------+-------+----------+---------------------+
命令执行成功
结果说明
| 参数 | 说明 |
|---|---|
| 模式名 | 装载字典所属的模式名。 |
| 表名 | 装载字典的表名。 |
| 表ID | 装载表的ID。 |
| 状态 | * COMPLETE:已完成装载。 * ERROR:装载错误。 |
| 时间 | 字典装载开始的时间。 |
注:如查看结果为空,则表示没有装载字典或已删除装载历史记录。