当大家使用 DMHS 进行数据同步之前,我们需要确保源端和目的端的同步表数据一致。通常我们可以通过 DMHS 的初始装载功能来把源端数据库装载到源端中,但是在生产环境中,有时候会发现目的端已经有了部分数据。此时为了确保数据不丢失,我们需要对两边数据库的数据做一致性比较,这里我们就可以用到 veri 工具。本文就将给大家介绍如何配置以及使用 DMHS 中带的 veri 工具。
对比环境为一台 windows dm7服务器,和一台 linux dm7 服务器,这里测试是无 dmhs 环境静态对比,所以没有源端目的区别。
代理 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>
veri 工具在部署 DMHS 后就已经存在 DMHS 的安装目录下,如没有配置 DMHS,可以使用 DMHS 安装包进行安装。进程 dmhs_veri 运行的机器,需要配置 odbc 环境,可以选择源端或目的端的任意一台,也可以选择第三台服务器,只要保证通过 odbc 连通数据库。
<?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>
这里测试对比一个模式下的表:
dmhs_veri jobname=job1"table=(TEST.*==TEST.*)" mode=NORMAL
作业配置会自动生成 xml 文件,也可以事先配置 xml,执行这个作业:
生产报告有对比结果,如下:
不一致的表会再生成一个目录,一张表为一个文件,里面会精确写到具体哪一条不一致:
dmhs_veri jobname=job2"table=(TEST.==TEST.)" mode=fast
快速对比只会对比数据条数,不会对比具体数据:
文章
阅读量
获赞