DMHS数据对比工具之Oracle到dm7的对比

        在进行数据库数据的实时同步的时候,需要了解同步的结果是否正确,因此需要有数据对比工具进行数据的对比,并生成详细的对比报告,提供用户参考。

        DMHS对比工具由三部分组成:源端 AGENT 服务器、目的端 AGENT 服务器和 VERI对比进程。每个 AGENT 服务器对应一个 Oracle 或 DM7 数据库实例。每次对比都会启动一个 VERI 对比进程,对比完成后自动退出,并生成对比报告。

        运行对比工具之前,需要配置 AGENT 和 VERI,各配置项的详细说明如下:

        AGENT 配置文件使用 XML 文件格式,默认文件为 agent.xml,配置示例如下:

 
 
5347
ch 
50     #最大连接数,范围为[1, 10000]
0                    #0:动态对比锁表模式;1:动态对比闪回查询模式。仅仅在Oracle中有效。

1       #动态对比上锁模式中对表上锁是否使用 nowait,1 表示使用;0 表示不使用。

0    #配置连接数据库口令是否加密:1 表示密文;0:表示明文。密文通过 dmhs_console 工具的命令 pwd “xx”获得。

100     #动态对比时,agent 和 DMHS 连接等待的时间,有效值:[0, 36000000], 单位:秒,默认为 100

0   #从数据库查询表数据时,会报“快照过旧”的错误,导致表对比停止。该参数配置为 1,则可以忽略该报错继续取数据对比。仅对DM7/8 有效。0 表示关闭,默认为 0,有效值为 0 和 1。

    #Agent连接的数据库配置
ora92 
test 
数据库密码

 
ORACLE11g


        VERI 配置文件使用 xml 格式进行配置,默认文件为 veri.xml,配置示例如下:



 ch 

 40           #最大线程对数,范围为[1, 10000]
 1    #最大对象对比线程个数,范围为[1, 10000]

 0    #AGENT 与 VERI 断连后重试次数,范围 [0, 100]
 0          #是否生成 html 报告:1 表示是,0 表示否。

 100000    #最大允许出错的行数,范围为[1, 10000000]
 0    #配置连接数据库口令是否加密:1 表示密文;0:表示明文。
 0            #是否对指定 jobfile 的情况进行取列优化,1:是;0:否。设置为 1之后,从数据库查询表的对比列的操作将放在对比线程中处理,提升并发性能。

 0            #是否生成单独的错误日志对比报告,1:是;0:否。
 1024    #排序缓冲区大小,有效值:[32, 262144],单位:MB。

 0      #对比报告的显示格式,0:列式显示;1:行式显示,默认为 0
 F:\veri\report

 1    #是否启用连接池,1:是;0:否。设置为1表示数据库连接会缓存起来重复使用。
 100    #连接池最大连接数

  

 192.168.0.103#执行端 IP
 5345
 1                #DMHS 执行端对应的源端 CPT 的站点号
 

 

 192.168.0.104
 5347
 ORACLE11g
 1

 
  
 ora92        #数据库的服务名
  
 test
 数据库密码
 

  

  

 192.168.0.103
 5347
 DM7
 1

 
   
 192.168.0.103
  
 SYSDBA
 数据库密码
           #ssl加密
 
 

 

        dmhs_veri 运行所在的机器必须安装 unixODBC,Oracle,DM7。

tnsnames.ora 的配置:

        tnsnames.ora 文件存放在$ORACLE_HOME/network/admin 下。

ORCL =
 (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = CentOS)(PORT = 1521))
     (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
     )
 )
unixODBC 配置:
配置 odbcinst
[ORACLE ODBC DRIVER]
Description = ODBC DRIVER FOR ORACLE
Driver = /home/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libsqora.so.11.1
Setup =
threading = 0
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /opt/dmdbms/bin/libdodbc.so
Setup = /lib/libdmOdbcSetup.so
threading = 0
odbc.ini 配置参:
[dm7-1]
Description = DM ODBC DSN
Driver = DM7 ODBC DRIVER
SERVER = 192.168.0.103
UID = SYSDBA
PWD = 自定义,且真实可用的密钥
TCP_PORT = 5236
[ora92]
Description = DM ODBC DSN
Driver = ORACLE ODBC DRIVER
SERVER = localhost
UID = TEST
PWD = 自定义,且真实可用的密钥
odbc 连接串要与 odbc.ini 配置对应。
VERI 配置 veri.xml、源端 AGENT 配置 agent.xml、目的端 AGENT 配置 agent.xml均可参考上述配置解说完成,未用到参数可不配置;
启动 AGENT 服务器
源端检查环境变量:
参考命令:env|grep LD_LIBRARY_PATH
启动源端代理进程:
将配置好的 agent.xml文件  放置在 AGENT 应用程序所在的文件夹中并启动代理进程。
./dmhs_veri_agent_ora
目的端检查环境变量:
参考命令:env|grep LD_LIBRARY_PATH
检查 LD_LIBRARY_PATH 中是否存在 DM7 库。
启动目的端代理服务器:
将 已配置好的目的端  agent.xml 文件 放置到 AGENT 应用程序所在的文件夹中。
./dmhs_veri_agent_dm7
启动对比进程进行对比
veri.xml 放置在 dmhs_veri 所在文件中,并检查 unixODBC 和 oracle 库路径是否在 LD_LIBRARY_PATH 中。
进行全模式静态对比:
./dmhs_veri jobname=job1 “table=(TEST.*==SYSDBA.*)” mode=NORMAL
进行全模式 FAST 对比:
./dmhs_veri jobname=job1 “table=(TEST.*==SYSDBA.*)” mode=FAST
进行单表对比:
./dmhs_veri jobname=job1 “table=(TEST.T1==SYSDBA.T1)” mode=NORMAL
补充:
一、DMHS 对比工具支持的数据类型:数值类型;字符类型;二进制数据类型;时间日期类型;大对象类型;不支持的数据类型:时区数据类型。
二、DMHS 对比工具对比支持以下对比类别:
1) 按照对比模式分为:静态对比、动态对比、快速对比和二次对比;
2) 按照是否使用键值对比分为:键值对比和非键值对比;
3) 动态对比按照对比表之间是否存在关联分为:普通对比和组表对比,前者表示表之间的 对比没有关联,相互独立;后者表示表之间存在关联,如外键引用,对比时关联表会在 相同的 SCN 下比较。组表对比只支持源代理数据库为 Oracle 的情况,且不支持 LONG 和 LONG RAW 数据类型。
4) 动态对比按照执行方式不同分为:锁表动态对比和闪回查询动态对比。普通对比可以使 用其中任意一种执行方式,组表对比只能使用闪回查询动态对比。在不支持闪回查询的 数据库对比中,默认使用锁表动态对比。按照是否使用键值对比分为:键值对比和非键 值对比;
注意:二次对比时,需对比的表中无主键且唯一索引包含空值时对比结果会有误差;表中无
主键且没有唯一索引的情况下,二次对比不会对大对象再次进行比对。
更多有关达梦数据库相关内容,可通过以下链接查看
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

你可能感兴趣的:(DM达梦数据库,oracle,数据库,服务器)