文章目录

  • 前言
  • 一、规划
  • 二、源端配置ODBC
    • 1.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 -j
unixODBC 2.3.0
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

vi /usr/local/etc/odbcinst.ini

[Oracle in OraDb11g_home1]
Description = ODBC DRIVER FOR ORACLE
Driver = /oracle/app/oracle/product/11.2.0/db_1/lib/libsqora.so.11.1
threading = 0[DM8ODBCDRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /home/oracle/dm/bin/libdodbc.so   #dm的bin在源端Oracle的路劲
threading = 0

vi /usr/local/etc/odbc.ini

[DM8]
Description = DM ODBC DSN
Driver = DM8ODBCDRIVER
SERVER = 192.168.1.132
UID = SYSDBA
PWD = dameng123
TCP_PORT = 5237[oracle11g]
Description = ORACLE ODBC DSN
Driver =Oracle in OraDb11g_home1
SERVER = localhost
UID = dmhs
PWD = 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=normal
VERI[INFO]: VERI start up, current version: V4.1.1-Build(2021.05.11-99507trunc)_D64
VERI[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 将在 2022-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.*)对象解析线程个数:1
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.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]: 执行的模式为NORMAL
VERI[INFO]: 源AGENT为192.168.1.111:9666
VERI[INFO]: 目的AGENT为192.168.1.132:6666
VERI[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_20210822_002/veri_report_job1_20210822_002.txt
******************************************************DM Verify Data Tool
版本     : V4.1.1-Build(2021.05.11-99507trunc)_D64
执行时间 : 2021-08-22 11:45:50
结束时间 : 2021-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

总结

更多信息可前往达梦官网社区
https://eco.dameng.com/docs/zh-cn/start/index.html

达梦DMHS中Oracle到达梦veri数据对比相关推荐

  1. 搭建dmhs veri数据对比

    简介: AGENT:对比工具代理服务,主要用作数据获取,并计算行数据的 MD5,发送给对比模块. VERI:对比校验进程,主要进行模式下对象对比,数据对比,并且生成对比报告. 系统主要分为对比代理服务 ...

  2. 达梦数据库——Oracle到达梦数据迁移

    ## 迁移思路 1.统计Oracle库中对象以及表数据量: 2.达梦数据库选择合适的初始化参数: BLANK_PAD_MODE 空格填充模式选1, CASE_SENSITIVE 大小写敏感:可以考虑开 ...

  3. EXCELL中怎么将两列数据对比,找出相同的和不同的数据?

    假设你要从B列中找出A列里没有的数据,那你就在C1单元格里输入"=IF(ISNA(VLOOKUP(B1,A:A,1,0)),"F","T")" ...

  4. 达梦数据库导入oracle数据_Java项目,从Oracle迁移到达梦数据库笔记

    达梦数据库是个国产数据库,据说对Oracle有很好的兼容,本人亲自从Oracle11g迁移到达梦6.0的数据库上来,遇到一些问题,以下是问题记录: 1.字段名错误 虽然达梦SQL可以兼容字段大小写,但 ...

  5. 达梦数据对比工具VERI对oracle11gR2与oracle11gR2的实时同步后对比验证测试

    环境介绍 一:源库 1.oracle 11g R2,DMHSV4 2.10.0.0.21,crm库,ZHS16GBK,1521端口, 3.同步用户usercrm,密码abcd1234 4.同步表T01 ...

  6. 达梦数据库兼容Oracle之SQL语法(一)

    对于刚从Oracle数据库转到达梦数据库,SQL语法的使用基本一致,有一些差别,下面总结的一些常用SQL语法差别. 文章目录 1.导入数据 2.返回查询数据的返回行 3 外连接用法 4.多列IN用法 ...

  7. 创建oracle数据库到达梦数据库的dblink

    实际上是通过odbc使oracle连接到达梦数据库,需要安装odbc驱动,达梦驱动(达梦经典安装),配置odbc,透明网关,oracle监听服务 环境:( redhat6.9,oracle11g,达梦 ...

  8. 达梦DMHS安装及使用

    1.安装步骤 1.1运行.bin文件(-i表示命令行安装),选择语言 1.2是否使用key文件,选择2会多一步输入key文件路径 1.3选择安装的模式 精简版包括:实时同步软件服务器.远程部署工具.实 ...

  9. 达梦端到Oracle端dblink

    搭建 DM8 到 oracle 跨库访问dblink 1.在达梦端安装oracle client 可以不用安装整个client,下载安装basic,sqlplus, sdk,jdbc和odbd的zip ...

最新文章

  1. 【Redfin SDE intern】跪经
  2. Arxiv 论文提交流程——看这篇就够了
  3. TreeView和DataGridView控件组合使用
  4. 如何使用知识图谱增强信息检索模型?
  5. Implicit conversion from enumeration type 'enum CGImageAlphaInfo' to different enumeration type 'CGB
  6. dart系列之:dart语言中的异常
  7. 为什么C4C UI上看不到新建按钮
  8. 如何知道linux的ssh秘钥是否匹配,SSH密钥验证
  9. 速途网范锋:我的创业路早已命中注定
  10. GitHub Desktop离线安装包
  11. stm32_19264液晶LCD驱动程序
  12. 平时有没有使用xml和json
  13. 恩布开源安卓手机IM,EntboostIM发布1.5.1版本
  14. 全面启动远程医疗行业
  15. 巴特沃斯低通滤波器 matlab,利用matlab设计巴特沃斯低通滤波器
  16. Android SDK怎么救砖,Android手机刷机变砖后无法开机的修复方法
  17. Oracle常用函数
  18. cmd查看mysql的ip地址_怎么在cmd中查看数据库ip地?
  19. Apollo 算法阅读之Public Road轨迹规划算法--路径规划(含源代码)
  20. openwrt运行n2n服务器,Windows下使用N2N搭建局域网,全球局域网(重写)

热门文章

  1. python画画用哪库好_Python我要学画画-turtle库
  2. 【外行也能看懂的RabbitMQ系列(二)】—— RabbitMQ的Web管理界面(rabbitmq_management)详解(内含Topic模式通配符实操)
  3. php中status,phpfpm status状态说明
  4. SharePoint-Office365中修改顶部导航
  5. Express全系列教程之(十五):文件下载
  6. uniapp调用上一页的方法
  7. 国外知名网站Stackoverflow 历时两年评选出11本对程序员最有影响力的书籍
  8. ibooks打开iframe引用的html文件乱码
  9. Code For Better 谷歌开发者之声——初识Web与谷歌,拉起兴趣之心。
  10. OA属于计算机哪类一,oa属于什么计算机应用