文章目录
前言一、规划二、源端配置ODBC1.ODBC安装2.配置文件三、创建配置文件1.Oracle源端agent配置文件2.DM目的端agent配置文件3.Oracle源端配置veri对比文件4.查看依赖5.启动对比6.查看对比报告总结前言
已经安装好Oracle11g单机到达梦8单机的dmhs数据同步
一、规划
1、源端是Oracle11g,目的端是DM8
2、两端需要为数据对比各开一个agent服务,然后在其中一端开一个对比服务
3、数据对比服务启动在源端Oracle所在的服务器上
二、源端配置ODBC
1.ODBC安装
1、上传ODBC软件 unixODBC-2.3.0.tar.gz
2、解压
[root@qzodb1 unixODBC-2.3.0]#tar -zxvf unixODBC-2.3.0.tar.gz
3、进入解压目录安装
[root@qzodb1 unixODBC-2.3.0]#./configure
4、编译
[root@qzodb1 unixODBC-2.3.0]#make && make install
2.配置文件
因配置odbc需要lib包,源端没有安装DM,所以需要把目的端dm的bin目录复制到源端Oracle
查看odbc配置文件路劲及信息
[root@qzodb1 ~]# odbcinst -junixODBC 2.3.0DRIVERS............: /usr/local/etc/odbcinst.iniSYSTEM DATA SOURCES: /usr/local/etc/odbc.iniFILE DATA SOURCES..: /usr/local/etc/ODBCDataSourcesUSER DATA SOURCES..: /root/.odbc.iniSQLULEN Size.......: 8SQLLEN Size........: 8SQLSETPOSIROW Size.: 8
vi /usr/local/etc/odbcinst.ini
[Oracle in OraDb11g_home1]Description = ODBC DRIVER FOR ORACLEDriver = /oracle/app/oracle/product/11.2.0/db_1/lib/libsqora.so.11.1threading = 0[DM8ODBCDRIVER]Description = ODBC DRIVER FOR DM8Driver = /home/oracle/dm/bin/libdodbc.so#dm的bin在源端Oracle的路劲threading = 0
vi /usr/local/etc/odbc.ini
[DM8]Description = DM ODBC DSNDriver = DM8ODBCDRIVERSERVER = 192.168.1.132UID = SYSDBAPWD = dameng123TCP_PORT = 5237[oracle11g]Description = ORACLE ODBC DSNDriver =Oracle in OraDb11g_home1 SERVER = localhostUID = dmhsPWD = dmhs
三、创建配置文件
1.Oracle源端agent配置文件
在dmhs的bin目录下创建agent.xml文件
vi agent.xml
代码如下:
<?xml version="1.0" encoding="utf-8"?><agent><port>9666</port><lang>en</lang><max_session>50</max_session><database><server>192.168.1.111/qzdb</server><uid>dmhs</uid><psw>dmhs</psw><char_code>PG_18030</char_code><type>ORACLE11g</type></database></agent>
在bin目录下用刚才的配置文件启动代理服务
./dmhs_veri_agent_ora agent.xml
2.DM目的端agent配置文件
在dmhs的bin目录下创建agent.xml文件
vi agent.xml
代码如下:
<?xml version="1.0" encoding="utf-8"?><agent><port>6666</port><lang>en</lang><max_session>250</max_session><database><server>127.0.0.1:5237</server><!--如果自定义的端口,可以在这后面加上--><uid>SYSDBA</uid><psw>dameng123</psw><!--char_code>PG_18030</char_code--><type>DM8</type></database></agent>
在bin目录下用刚才的配置文件启动代理服务
./dmhs_veri_agent_dm8 agent.xml
3.Oracle源端配置veri对比文件
在dmhs的bin目录下创建veri.xml文件
vi veri.xml
代码如下:
<veri><lang>ch</lang><max_thr>40</max_thr><max_out_sync>100000</max_out_sync><src><agent_server>192.168.1.111</agent_server><port>9666</port><db_type>oracle11g</db_type><multipe>1</multipe><odbc_str><db_server>192.168.1.111/qzdb</db_server><db_user>dmhs</db_user><db_pwd>dmhs</db_pwd><driver>Oracle in OraDb11g_home1</driver> <!--配置odbc的驱动名称--></odbc_str></src><dest><agent_server>192.168.1.132</agent_server><port>6666</port><db_type>DM8</db_type><odbc_str><db_server>192.168.1.132:5237</db_server><db_user>SYSDBA</db_user><db_pwd>dameng123</db_pwd><driver>DM8ODBCDRIVER</driver> <!--配置odbc的驱动名称--></odbc_str></dest></veri>
4.查看依赖
1、在bin目录下 ldd dmhs_veri查看依赖是否有缺失
[oracle@qzodb1:/home/oracle/dmhs/bin]$ ldd dmhs_verilinux-vdso.so.1 => (0x00007fffe37ed000)libc.so.6 => /lib64/libc.so.6 (0x00007fb1ed875000)libm.so.6 => /lib64/libm.so.6 (0x00007fb1ed573000)librt.so.1 => /lib64/librt.so.1 (0x00007fb1ed36b000)libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb1ed14f000)libdl.so.2 => /lib64/libdl.so.2 (0x00007fb1ecf4b000)libdmhs_pub.so => ./libdmhs_pub.so (0x00007fb1ecc1f000)libdmhs_xml.so => ./libdmhs_xml.so (0x00007fb1eca10000)libdmhs_lic.so => ./libdmhs_lic.so (0x00007fb1ec804000)libodbc.so.2 => /lib64/libodbc.so.2 (0x00007fb1ec59c000)/lib64/ld-linux-x86-64.so.2 (0x00007fb1edc42000)libltdl.so.7 => /lib64/libltdl.so.7 (0x00007fb1ec392000)
如果 libodbc.so.2 没有启动对比则会报找不到驱动
2、如果按照odbc是默认路劲安装,这个文件在/usr/local/lib/目录下
ls -l /usr/local/lib/libodbc.so.2
3、查看如果没有这个包的话用libodbc.so.1.0.0包做个软连接,软连接的名称改为dmhs_veri依赖需要的名字
ln -s /usr/local/lib/libodbc.so.1.0.0 /usr/local/lib/libodbc.so.2
4、在修改环境变量,在环境变量LD_LIBRARY_PATH中添加lib包所在路径 /usr/local/lib
vi ~/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
5.启动对比
例如:我这里对比DMHS模式下所有的表
[oracle@qzodb1:/home/oracle/dmhs/bin]$./dmhs_veri jobname=job1 "table=(DMHS.*==DMHS.*)" mode=normalVERI[INFO]: VERI start up, current version: V4.1.1-Build(.05.11-99507trunc)_D64VERI[INFO]: CONNECT: DBQ=192.168.1.111/qzdb;DRIVER=Oracle in OraDb11g_home1;UID=dmhs;PWD=******;VERI[INFO]: CONNECT: SERVER=192.168.1.132:5237;DRIVER=DM8ODBCDRIVER;UID=SYSDBA;PWD=******;TCP_PORT=5236;MGR[WARN]: License 将在 -03-25 过期VERI[INFO]: veri odbc connect str: DBQ=192.168.1.111/qzdb;DRIVER=Oracle in OraDb11g_home1;UID=dmhs;VERI[INFO]: veri odbc connect str: SERVER=192.168.1.132:5237;DRIVER=DM8ODBCDRIVER;UID=SYSDBA;VERI[INFO]: (DMHS.*==DMHS.*)对象解析线程个数:1VERI[INFO]: veri odbc connect str: DBQ=192.168.1.111/qzdb;DRIVER=Oracle in OraDb11g_home1;UID=dmhs;VERI[INFO]: veri odbc connect str: SERVER=192.168.1.132:5237;DRIVER=DM8ODBCDRIVER;UID=SYSDBA;VERI[INFO]: 添加DMHS.TEST1==DMHS.TEST1到对比队列中 VERI[INFO]: 添加DMHS.TEST2==DMHS.TEST2到对比队列中 VERI[INFO]: 添加DMHS.TT1==DMHS.TT1到对比队列中 VERI[INFO]: (DMHS.*==DMHS.*)等待对象解析线程完成...VERI[INFO]: (DMHS.*==DMHS.*)对象解析线程完成退出.VERI[INFO]: job1的任务开始VERI[INFO]: 执行的模式为NORMALVERI[INFO]: 源AGENT为192.168.1.111:9666VERI[INFO]: 目的AGENT为192.168.1.132:6666VERI[INFO]: 组表对比开始: (1/3 : DMHS.TEST1==DMHS.TEST1)...VERI[INFO]: 组表对比开始: (2/3 : DMHS.TEST2==DMHS.TEST2)...VERI[INFO]: VERI接收到目的AGENT数据包(DMHS.TEST1, 2, 0)VERI[INFO]: 表数据排序:(DMHS.TEST1)VERI[INFO]: 组表对比开始: (3/3 : DMHS.TT1==DMHS.TT1)...VERI[INFO]: VERI接收到目的AGENT数据包(DMHS.TEST2, 4, 0)VERI[INFO]: VERI接收到目的AGENT数据包(DMHS.TT1, 6, 0)VERI[INFO]: 表数据排序:(DMHS.TEST2)VERI[INFO]: 表数据排序:(DMHS.TT1)VERI[INFO]: VERI接收到源AGENT数据包(DMHS.TEST1, 1, 0)VERI[INFO]: VERI接收到源AGENT数据包(DMHS.TT1, 5, 0)VERI[INFO]: VERI接收到源AGENT数据包(DMHS.TEST2, 3, 0)VERI[INFO]: 无主键对比开始: (DMHS.TEST1==DMHS.TEST1)VERI[INFO]: (DMHS.TEST1==DMHS.TEST1) compare over, out_sync: 0, in_sync: 6, used time : 0.282(ms)VERI[INFO]: 无主键对比开始: (DMHS.TEST2==DMHS.TEST2)VERI[INFO]: (DMHS.TEST2==DMHS.TEST2) compare over, out_sync: 0, in_sync: 4, used time : 0.189(ms)VERI[INFO]: 无主键对比开始: (DMHS.TT1==DMHS.TT1)VERI[INFO]: (DMHS.TT1==DMHS.TT1) compare over, out_sync: 0, in_sync: 0, used time : 0.154(ms)VERI[INFO]: 退出Verify tool
6.查看对比报告
对比完成后生成的报告bin目录下面的report文件夹里面
用cat查看
[oracle@qzodb1:/home/oracle/dmhs/bin]$cat report/job1_0822_002/veri_report_job1_0822_002.txt ******************************************************DM Verify Data Tool版本: V4.1.1-Build(.05.11-99507trunc)_D64执行时间 : -08-22 11:45:50结束时间 : -08-22 11:45:52 ******************************************************源端比目标端多出的表或视图如下:目标端比源端多出的表或视图如下:******************************************************任务名称 : job1执行模式 : NORMAL源AGENT : 192.168.1.111:9666源AGENT数据库类型 : ORACLE11g目的AGENT: 192.168.1.132:6666目的AGENT数据库类型: DM8******************************************************注意:在非主键对比情况下,UPDATE会以INSERT和DELETE显示,导致一致与不一致总和大于表总数总共比较表数: 3[OK] DMHS.TEST1 == DMHS.TEST1源端表总行数 : 6目的表总行数 : 6同步成功: 6同步失败: 0[OK] DMHS.TEST2 == DMHS.TEST2源端表总行数 : 4目的表总行数 : 4同步成功: 4同步失败: 0[OK] DMHS.TT1 == DMHS.TT1源端表总行数 : 0目的表总行数 : 0同步成功: 0同步失败: 0
总结
更多信息可前往达梦官网社区
/docs/zh-cn/start/index.html
如果觉得《达梦DMHS中Oracle到达梦veri数据对比》对你有帮助,请点赞、收藏,并留下你的观点哦!