1.前言
当大家使用DMHS进行数据同步之前,我们需要确保源端和目的端的同步表数据一致。通常我们可以通过DMHS的初始装载功能来把源端数据库装载到源端中,但是在生产环境中,有时候会发现目的端已经有了部分数据。此时为了确保数据不丢失,我们需要对两边数据库的数据做一致性比较,这里我们就可以用到veri工具。本文就将给大家介绍如何配置以及使用DMHS中带的veri工具。
2. 测试环境
对比环境为一台windows dm7服务器,和一台linux dm7服务器,这里测试是无dmhs环境静态对比,所以没有源端目的区别。
3. 配置代理agent
代理agent.xml,放在agent程序同一目录,默认端口是5347,其他为数据库相关信息。这里测试环境源端目的端都是一样。以下为参考配置:
<?xmlversion="1.0" encoding="utf-8"?>
<agent>
<port>5347</port>
<lang>ch</lang>
<max_session>100</max_session>
<database>
<type>DM7</type>
<server>127.0.0.1</server>
<uid>SYSDBA</uid>
<psw>SYSDBA</psw>
</database>
</agent>
4. 配置对比工具veri
veri工具在部署DMHS后就已经存在DMHS的安装目录下,如没有配置DMHS,可以使用DMHS安装包进行安装。进程 dmhs_veri 运行的机器,需要配置odbc环境,可以选择源端或目的端的任意一台,也可以选择第三台服务器,只要保证通过odbc连通数据库。
1) windows上直接配置odbc数据源,DM1,DM2;
2) linux上配置obbc,可以参考《如何使用ODBC的方式连接DM7数据库》
3) veri.xml放在与veri程序同一目录,主要为两个数据库odbc连接信息,如果是dmhs环境还需要配置dmhs参数。参考配置如下:
<?xmlversion="1.0" encoding="utf-8"?>
<veri>
<lang>ch</lang><!--language just at en or ch -->
<max_thr>40</max_thr>
<max_obj_thr>40</max_obj_thr>
<src>
<agent_server>172.16.20.107</agent_server>
<port>5347</port>
<db_type>DM7</db_type>
<odbc_str>
<dsn>DM1</dsn>
<uid>SYSDBA</uid>
<pwd>SYSDBA</pwd>
</odbc_str>
</src>
<dest>
<agent_server>172.16.20.94</agent_server>
<port>5347</port>
<db_type>DM7</db_type>
<odbc_str>
<dsn>DM2</dsn>
<uid>SYSDBA</uid>
<pwd>SYSDBA</pwd>
</odbc_str>
</dest>
</veri>
5. 启动服务
1) 启动两台机器的agent服务,dm7数据库环境,直接启动dmhs_veri_agent_dm7程序;
2) 启动veri程序
6.数据对比
6.1 普通对比
这里测试对比一个模式下的表:
dmhs_veri jobname=job1"table=(TEST.*==TEST.*)" mode=NORMAL
作业配置会自动生成xml文件,也可以事先配置xml,执行这个作业:
生产报告有对比结果,如下 :
不一致的表会再生成一个目录,一张表为一个文件,里面会精确写到具体哪一条不一致,
6.2快速对比
dmhs_veri jobname=job2"table=(TEST.*==TEST.*)" mode=fast
快速对比只会对比数据条数,不会对比具体数据: