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的守护工具,注意区分。
本文介绍VERI数据对比工具的配置与使用方法,包括unixODBC的安装配置、数据库权限设置、agent及VERI的配置文件编写,并提供启动与对比指令。适用于Oracle到DM8的数据校验场景。
1446

被折叠的 条评论
为什么被折叠?



