DMHS_VERI数据比对工具
2026/8/26 19:18:25 网站建设 项目流程

DMHS_VERI数据比对工具

一、概述

DMVERI主要实现功能在进行数据库数据的实时同步的时候,需要了解同步的结果是否
正确,因此需要有数据对比工具进行数据的对比,并生成详细的对比报告,提供用户参考。
达梦数据比对工具VERI产品随同“达梦数据实时同步软件DMHS”版本发布,在发布的
版本中名称带“_veri”字样的DMHS产品中都带有“达梦数据比对工具VERI”。但是,一
个独立的“达梦数据实时同步软件DMHS”版本一般情况下只针对一个数据库类型,即该版
本中只包含一个数据库类型的“对比代理组件AGENT”,但“对比校验组件VERI”是通用的。

支持比对数据类型:

二、DMVERI架构


系统主要分为对比代理服务和对比校验进程。
对比代理服务分源对比代理服务和目的对比代理服务。对比代理服务的作用是从数据服
务器取得数据记录,并取得数据记录的MD5值发送到对比校验进程进行校验。
对比校验进程对数据进行比对后,直接访问源数据库服务器和目的数据库服务器,生成详细的对比报告。

  1. AGENT
    对比工具代理服务,主要用作数据获取,并计算行数据的MD5,发送给对比模块。
    2)VERI
    对比校验进程,主要进行模式下对象对比,数据对比,并且生成对比报告。源端AGENT组件、目的端AGENT组件、VERI组件可以部署在同一台机器上,也可以分别部署在不同的机器,AGENT组件之间不进行通信,AGENT组件与VERI组件通过TCP/IP协议通信。此外,在结合DMHS实时同步系统时,源端和目的端AGENT组件还会与各自对应的DMHS源端与目的端进行通信。

三、搭建步骤

3.1前期准备

必须提前搭建达梦数据库以及dmhs软件

3.2创建比对用户并授权(源端、目的端都执行)

可以创建专用的对比用户dmhs也可以直接使用sysdba

createuserDMHS identifiedby"!QAZ2wsx"limitFAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LOCK_TIME UNLIMITED PASSWORD_GRACE_TIME UNLIMITED;grant"PUBLIC","RESOURCE","SELECT_CATALOG_ROLE","SOI","SVI","VTI"toDMHS;

GRANTSELECTONALL_TABLESTODMHS;GRANTSELECTONDBA_CONS_COLUMNSTODMHS;GRANTSELECTONDBA_TAB_COLUMNSTODMHS;GRANTSELECTONDBA_CONSTRAINTSTODMHS;GRANTCREATESESSIONTOdmhs;GRANTSELECTANYTABLETOdmhs;GRANTCREATETABLETOdmhs;GRANTEXECUTEONDBMS_FLASHBACKTOdmhs;GRANTCREATESESSIONTOdmhs;GRANTSELECTANYTABLETOdmhs;GRANTCREATETABLETOdmhs;GRANTEXECUTEONDBMS_FLASHBACKTOdmhs;GRANTFLASHBACKANYTABLETOdmhs;GRANTVTI,SOI,SVITOdmhs;

3.3源端配置agent.xml文件

vim/home/dmdba/dm/dmhs/bin/agent.xml<?xml version="1.0"encoding="utf-8"?><agent><port>5347</port><!-- 这是agent的端口 --><lang>en</lang><max_session>100</max_session><database><type>DM8</type><server>172.16.1.41</server><uid>SYSDBA</uid><psw>Passw0rd1234</psw><port>5236</port><char_code>PG_UTF8</char_code></database></agent>

3.4目的端配置agent.xml文件

vim/home/dmdba/dm/dmhs/bin/agent.xml<?xml version="1.0"encoding="utf-8"?><agent><port>5347</port><!-- 这是agent的端口 --><lang>en</lang><max_session>100</max_session><database><type>DM8</type><server>172.16.1.42</server><uid>SYSDBA</uid><psw>Passw0rd1234</psw><port>5236</port><char_code>PG_UTF8</char_code></database></agent>

3.5源端配置veri

vim/home/dmdba/dm/dmhs/bin/veri.xml<?xml version="1.0"encoding="utf-8"?><veri><lang>en</lang><max_thr>10</max_thr><char_code>PG_UTF8</char_code><src><agent_server>172.16.1.41</agent_server><port>5347</port><db_type>DM8</db_type><odbc_str><db_server>172.16.1.41</db_server><db_user>SYSDBA</db_user><db_pwd>Passw0rd1234</db_pwd><db_port>5236</db_port><char_code>PG_UTF8</char_code></odbc_str></src><dest><agent_server>172.16.1.42</agent_server><port>5347</port><db_type>DM8</db_type><odbc_str><db_server>172.16.1.42</db_server><db_user>SYSDBA</db_user><db_pwd>Passw0rd1234</db_pwd><db_port>5236</db_port><char_code>PG_UTF8</char_code></odbc_str></dest></veri>

四、启动agent

源端:

cd/home/dmdba/dm/dmhs/bin./dmhs_veri_agent_dm8 agent.xml


目的端:

cd/home/dmdba/dm/dmhs/bin./dmhs_veri_agent_dm8 agent.xml

五、进行比对

在dmhs的bin目录下执行以下命令:

cd/home/dmdba/dm/dmhs/bin./dmhs_veri"TABLE=(TEST.*==TEST.*)"mode=normal


查看报告

六、故障排查

6.1缺少lib库文件

如果报错,可以创建连接

find/-name"libodbc.so*"ln-s/usr/lib64/libodbc.so.2/usr/lib64/libodbc.so.1

6.2无法打开odbc驱动

odbcinst-j, vi/etc/odbcinst.ini 可以添加一下内容:[DM8 ODBC DRIVER]Description=ODBC DRIVERFORDM8 Driver=/home/dmdba/dm/dmdbms/bin/libdodbc.so

6.3权限问题

su-chown dmdba:dinstall/home/dmdba/dm-R

6.4 缺少libdodbc.so文件

cat/etc/odbcinst.ini 检查Driver=/home/dmdba/dm/dmdbms/bin/libdodbc.so的路径是否正确

https://eco.dameng.com

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询