首页 > 其他分享 >达梦数据对比工具的部署与使用

达梦数据对比工具的部署与使用

时间:2023-12-25 21:08:23浏览次数:42  
标签:xml bin lib 部署 dmhs oracle home 对比 达梦


1、拷贝达梦软件bin目录到Oracle服务器(root用户)

压缩Linux rh6 x86版本的达梦数据库bin目录,例如压缩文件为dmbin.tar.gz,将文件拷贝到Oracle服务器指定目录并解压(如:/home/oracle/dmbin),给目录/home/oracle/dmbin授予相关权限和用户组

chown -R oracle:oinstall /home/oracle/dmbin

2、配置ODBC连接Oracle数据库

(1)上传unixODBC源码文件,解压,编译安装(root用户)

tar -zxvf unixODBC-2.3.7.tar.gz
cd unixODBC-2.3.7
./configure --prefix=/usr/local/unixODBC-2.3.7 --includedir=/usr/include --libdir=/usr/lib --bindir=/usr/bin --sysconfdir=/etc --enable-gui=no
make
make install
ldconfig

#安装成功后,unixODBC所需的头文件都被安装到了/usr/inlucde下,编译好的库文件安装到了/usr/lib下,与unixODBC相关的可执行文件安装到了/usr/bin下,配置文件放到了/etc下。

(2)查看odbc版本,查看配置文件路径(root用户)

odbc_config --version
odbcinst -j

(3)配置odbc.ini和odbcinst.ini(root用户)

vi /etc/odbcinst.ini
[Oracle]
Description     = ODBC DRIVER FOR ORACLE
Driver          = /oracle/app/oracle/product/19.3.0/db/lib/libsqora.so.19.1
Threading       = 0

#注意检查是否配置环境变量,主要为$ORACLE_HOME/lib是否配置

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib

#查看动态库依赖关系,确保没有not found的依赖库,否则建议使用cp或做软链接的方式对缺失的动态依赖库进行补充,例如libclntsh.so.19.1和libodbcinst.so.2经常会找不到,ln -s source target创建软链接

ldd /oracle/app/oracle/product/19.3.0/db/lib/libsqora.so.19.1
    linux-vdso.so.1 =>  (0x00007ffd3a095000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f86b275e000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f86b245c000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f86b2240000)
    libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f86b2026000)
    librt.so.1 => /lib64/librt.so.1 (0x00007f86b1e1e000)
    libaio.so.1 => /lib64/libaio.so.1 (0x00007f86b1c1c000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f86b1a02000)
    libclntsh.so.19.1 => /oracle/app/oracle/product/19.3.0/db/lib/libclntsh.so.19.1 (0x00007f86ad9f4000)
    libclntshcore.so.19.1 => /oracle/app/oracle/product/19.3.0/db/lib/libclntshcore.so.19.1 (0x00007f86ad454000)
    libodbcinst.so.2 => /lib/libodbcinst.so.2 (0x00007f86ad239000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f86ace6b000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f86b2c1c000)
    libnnz19.so => /oracle/app/oracle/product/19.3.0/db/lib/libnnz19.so (0x00007f86ac723000)
vi /etc/odbc.ini
[ORACLE19C]
Description = ORACLE ODBC DSN
Driver = Oracle
ServerName = pdb01
PORT = 1521

(4)测试连接(oracle用户)

isql -v ORACLE19C TEST TEST

3、配置ODBC连接达梦数据库

(1)配置odbc.ini和odbcinst.ini(root用户)

vi /etc/odbcinst.ini
[DM ODBC DRIVER]
Description = ODBC DRIVER FOR DM
Driver = /home/oracle/dmbin/libdodbc.so

#注意检查是否配置环境变量,配置环境变量如下:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/home/oracle/dmbin
vi /etc/odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM ODBC DRIVER
SERVER = 192.168.10.100
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236

(2)测试连接(dmdba用户)

isql -v DM8 SYSDBA SYSDBA

4、在Oracle和达梦数据库服务器上分别安装DMHS软件

(1)Oracle端创建目录/home/oracle/dmhs,安装到此目录,使用oracle用户安装

(2)达梦端创建目录/home/dmdba/dmhs,安装到此目录,使用dmdba用户安装

以上安装时均选择试用、完整版安装,其他一路回车即可,安装过程省略。

5、编辑agent.xml配置文件

(1)Oracle端配置agent.xml(oracle用户)

vim /home/oracle/dmhs/bin/agent.xml
<?xml version="1.0" encoding="utf-8"?>
<agent>
    <port>2347</port>
    <lang>en</lang>
    <max_session>50</max_session>
    <lock_nowait>1</lock_nowait>
    <thr_num>5</thr_num>
    <group_num>5</group_num>
    <worker_thr>4</worker_thr> #优化参数:单表计算md5的线程数,有效值:[1, 64], 默认为4.只对没有大字段和LONG类型的表有效
    <database>
        <char_code>PG_GB18030</char_code>
        <type>oracle19c</type>
        <server>192.168.10.101</server>
        <port>5236</port>
        <uid>SYSDBA</uid>
        <psw>SYSDBA</psw>
    </database>
</agent>

(2)达梦端配置agent.xml(dmdba用户)

vim /home/dmdba/dmhs/bin/agent.xml
<?xml version="1.0" encoding="utf-8"?>
<agent>
    <port>2347</port>
    <lang>en</lang>
    <max_session>50</max_session>
    <thr_num>5</thr_num>
    <group_num>5</group_num>
    <worker_thr>4</worker_thr> #优化参数:单表计算md5的线程数,有效值:[1, 64], 默认为4.只对没有大字段和LONG类型的表有效
    <database>
        <char_code>PG_GB18030</char_code>
        <type>DM8</type>
        <server>192.168.10.100</server>
        <port>5236</port>
        <uid>SYSDBA</uid>
        <psw>SYSDBA</psw>
    </database>
</agent>

6、启动agent进程

(1)启动Oracle端Agent(oracle用户)

nohup /home/oracle/dmhs/bin/dmhs_veri_agent_ora /home/oracle/dmhs/bin/agent.xml -noconsole >> /home/home/oracle/dmhs/bin/log/dmhs_veri_agent_dm.log 2>&1 &

(2)启动达梦端Agent(dmdba用户)

nohup /home/dmdba/dmhs/bin/dmhs_veri_agent_dm8 /home/dmdba/dmhs/bin/agent.xml -noconsole >> /home/dmdba/dmhs/bin/log/dmhs_veri_agent_dm.log 2>&1 &

7、Oracle端编辑veri.xml配置文件(oracle用户)

<?xml version="1.0" encoding="utf-8"?>
<veri>
    <lang>en</lang>
    <max_thr>1</max_thr> #最大线程对数,范围为[1, 10000]
    <max_obj_thr>10</max_obj_thr>
    <report_left_num>100</report_left_num>
    <max_out_sync>1000</max_out_sync>
    <col_opt>0</col_opt>
    <report_dir>/home/oracle/report</report_dir>
    <temp_dir>/dmhs_temp_dir</temp_dir>
    <down_file>0</down_file>
    <mem_size>30</mem_size> #使用内存限制,默认10GB ;单位GB。
    <report_buf_size>0</report_buf_size> #记录差异比对记录的最大缓存容量;当设置为0时,不缓存;默认生效,默认值256MB;以MB为单位。
    <max_queue>200</max_queue>
    <char_code>PG_GB18030</char_code>
    <src>
        <agent_server>192.168.10.101</agent_server>
        <port>2347</port>
        <db_type>oracle19c</db_type>
        <odbc_str>
            <driver>dsn=ORACLE19C</driver>
            <db_server>192.168.10.101</db_server>
            <db_user>TEST</db_user>
            <db_pwd>TEST</db_pwd>
            <db_port>5236</db_port>
        </odbc_str>
    </src>
    <dest>
        <agent_server>192.168.10.100</agent_server>
        <port>2347</port>
        <db_type>DM8</db_type>
        <odbc_str>
            <driver>dsn=DM8</driver>
            <db_server>192.168.10.100</db_server>
            <db_user>SYSDBA</db_user>
            <db_pwd>SYSDBA</db_pwd>
            <db_port>5236</db_port>
        </odbc_str>
    </dest>
</veri>

8、Oracle端编辑job.xml配置文件(oracle用户)

vim /home/oracle/dmhs/bin/job.xml
<?xml version="1.0" encoding="GB2312" ?>
<job>
    <name>job</name>
    <table_list>
            <table_info>
                <table_name>USERA.*==USERA.*</table_name>
            </table_info>
            <table_info>
                <table_name>USERB.*==USERB.*</table_name>
            </table_info>
    </table_list>
</job>

9、开始对比(oracle用户)

cd home/oracle/dmhs/bin/

(1)指定jobfile进行对比,对比指定用户下的所有表

./dmhs_veri conf=veri.xml jobfile=job.xml no_lob=1 mode=normal count=1

(2)指定jobfile进行对比,对比时指定单张表中满足条件的部分数据

--A.创建jobfile

vim /home/oracle/dmhs/bin/table1.xml
<?xml version="1.0" encoding="GB2312" ?>
<job>
    <name>tab1</name>
    <table_list>
            <table_info>
                <table_name>USERA.TABLE1==USERA.TABLE1</table_name>
            </table_info>
    </table_list>
</job>

 --B.执行数据对比

./dmhs_veri conf=veri.xml jobfile=TABLE1.xml no_lob=1 mode=normal cond="(ID>1 and NAME LIKE '刘%') or (JOIN_DATE>20231001 and EMP_NO<'1122334')"

#参数含义补充
COND:WHERE条件,同时加到源端数据库和目的端数据库
COND_SRC:WHERE条件,源端数据库
COND_DEST:WHERE条件,目的端数据库

(3)指定多张表,带where条件

--A.创建jobfile

vim /home/oracle/dmhs/bin/all_table.xml
<?xml version="1.0" encoding="GB2312" ?>
<job>
    <name>all_table</name>
    <table_list>
        <table_info>
            <table_name>USERA.TABLE1==USERA.TABLE1</table_name>
            <col_map_flag>3</col_map_flag> #参数说明:列映射配置标记,0不进行列映射,3表示普通列映射,例如“C1==D1”
            <tab_cmp_flag>0</tab_cmp_flag> #参数说明:0表示表结构和表数据都对比;1表示只需对比表结构。
            <row_partition_src>  #参数说明:行分区功能,依据条件选取表中部分行进行对比。仅仅在静态对比模式下有效,此处控制源AGENT查询条件。
                <![CDATA[ "ID" < 1000]]>
            </row_partition_src>
            <row_partition_dest> #参数说明:行分区功能,依据条件选取表中部分行进行对比。仅仅在静态对比模式下有效,此处控制目的AGENT查询条件。
                <![CDATA[ "ID" < 1000]]>
            </row_partition_dest>
            <key_list> #主键列,若没有可忽略
                <col>ID==ID</col>
            </key_list> 
            <col_list>
                <col>NAME==NAME</col>
            </col_list>  #列对比
            <col_list>
                <col>SEX==GENDER</col>
            </col_list>  #列对比
        </table_info>
        <table_info>
            <table_name>USERA.TABLE2==USERA.TABLE2</table_name>
            <col_map_flag>3</col_map_flag>
            <tab_cmp_flag>0</tab_cmp_flag>
        </table_info>
    </table_list>
</job>

--B.执行数据对比

./dmhs_veri conf=veri.xml jobfile=TABLE1.xml no_lob=1 mode=normal

标签:xml,bin,lib,部署,dmhs,oracle,home,对比,达梦
From: https://blog.51cto.com/jackin/8972106

相关文章

  • 在arm架构的银河麒麟系统部署Redis
    以下是在arm架构的银河麒麟系统上部署Redis的详细步骤:1.创建文件夹首先,在合适的位置创建必要的文件夹。在本例中,我们将创建/opt/redis和/usr/src/redis两个文件夹。mkdir/opt/redismkdir/usr/src/redis2.准备Redis及其依赖库移动redis-6.2.12.tar.gz到/usr/src/redis......
  • 前端微服务架构1-项目启动及打包部署
    启动父子应用可以单独启动,单独启动就不说了关于一起启动1、安装npmall: npm install npm-run-all --save-dev2、编写启动命令"scripts":{  "dev":"webpack-dev-server--inline--hot--progress--configbuild/webpack.dev.conf.js",  "start":"np......
  • python Django项目在jenkins中部署
    1.在jenkins中创建一个自由风格的job: 配置git源代码仓库:构建机制的配置: 配置执行shell脚本: ps-ef|grep0.0.0.0:8088|grep-vgrep|awk'{print$2}'|xargskill-9echo"=============Finishtokillreleasewikirealprocess=================="BUIL......
  • 教你几个部署多个nginx-ingress的注意事项
    本文分享自华为云社区《nginx-ingress工作原理以及多nginx-ingress部署注意事项》,作者:可以交个朋友。一、nginx-ingress工作原理nginx-ingress对应的容器中有两个核心组件:nginx-ingress-controller和nginx。其中nginx-ingress-controller负责list-watchkube-apiserver监听ingress......
  • 基于RM编译码的协作MIMO系统误码率matlab仿真,对比不同RM编译码参数
    1.算法运行效果图预览  2.算法运行软件版本MATLAB2013b 3.算法理论概述      基于RM编译码的协作MIMO(多输入多输出)系统是一种利用多个天线和协作传输来提高通信系统性能的技术。       Reed-Muller(RM)码是一类经典的纠错编码,其编码和译码算法都拥有......
  • 部署系统自动执行脚本方式
    1.首先将脚本写好,然后放到/usr/local/sbin/目录下2.然后开始执行crontab-e命令,来编辑制动执行脚本的命令;如下图:(1) (2) (3) ......
  • 教你几个部署多个nginx-ingress的注意事项
    本文分享自华为云社区《nginx-ingress工作原理以及多nginx-ingress部署注意事项》,作者:可以交个朋友。一、nginx-ingress工作原理nginx-ingress对应的容器中有两个核心组件:nginx-ingress-controller和nginx。其中nginx-ingress-controller负责list-watchkube-apiserver监听ingr......
  • Docker部署Redis7.X版本Cluster模式三主三从集群
    前言:最近给客户部署项目提供三台机器,需要用到redis就想着部署RedisCluster模式集群,但是找遍了csdn都没找到我想要的。花了好久参考了很多博主的帖子终于让我搞出来了,个人比较菜各位看官老爷见笑。话不多说开搞!!!!!!安装前准备:1.在三台机器上分别创建对应配置文件夹,一台机器两个节点(一......
  • Longhorn 的部署与使用
    官网:https://www.rancher.cn/longhorn架构图:1.安装要求官网提供:https://longhorn.io/docs/1.5.3/deploy/install注:这里关于安装要求我们就不多做赘述,请看官方文档内的要求,这里只是将需要的进行安装,目前系统为:ubuntu22.04,集群版本:v1.26.5。apt-getinstallopen-iscsinfs-c......
  • 达梦数据库varchar和nvarchar的验证
    达梦数据库varchar和nvarchar的验证测试SQLcreatetablespacezhaobshdatafile'/opt/dmdbms/data/DAMENG/zhaobsh.dbf'size128#需要注意达梦数据库的大小限制为:#第1行附近出现错误[-2422]:数据文件[/opt/dmdbms/data/DAMENG/zhaobsh.dbf]大小无效,取值范围为(128~671......