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为例
使用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 一致
使用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;
#####源端,在dmhs的bin目录下,创建配置文件#####
vim agent.xml
5347
en
100
Oracle11g
orcl
DMHS
DMHS123456
#####目的端,在dmhs的bin目录下,创建配置文件#####
vim agent.xml
5347
en
100
DM8
192.168.238.135
SYSDBA
SYSDBA
5237
在dmhs的bin目录下,创建配置文件
可将veri放在源端,同unixODBC一起。或者veri、unixODBC都放到第三台机器上。
vim veri.xml
en
40
192.168.238.134
5347
ORACLE11g
192.168.238.134:/orcl
DMHS
DMHS123456
192.168.238.135
5347
DM8
192.168.238.135
SYSDBA
SYSDBA
5237
在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