达梦dmhs的数据对比工具veri配置&使用

本文介绍VERI数据对比工具的配置与使用方法,包括unixODBC的安装配置、数据库权限设置、agent及VERI的配置文件编写,并提供启动与对比指令。适用于Oracle到DM8的数据校验场景。

VERI说明

dmhs自带对比工具,装好dmhs后在bin目录下就可找到,名为dmhs_veri
该工具需要使用unixODBC,2.3.0 及以上的版本,用于oracle等数据库的连接使用。若为dm,则不用。

VERI需要一个AGENT,用于数据获取,是对比工具的代理服务。
同dmhs,veri、agetn可以装在第三台机器上。
只有在校验进程 dmhs_veri 运行的机器才需要安装并配置 unixODBC。
dmhs有自己的守护工具,叫dmhs_agent,也有自己的配置文件dmhs_agent.xml,后台启动脚本为DmhsAgentService
veri因为需要获取数据所以也有个agent,不要跟dmhs的搞混。后台启动脚本为AgentDm8Service

本文以源端oracle、目的端dm8为例


 【安装unixODBC】

使用oracle用户,在用户根目录下,添加如下

vim .bash_profile

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:$ORACLE_HOME/lib

source .bash_profile

执行 lsnrctl status,确保 listener.ora 文件中 HOST 参数与当前机器 hostname 一致

【配置unixODBC】

使用root用户

cd /usr/local/etc

##### odbcinst.ini ####
配置driver,threading都写0

vim odbcinst.ini

[Oracle in OraDb11g_home1]
Description = Oracle ODBC driver for Oracle 11g
Driver      = /u01/app/oracle/product/11.2.0/db_1/lib/libsqora.so.11.1
Threading   = 0

#新增配置dm8 ODBC源
[DM8 ODBC DRIVER]
Description = ODBC driver for DM8
Driver = /home/oracle/dm8/bin/libdodbc.so
Threading = 0

#### odbc.ini ####
配置2个DSN

vim odbc.ini

[ORACLE]
Description = ORACLE ODBC DSN
Driver = Oracle in OraDb11g_home1
SERVER = 127.0.0.1
UserID = DMHS
Password = DMHS123456
Servername = ORCL
PORT = 1521
CHARSET=UTF8

#新增配置dm8 ODBC源
[DM8]
Description = DM8 ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = 192.168.238.135
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5237

检查数据库版本和ODBC版本同为32位或64位,否则无法运行成功,ELF 64-bit是64位

file /u01/oracle/lib/libsqora.so.11.1
file /usr/local/bin/odbcinst

【数据库权限】

切换回oracle、dmdba用户
若oracle使用的不是DBA用户,加权限,以TEST为例

grant select on all_tables to TEST;
grant select on dba_cons_columns to TEST;
grant select on dba_tab_columns to TEST;
grant select on dba_constraints to TEST;

--上锁模式
GRANT CREATE SESSION TO TEST;
GRANT SELECT ANY TABLE TO TEST;
GRANT CREATE TABLE TO TEST;
GRANT EXECUTE ON DBMS_FLASHBACK TO TEST;
GRANT LOCK ANY TABLE TO TEST;

--闪回查询(SCN)模式
GRANT CREATE SESSION TO TEST;
GRANT SELECT ANY TABLE TO TEST;
GRANT CREATE TABLE TO TEST;
GRANT CREATE ANY TABLE TO TEST;
GRANT DROP ANY TABLE TO TEST;
GRANT EXECUTE ON DBMS_FLASHBACK TO TEST;
GRANT FLASHBACK ANY TABLE TO TEST;

【写agent配置】

#####源端,在dmhs的bin目录下,创建配置文件#####

vim 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>DMHS</uid>
  <psw>DMHS123456</psw>
  <!-- <port></port> 默认端口时可以不写数据库端口,不是默认时写 -->
 </database>
</agent>


#####目的端,在dmhs的bin目录下,创建配置文件#####

vim 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>DM8</type>
  <server>192.168.238.135</server>
  <uid>SYSDBA</uid>
  <psw>SYSDBA</psw>
  <port>5237</port>  <!-- 此处port是dm8的监听端口 -->
 </database>
</agent>

【配置veri】

在dmhs的bin目录下,创建配置文件
可将veri放在源端,同unixODBC一起。或者veri、unixODBC都放到第三台机器上。

vim 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.238.134</agent_server>
  <port>5347</port>  <!-- 这是agent的端口 -->
  <db_type>ORACLE11g</db_type>
  <odbc_str>
   <!-- <dsn>ORACLE</dsn> -->
   <db_server>192.168.238.134:/orcl</db_server>
   <db_user>DMHS</db_user>
   <db_pwd>DMHS123456</db_pwd>
  </odbc_str>
 </src>
 <dest>  <!-- 目的端agent的配置 -->
  <agent_server>192.168.238.135</agent_server>
  <port>5347</port>  <!-- 这是agent的端口 -->
  <db_type>DM8</db_type>
  <odbc_str>
   <!-- <dsn>DM8</dsn> -->
   <db_server>192.168.238.135</db_server>
   <db_user>SYSDBA</db_user>
   <db_pwd>SYSDBA</db_pwd>
   <db_port>5237</db_port>
  </odbc_str>
 </dest>
</veri>

【启动agent】

在dmhs的bin目录下
源端:./dmhs_veri_agent_ora agent.xml
目的端:./dmhs_veri_agent_dm8 agent.xml


【进行对比】

在dmhs的bin目录下

#普通对比
./dmhs_veri "TABLE=(TEST.*==TEST.*)" mode=normal

#快速对比
./dmhs_veri "TABLE=(TEST.*==TEST.*)" mode=fast

#动态对比
./dmhs_veri "TABLE=(TEST.*==TEST.*)" mode=dyn

./dmhs_veri “table=((TEST.T1,TEST.T2)==(SYSDBA.T1,SYSDBA.T2))” MODE=DYN

【配置后台启动】

配置veri agent的后台启动,源端、目的端都一样,文件不一样而已
在dmhs的bin目录下,service_template
#源端、目的端是哪个数据库,就复制哪个Agent

cp AgentDm8Service ../AgentDm8Service_01
vim AgentDm8Service

DMHS_HOME="dmhs的安装目录,默认:/opt/dmhs"
PROG_DIR="agent的运行脚本目录,默认:/opt/dmhs/bin"
CONF_PATH="agent的配置文件所在目录,默认:/opt/dmhs/bin/agent.xml"

AgentDm8Service对应dmhs_veri_agent_dm8
AgentOraService对应dmhs_veri_agent_ora
DmhsAgentService对应dmhs_agent,这是dmhs的守护工具,注意区分。


社区地址:https://eco.dameng.com

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值