搭建dmhs veri数据对比

简介:

AGENT:对比工具代理服务,主要用作数据获取,并计算行数据的 MD5,发送给对比模块。
VERI:对比校验进程,主要进行模式下对象对比,数据对比,并且生成对比报告。

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

搭建dmhs veri数据对比_第1张图片

Oracle 到 dm8 的对比为例:

1 tnsnames.ora 的配置:

tnsnames.ora 文件存放在$ORACLE_HOME/network/admin 下


LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.239.134)(PORT = 1521))
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.239.134)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

2 unixODBC 配置(root):

yum -y install  unixODBC 
odbcinst -j #查看配置文件目录

vim /etc/odbcinst.ini

[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DB=DM8
DRIVER = /dm8/bin/libdodbc.so

[Oracle in OraDb11g_home1]
Description = ODBC DRIVER FOR ORACLE
Driver =/home/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1
Threading = 0

vim /etc/odbc.ini

[ORACLE]
Description = ORACLE ODBC DSN
Driver = Oracle in OraDb11g_home1
SERVER = localhost
UID=system
PWD = Tebie123.
Servername = orcl
PORT = 1521

[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236

3 配置环境变量:

vim ~/.bash_profile

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dmhs/bin:$ORACLE_HOME:$ORACLE_BASE:/etc:/dm8/bin

4 dmhs的安装目录的bin目录 配置 veri.xml(在源端):

<?xml version="1.0" encoding="utf-8"?>
<veri>
<lang>en</lang> <!-- language just at en or ch -->
 <max_thr>40</max_thr>

 <!-- <dmhs> <!-- dmhs_server for destionation -->
 <!-- <server_name>192.168.238.134</server_name>
       <port>5345</port>
 <site_id>1</site_id>
 </dmhs> -->  <!-- 这个是动态对比时,需要添加的内容,添加的是dmhs节点信息 -->

 <src>  <!-- 源端agent的配置 -->
  <agent_server>192.168.239.134</agent_server>
  <port>5347</port>  <!-- 这是agent的端口 -->
  <db_type>ORACLE11g</db_type>
  <odbc_str>
   <!-- <dsn>ORACLE</dsn> -->
   <db_server>192.168.239.134:/orcl</db_server>
   <db_user>system</db_user>
   <db_pwd>Tebie123.</db_pwd>
  </odbc_str>
 </src>
 <dest>  <!-- 目的端agent的配置 -->
  <agent_server>192.168.239.3</agent_server>
  <port>5347</port>  <!-- 这是agent的端口 -->
  <db_type>DM8</db_type>
  <odbc_str>
   <!-- <dsn>DM8</dsn> -->
   <db_server>192.168.239.3</db_server>
   <db_user>SYSDBA</db_user>
   <db_pwd>SYSDBA</db_pwd>
   <db_port>5236</db_port>
  </odbc_str>
 </dest>
</veri>

5 源端 AGENT 配置 agent.xml

<?xml version="1.0" encoding="utf-8"?>
<agent>
<port>5347</port>  <!-- 这是agent的端口 -->
 <lang>en</lang>
 <max_session>100</max_session>

 <!-- <mode>0</mode> -->  <!-- 这是动态对比时,需要添加mode控制参数。0:动态对比锁表模式;1:动态对比闪回查询模式。仅仅在Oracle中有效。 -->

 <database>
  <type>Oracle11g</type>
  <server>orcl</server>
  <uid>system</uid>
  <psw>Tebie123.</psw>
  <!-- <port></port> 默认端口时可以不写数据库端口,不是默认时写 -->
 </database>
</agent>

6.目的端 AGENT 配置 agent.xml

<agent>
 <port>5347</port>  <!-- 这是agent的端口 -->
 <lang>en</lang>
 <max_session>100</max_session>

 <!-- <mode>0</mode> -->  <!-- 这是动态对比时,需要添加mode控制参数。0:动态对比锁表模式;1:动态对比闪回查询模式。仅仅在Oracle中有效。 -->

 <database>
  <type>DM8</type>
  <server>192.168.239.3</server>
  <uid>SYSDBA</uid>
  <psw>SYSDBA</psw>
  <port>5236</port>  <!-- 此处port是dm8的监听端口 -->
 </database>
</agent>

7.启动AGENT 服务器

7.1源端:

 ./dmhs_veri_agent_ora agent.xml

在这里插入图片描述

7.2 目的端:

./dmhs_veri_agent_dm8 agent.xml

在这里插入图片描述

启动veri,进行对比:

./dmhs_veri  "TABLE=(SYSTEM.T2==SYSTEM.T2)" mode=normal

搭建dmhs veri数据对比_第2张图片

#普通对比
./dmhs_veri "TABLE=(SYSTEM.*==SYSTEM.*)" mode=normal
 
#快速对比
./dmhs_veri "TABLE=(SYSTEM.*==SYSTEM.*)" mode=fast
 
#动态对比
./dmhs_veri "TABLE=(SYSTEM.*==SYSTEM.*)" mode=dyn
 
./dmhs_veri “table=((SYSTEM.T1,SYSTEM.T2)==(SYSDBA.T1,SYSDBA.T2))MODE=DYN

8 查看对比报告:

搭建dmhs veri数据对比_第3张图片
社区地址:https://eco.dameng.com

你可能感兴趣的:(oracle,数据库)