报错1:
out of memory, fail to allocate memory from OS
Segmentation fault
解决办法:放大虚拟机内存2G
报错2:
libcpt_dm8.so不存在
解决办法:dll 检查该包依赖包哪些没找到就补齐哪些,libdmoci.so不存在
报错3:
配置了DDL同步,但是检查到DDL同步辅助表有缺失,请重建,或者配置DDL_MASK=0
缺少DDL触发器,或者存在无效除非器,请重建。
解决办法:在源端数据库中重新执行ddl_sql_dm8.sql脚本(注意创建时需要使用 SYSDBA 用户)
该脚本会在源端库新建9个表和4个触发器,可通过以下sql 检查是否成功
验证是否创建成功(9个表、4个触发器)
select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID
select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';
报错4:
分析模块1连接站点192.168.134.5346失败,3秒后重试
解决办法:配置文件中ip+端口是否正确,网络端口是否通(防火墙是否屏蔽相关端口)
关闭防火墙 systemctl disable firewalld systemctl stop firewalld
报错5:
error in load libodbcinst.so!!: No such file or directory
EXE[INFO]: CONNECT: SERVER=192.168.43.134;DRIVER=DM8 ODBC DRIVER;UID=SYSDBA;PWD=******;TCP_PORT=5236;
解决办法:
安装unixodbc驱动(root用户) ,yum -y install Unixodbc
报错6:
分析模块连接站点失败
无法连接到目的端****的管理模块
解决办法:从其他正常环境打包bin文件,或者单独copy dmoci驱动相关动态文件文件夹(包含头文件和动态库)
报错7
2021-08-09 05:03:33 CPT[ERROR]: Database Magic is not consistent(782887040:1102947132), maybe DB is restored or changed, please check connected DB or reload dictionary using CLEAR mask and delete checked file: dmhs_1_0.ini
解决办法:
删除bin目录下的dmhs_1_0.ini【如果配置文件中数据库实例信息变更,需要删除dmhs_1_0.ini后重启dmhs服务,生产环境重命名不要删除】
删除dmhs_cpt.tmp 等效 dmhs_console输入 stop cpt
报错8:
2021-08-09 03:32:51 CPT[INFO]: DM8归档目录: ../1ARCH 归档文件大小:512 M
2021-08-09 03:32:51 CPT[ERROR]: 归档目录(../1ARCH)不存在
解决办法:
因为源端数据库的归档日志配置文件中归档路径用的相对路径,dmhs无法识别,将源端归档路径改成绝对路径可解决
报错9:
2021-08-09 03:43:02 MGR[INFO]: 成功获取站点192.168.43.133:25345上的最小LSN: 32907...
2021-08-09 03:43:02 MGR[WARN]: 起始LSN被替换为:41653
2021-08-09 03:43:02 SND[INFO]: 正在加载过滤信息:
2021-08-09 03:43:02 SND[INFO]: ENABLE: SYSDBA.*
2021-08-09 03:43:02 SND[INFO]: 正在加载列映射信息:
2021-08-09 03:43:02 SND[INFO]: 分析模块192.168.43.133:25346的日志发送线程已经被创建
2021-08-09 03:43:02 SND[INFO]: 分析模块1正在连接站点192.168.43.133:25346...
2021-08-09 03:43:02 SND[INFO]: 分析模块1正在重置站点192.168.43.133:25346的执行模块...
2021-08-09 03:43:02 CPT[INFO]: DM8 CPT is ready.
2021-08-09 03:43:02 MGR[INFO]: 日志分析启动成功
2021-08-09 03:43:02 SND[INFO]: 分析模块1正在发送映射规则...
2021-08-09 03:43:02 SND[INFO]: SYSDBA.*==SYSDBA.*...
2021-08-09 03:43:02 CPT[WARN]: pkg hdr check crc fail: 0 10793, logVersion: 2
2021-08-09 03:43:02 SND[INFO]: 分析模块1正在获取站点192.168.43.133:25346上的最小LSN...
2021-08-09 03:43:02 SND[INFO]: 分析模块1成功获取LSN:41653 LFS:0
2021-08-09 03:43:04 CPT[WARN]: 起始LSN值:41653 未能定位有效日志文件, 重试。
解决办法:
源端日志lsn实际比目的端传过来的lsn还小,源端做一些事务,让其lsn大于目的端传过来的lsn后,源端再进行事务才会被解析到后传入目的端。
或者 修改源端dmhs.conf表中参数cpt_start_lsn=32907(报错中从目标端获取的lsn)
或者【直接修改目的端DMHS_CHECKPOINT_TABLE表的SEQID字段小于源端lsn应该也可以继续待验证】
通过以下sql核实源端和目的端事务号偏差
源端:select * from v$rlog;
目的端:select * from SYSDBA.DMHS_CHECKPOINT_TABLE ;
验证目的端是否解析数据入库(CHECKPOINT 证明已解析新日志入库):
2021-08-09 09:01:57 MGR[INFO]: site 1 min LSN is: 41754
2021-08-09 09:02:45 EXE[INFO]: CHECKPOINT SITEID:1 SEQID: 41776, LFS : 0 EPOCH: 1080162165(2021-08-09 21:02:45)
达梦技术社区:https://eco.dameng.com