工具结构图:
术语解释如下:
1) AGENT
对比工具代理服务,主要用作数据获取,并计算行数据的 MD5,发送给对比模块。
2) VERI
对比校验进程,主要进行模式下对象对比,数据对比,并且生成对比报告。
3) DMHS
达梦数据实时同步工具
veri软件可以安装在比对源端或比对的目的端或单独一台机器,dmhs自带对比工具,装好dmhs后在bin目录下就可找到,名为dmhs_veri该工具需要使用unixODBC,2.3.0 及以上的版本,用于oracle等数据库的连接使用。若为dm,则不用。
下面展示我的源端是Oracle,目的端是DM8,我在目的端安装了一套Oracle+ODBC
源端Oracle11g 192.168.1.244
目的端DM8 192.168.1.225
1.安装ODBC
#tar -xvf unixODBC-2.3.11.tar.gz
#cd unixODBC-2.3.11
# ./configure
# make
# make install
[root@dbtest unixODBC-2.3.11]# odbcinst -j
unixODBC 2.3.11
DRIVERS............: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
# cat /usr/local/etc/odbcinst.ini
[Oracle ODBC DRIVER]
Description = Oracle ODBC driver for Oracle 11g
Driver = /dm8/app/oracle/product/11.1.0/db_1/lib/libsqora.so.11.1
Threading = 0
[DM8 ODBC DRIVER]
Description = ODBC DIRVER FOR DM8
DRIVER = /dm8/dbms/bin/libdodbc.so
cat /usr/local/etc/odbc.ini
[ORACLE]
Description = ORACLE ODBC DSN
Driver = Oracle ODBC DRIVER
SERVER = 192.168.1.244
UserID = dmhs
Password = dmhs
Servername = ORCL
[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = 192.168.1.225
UID = dmhs
PWD = DMHS123456
TCP_PORT = 5236
配置tns
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.244)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
测试连接:
DM8
ORACLE
源端创建agent.xml文件在dmhs的bin下
5347
ch
100
Oracle11g
orcl
dmhs
dmhs
目的端创建agent.xml文件在dmhs的bin目录下
5347
ch
100
PG_UTF8
DM8
192.168.1.225
dmhs
DMHS123456
配置veri.xml等样在bin目录下:
ch
40
PG_UTF8
192.168.1.244
5347
ORACLE11g
dsn=oracle
192.168.1.244:1521/orcl
dmhs
dmhs
192.168.1.225
5347
DM8
dsn=dm8
192.168.1.225
dmhs
DMHS123456
在dmhs的bin目录下
源端:./dmhs_veri_agent_ora agent.xml
目的端:./dmhs_veri_agent_dm8 agent.xml
启动对比进程进行对比
将 veri.xml 放置在 dmhs_veri 所在文件中,并检查 unixODBC 和 oracle 库路径是否在 LD_LIBRARY_PATH 中。
进行全模式静态对比:
在dmhs的bin目录下
#普通对比
./dmhs_veri "TABLE=(DMHS.*==DMHS.*)" mode=normal
报告结果:
遇到报错:
isql连接Oracle如下:
解决ldd查看缺少或者有多个动态连接库版本,因为我的环境是11g,19c库文件较多,造成识别混乱,删除19C的关联库文件或者取消环境变量即可。
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台