DMHS_VERI数据比对工具 DMHS_VERI数据比对工具一、概述DMVERI主要实现功能在进行数据库数据的实时同步的时候需要了解同步的结果是否正确因此需要有数据对比工具进行数据的对比并生成详细的对比报告提供用户参考。达梦数据比对工具VERI产品随同“达梦数据实时同步软件DMHS”版本发布在发布的版本中名称带“_veri”字样的DMHS产品中都带有“达梦数据比对工具VERI”。但是一个独立的“达梦数据实时同步软件DMHS”版本一般情况下只针对一个数据库类型即该版本中只包含一个数据库类型的“对比代理组件AGENT”但“对比校验组件VERI”是通用的。支持比对数据类型二、DMVERI架构系统主要分为对比代理服务和对比校验进程。对比代理服务分源对比代理服务和目的对比代理服务。对比代理服务的作用是从数据服务器取得数据记录并取得数据记录的MD5值发送到对比校验进程进行校验。对比校验进程对数据进行比对后直接访问源数据库服务器和目的数据库服务器生成详细的对比报告。AGENT对比工具代理服务主要用作数据获取并计算行数据的MD5发送给对比模块。2)VERI对比校验进程主要进行模式下对象对比数据对比并且生成对比报告。源端AGENT组件、目的端AGENT组件、VERI组件可以部署在同一台机器上也可以分别部署在不同的机器AGENT组件之间不进行通信AGENT组件与VERI组件通过TCP/IP协议通信。此外在结合DMHS实时同步系统时源端和目的端AGENT组件还会与各自对应的DMHS源端与目的端进行通信。三、搭建步骤3.1前期准备必须提前搭建达梦数据库以及dmhs软件3.2创建比对用户并授权(源端、目的端都执行)可以创建专用的对比用户dmhs也可以直接使用sysdbacreateuserDMHS identifiedby!QAZ2wsxlimitFAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LOCK_TIME UNLIMITED PASSWORD_GRACE_TIME UNLIMITED;grantPUBLIC,RESOURCE,SELECT_CATALOG_ROLE,SOI,SVI,VTItoDMHS;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 version1.0encodingutf-8?agentport5347/port!-- 这是agent的端口 --langen/langmax_session100/max_sessiondatabasetypeDM8/typeserver172.16.1.41/serveruidSYSDBA/uidpswPassw0rd1234/pswport5236/portchar_codePG_UTF8/char_code/database/agent3.4目的端配置agent.xml文件vim/home/dmdba/dm/dmhs/bin/agent.xml?xml version1.0encodingutf-8?agentport5347/port!-- 这是agent的端口 --langen/langmax_session100/max_sessiondatabasetypeDM8/typeserver172.16.1.42/serveruidSYSDBA/uidpswPassw0rd1234/pswport5236/portchar_codePG_UTF8/char_code/database/agent3.5源端配置verivim/home/dmdba/dm/dmhs/bin/veri.xml?xml version1.0encodingutf-8?verilangen/langmax_thr10/max_thrchar_codePG_UTF8/char_codesrcagent_server172.16.1.41/agent_serverport5347/portdb_typeDM8/db_typeodbc_strdb_server172.16.1.41/db_serverdb_userSYSDBA/db_userdb_pwdPassw0rd1234/db_pwddb_port5236/db_portchar_codePG_UTF8/char_code/odbc_str/srcdestagent_server172.16.1.42/agent_serverport5347/portdb_typeDM8/db_typeodbc_strdb_server172.16.1.42/db_serverdb_userSYSDBA/db_userdb_pwdPassw0rd1234/db_pwddb_port5236/db_portchar_codePG_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_veriTABLE(TEST.*TEST.*)modenormal查看报告六、故障排查6.1缺少lib库文件如果报错可以创建连接find/-namelibodbc.so*ln-s/usr/lib64/libodbc.so.2/usr/lib64/libodbc.so.16.2无法打开odbc驱动odbcinst-j vi/etc/odbcinst.ini 可以添加一下内容[DM8 ODBC DRIVER]DescriptionODBC DRIVERFORDM8 Driver/home/dmdba/dm/dmdbms/bin/libdodbc.so6.3权限问题su-chown dmdba:dinstall/home/dmdba/dm-R6.4 缺少libdodbc.so文件cat/etc/odbcinst.ini 检查Driver/home/dmdba/dm/dmdbms/bin/libdodbc.so的路径是否正确https://eco.dameng.com