veri介绍
在进行数据库数据的实时同步的时候,需要了解同步的结果是否正确,因此需要有数据对比工具进行数据的对比,并生成详细的对比报告,提供用户参考。对比工具仅仅生成报告,对数据不一致的情况不做任何操作,仅仅提示用户发生了数据不一致情况,并且告诉用户那些数据不一致。目前对比工具支持对比的数据库有:Oracle、DM6、DM7、DM8、KingBase、MySQL、DB2、PostgreSQL
VERI 产品构成:系统主要分为对比代理服务和对比校验进程。
对比代理服务分源对比代理服务和目的对比代理服务。对比代理服务的作用是从数据服
务器取得数据记录,并取得数据记录的 MD5 值发送到对比校验进程进行校验。对比校验进程对数据进行比对后,直接访问源数据库服务器和目的数据库服务器,生成详细的对比报告。
系统结构如下图所示。
术语解释如下:
1) AGENT
对比工具代理服务,主要用作数据获取,并计算行数据的 MD5,发送给对比模块。
2) VERI
对比校验进程,主要进行模式下对象对比,数据对比,并且生成对比报告。
3) DMHS
达梦数据实时同步工具
本产品包含以下功能:
1) 动态对比
对比工具与 DMHS 协同工作,保证源表与目的表都是执行完相同事务后对查询结果集进行对比。
2) 静态对比
对比工具单独对比,没有 DMHS 的协同。
3) 键值对比
按照主键或者唯一索引值排序进行对比。
4) 非键值对比
按照行数据 MD5 值排序后进行对比。
5) 二次确认对比
在对比过程中,由于 DMHS 同步的时间差,第一次对比会存在不一致,因此需要针对第一次对比的结果,再次进行第二次确认对比,确定 DMHS 同步是否存在延迟或失败。
6) 快速对比
仅仅对表进行记录行数的对比。
7) 锁表动态对比
动态对比的一种,通过锁表控制源表与 DMHS 同步数据一致。
8) 闪回查询动态对比
动态对比的一种,通过闪回查询直接取得某 SCN 的结果集,仅仅适用 Oracle 库中不包含 LONG, LONG RAW 类型的表。
一、安装veri前环境准备
数据比对环境
数据库类型 |
IP |
操作系统 |
DB_PORT |
dmhs_veri |
|
源端 |
ORACLE |
192.168.1.32 |
CentOS 6.5 |
1521 |
Agent、veri |
目的端 |
达梦8 |
192.168.1.105 |
CentOS 7.5 |
5236 |
Agent |
1.1 Linux 代理连接为Oracle
1.1.1 安装unixODBC
需要声明的是,只有在校验进程dmhs_veri运行的机器才需要安装并配置unixODBC,且unixODBC版本需要使用2.3.0及以上的版本。
获取unixODBC-2.3.0.tar.gz,
执行tar -xzvf unixODBC-2.3.0.tar.gz
然后cd unixODBC-2.3.0/
路径下执行./configure
然后执行make && make install
配置unixODBC的odbc.ini 和odbcinst.ini文件。
1.1.2 环境变量的检查和配置
在oracle根目录下.bash_profile中添加如下两行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:$ORACLE_HOME/lib |
使环境变量生效:
source .bash_profile |
1.1.3 监听配置和检查
执行lsnrctl status,确保 listener.ora 文件中HOST参数与当前机器hostname一致,如下图所示。
1.1.4 配置unixODBC源
以root用户进入到/usr/local/etc文件夹下,编辑如下文件odbcinst.ini,其中Driver为oracle的libsqora.so.XX.X文件的路径。
chown oracle.oinstall /usr/local/etc/*
[Oracle in OraDb11g_home1] Description = ODBC DRIVER FOR ORACLE Driver = /mnt/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1 threading = 0 |
在odbc.ini 配置示例中[XXX]是DSN名称。
示例:
[RACDB_ST] Descripti |