zcbus-8.1-16-20240906.tar.gz 版本兼容达梦DSC(集群)模式
1 源库配置
1.1 修改配置文件
1.1.1 修改dm.ini开启归档和附加日志
RLOG_APPEND_LOGIC = 2
ARCH_INI = 1 #dmarch.ini参数说明
(1)RLOG_APPEND_LOGIC:是否启用在日志中记录逻辑操作的功能,取值范围0、1、2、3
0:不启用;1、2、3启用。
1:如果有主键列,记录UPDATE和DELETE操作时只包含主键列信息,若没有主键列则包含所有列信息;
2:不论是否有主键列,记录UPDATE和DELETE操作时都包含所有列的信息;
3:记录UPDATE时包含更新列的信息以及ROWID,记录DELETE时只有ROWID
(2)ARCH_INI:是否启用归档,0:不启用;1:启用
1.1.2 修改dmarch.ini,设置归档路径
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdbms/data/ARCH #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 10240 #单位 MB,0 表示无限制,范围 1024~4294967294 MB1.1.3 重启数据库
#重启数据库
service DmServiceDMSERVER restart
#检查数据库状态
systemctl status DmAgentService DmAPService DmServiceDMSERVER tomcat | grep Active1.1.4 检查是否开启
select PARA_NAME,PARA_VALUE from V$DM_INI where PARA_NAME in ('RLOG_APPEND_LOGIC','ARCH_INI');
select * from V$DM_ARCH_INI;1.1.5 检查DBMS系统包是否创建
检查是否存在
SELECT SF_CHECK_SYSTEM_PACKAGE('DBMS_LOGMNR');创建DBMS系统包命令
SP_CREATE_SYSTEM_PACKAGES(1,'DBMS_LOGMNR'); ---创建指定DBMS包
1.1.6 检查sp_start_logmnr存储过程是否存在
- 在达梦数据库中遇到 sp_start_logmnr 无法解析(unresolved)的问题,通常与存储过程调用方式、权限、版本支持或存储过程本身是否存在有关
数据库版本不支持:达梦的日志挖掘功能(LogMiner)仅在特定版本(如 DM8 及以上)提供,低版本可能无此存储过程。- 检查存储过程是否存在命令
SELECT * FROM SYSOBJECTS WHERE NAME = 'SP_START_LOGMNR' AND TYPE = 'P'; - 解决方法:
重新执行达梦数据库日志挖掘初始化脚本dmminer.sql(位于达梦安装目录script文件夹下),重建sp_start_logmnr等存储过程(具体操作:以SYSDBA身份登录达梦,执行start /path/to/dmminer.sql;)
- 检查存储过程是否存在命令
1.2 创建用户及赋权
1.2.1 创建用户
CREATE USER ZCBUS IDENTIFIED BY ZCBUS;注意:
密码默认长度不少于 9 位。
1.2.2 用户赋权
GRANT CREATE SESSION TO ZCBUS;
GRANT RESOURCE TO ZCBUS;
GRANT SELECT ANY TABLE TO ZCBUS;
GRANT SELECT ANY DICTIONARY TO ZCBUS;
GRANT SELECT ANY VIEW TO ZCBUS;
GRANT EXECUTE ON DBMS_LOGMNR TO ZCBUS;2 补充说明
2.1 SQL参考
- 用户权限查询
col PRIVILEGE for a30; col GRANTOR for a30; col TABLE_NAME for a30; select PRIVILEGE from dba_sys_privs where grantee='ZCBUS'; select granted_role from dba_role_privs where grantee='ZCBUS'; select PRIVILEGE,GRANTOR,TABLE_NAME from dba_tab_privs where grantee='ZCBUS';
2.2 当节点空闲、无数据生成时,达梦的日志几乎不变化,建议添加以下几个参数,减小延迟
logmnr_scn_back=0
auto_update_table=ZCBUS.ZCBUS_UP_TB
auto_update_interval=10注:
- zcbus-8.1-16-20240907.tar.gz版本支持
- 如果是多节点时,需要配置rac_ip_list,将所有节点配置上,否则不能连接对应节点去操作update,并且只能自己节点分析自己节点的日志
2.1 数据类型支持
| DAMENG字段类型 | 是否支持 | 字段描述 |
|---|---|---|
| CAHR(n) | 是 | |
| VARCHAR(n) | 是 | |
| VARCHAR2(n) | 是 | |
| NUMERIC(p,s) | 是 | |
| DECIMAL(p,s) | 是 | |
| NUMBER(p,s) | 是 | |
| DEC(p,s) | 是 | |
| INTEGER | 是 | |
| INT | 是 | |
| BIGINT | 是 | |
| TINYINT | 是 | |
| BYTE | 是 | |
| SMALLINT | 是 | |
| BINARY | 是 | |
| VARBINARY | 是 | |
| FLOAT(p,s) | 是 | |
| DOUBLE(p,s) | 是 | |
| REAL | 是 | |
| DOUBLE PRECISION(p,s) | 是 | |
| BIT | 是 | |
| DATE | 是 | |
| TIME | 是 | |
| TIMESTAMP | 是 | |
| TEXT | 是 | |
| LONG | 是 | |
| LONGVARCHAR | 是 | |
| LONGVARBINARY | 否 | |
| BLOB | 是 | |
| CLOB | 是 | |
| IMAGE | 是 | |
| BFILE | 否 | |
| ROWID | 是 | |
| BINARY_FLOAT | 是 | |
| BINARY_DOUBLE | 是 |
文档更新时间: 2025-10-26 16:40 作者:操李红