DMHS同步oracle19c到dm8(三)

DMHS同步oracle19c到dm8(三)

  1. 摘要
    这是夜说的第六篇学习文章,搭建dmhs从oracle19c单实例同步数据到dm8单实例,并配置达梦数据库数据同步管理平台。

DMHS同步oracle19c到dm8(一)
DMHS同步oracle19c到dm8(二)

  1. 文章目录结构
    1)安装前检查
    2)配置dmhs同步
    3)安装数据同步管理平台,并添加同步链路
    4)数据比对

  2. 配置数据比对

说明:
数据比对进程运行在dm目的端,需要在dm目的端配置ODBC和oracle19c客户端。

1.配置oracle19c客户端
[root@dm8 ~]# rpm -ivh oracle-instantclient19.13-basic-19.13.0.0.0-1.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:oracle-instantclient19.13-basic-1################################# [100%]
[root@dm8 ~]# rpm -ivh oracle-instantclient19.13-sqlplus-19.13.0.0.0-1.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:oracle-instantclient19.13-sqlplus################################# [100%]
[root@dm8 ~]# rpm -ivh oracle-instantclient19.13-odbc-19.13.0.0.0-1.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:oracle-instantclient19.13-odbc-19################################# [100%]



2.配置root用户环境变量
[root@dm8 ~]# source .bash_profile
[root@dm8 ~]# cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export PATH=$PATH:$HOME/bin:/usr/lib/oracle/19.13/client64/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/dmdba/dmhs/bin:/usr/lib/oracle/19.13/client64/lib:/home/dmdba/dmdbms/bin:/usr/lib
export TNS_ADMIN=/usr/lib/oracle/19.13/client64
export ORACLE_SID=chen



3.配置tnsnames.ora
[root@dm8 client64]# pwd
/usr/lib/oracle/19.13/client64
[root@dm8 client64]# cat tnsnames.ora
CHEN =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.171.95)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = chen)
    )
  )


4.测试tns连通性
[root@dm8 client64]# sqlplus dmhs/dmhs123@CHEN

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Nov 18 16:29:17 2021
Version 19.13.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

Last Successful login time: Thu Nov 18 2021 15:48:18 +08:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> show user;
USER is "DMHS"



5.配置ODBC数据源
需要按照gcc,否则configure会报错。
[root@dm8 ~]# rpm -qa|grep gcc*
gcc-4.8.5-28.el7.x86_64
gcc-c++-4.8.5-28.el7.x86_64

解压ODBC并编译
[root@dm8 ~]# tar -xvf unixODBC-2.3.9.tar.gz
[root@dm8 ~]# cd unixODBC-2.3.9/
[root@dm8 unixODBC-2.3.9]# ./configure
[root@dm8 unixODBC-2.3.9]# make && make install

查看odbc版本
[root@dm8 unixODBC-2.3.9]# odbc_config --version
2.3.9

查看odbc配置文件位置
[root@dm8 unixODBC-2.3.9]# odbcinst -j
unixODBC 2.3.9
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


从oracle源端scp oracle的odbc驱动到dm端:
[oracle@yeshuo lib]$ scp /oracle/app/oracle/product/19.3.0/db_1/lib/libsqora.so.19.1 [email protected]:/usr/lib/oracle/19.13/client64/lib
[root@dm8 lib]# chmod 755 libsqora.so.19.1

复制/lib/下的所有文件到/usr/lib/
[root@dm8 lib]# cp /usr/lib/oracle/19.13/client64/lib/* /usr/lib/


配置/usr/local/etc/odbcinst.ini文件内容如下:
[root@dm8 unixODBC-2.3.9]# vi /usr/local/etc/odbcinst.ini
[root@dm8 lib]# cat /usr/local/etc/odbcinst.ini
[ORACLE ODBC DRIVER]
Description = ODBC DRIVER FOR ORACLE
Driver = /usr/lib/libsqora.so.19.1
Setup =
threading = 0

[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /home/dmdba/dmdbms/bin/libdodbc.so
Setup =
threading = 0



配置/usr/local/etc/odbc.ini内容如下:
[root@dm8 unixODBC-2.3.9]# vi /usr/local/etc/odbc.ini
[root@dm8 ~]# cat /usr/local/etc/odbc.ini
[oracle]
Description = DM ODBC DSN
Driver = ORACLE ODBC DRIVER
ServerName = 192.168.171.95:1521/chen
USER = dmhs
Password = dmhs123

[dm]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = 192.168.171.96
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236

测试连通性:
[root@dm8 ~]# isql -v oracle
[28000][unixODBC][Oracle][ODBC][Ora]ORA-01017: invalid username/password; logon denied

[ISQL]ERROR: Could not SQLConnect
[root@dm8 ~]# isql -v oracle dmhs dmhs123
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> quit
[root@dm8 ~]# isql -v dm
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+



6.配置veri.xml文件:(点击数据比对后该文件会自动生成,添加char_code即可)
[dmdba@dm8 INST_AGENT]$ pwd
/home/dmdba/dmhs/INST_AGENT
[dmdba@dm8 INST_AGENT]$ cat /home/dmdba/dmhs/INST_VERI/veri_0-/veri.xml


    en
    0
    0
    PG_UTF8
    3
    1
    
        192.168.171.96
        5345
        1
    
    
        192.168.171.95
        5547
        oracle12c
        
            ORACLE ODBC DRIVER
            192.168.171.95:1521/chen
            1521
            dmhs
            dmhs123
        
    
    
        192.168.171.96
        5647
        DM8
        
            DM8 ODBC DRIVER
            192.168.171.96
            5236
            SYSDBA
            SYSDBA
            PG_UTF8
        
    
    cpt0(192.168.171.95:5345)-->exec(192.168.171.96:5345)




7.源和目的端的agent.xml内容如下:
(点击数据比对后该文件会自动生成,添加char_code即可)
oracle源端: 
 [oracle@yeshuo agent_0_src]$ pwd
/home/oracle/dmhs/INST_AGENT/agent_0_src
[oracle@yeshuo agent_0_src]$
[oracle@yeshuo agent_0_src]$ cat agent.xml


    5547
    en
    PG_UTF8
    0
    
        192.168.171.95:1521/chen
        dmhs
        dmhs123
        1521
        oracle12c
    



dm目的端:
[dmdba@dm8 agent__dest]$ pwd
/home/dmdba/dmhs/INST_AGENT/agent__dest
[dmdba@dm8 agent__dest]$ cat agent.xml


    5647
    en
    PG_UTF8
    0
    
        192.168.171.96
        SYSDBA
        SYSDBA
        5236
        DM8
    

管理平台点击数据比对:
DMHS同步oracle19c到dm8(三)_第1张图片
选择dm目的端为ODBC数据源:
DMHS同步oracle19c到dm8(三)_第2张图片
此报错可忽略,重新加载即可显示模式:
DMHS同步oracle19c到dm8(三)_第3张图片
选择源模式为DMHS,目的模式为SYSDBA:
DMHS同步oracle19c到dm8(三)_第4张图片
选择TEST表:
DMHS同步oracle19c到dm8(三)_第5张图片
点击更多配置按钮,修改源端ODBC和目的端ODBC,保存。
DMHS同步oracle19c到dm8(三)_第6张图片
点击执行:
DMHS同步oracle19c到dm8(三)_第7张图片
显示如下报错,在veri.xml文件添加char_code为PG_UTF8即可。

(查看前面步骤6和7的配置内容进行修改即可)
DMHS同步oracle19c到dm8(三)_第8张图片
数据比对成功。
DMHS同步oracle19c到dm8(三)_第9张图片

模拟数据比对出错,进行数据修复。

1.dm目的端truncate test表。
[dmdba@dm8 agent__dest]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.157(ms)
disql V8
SQL> truncate table sysdba.test;
操作已执行
已用时间: 9.743(毫秒). 执行号:57800.

再次进程比对发现数据不同步:
DMHS同步oracle19c到dm8(三)_第10张图片
选中任务,右击出现数据修复和查看差异报告。
DMHS同步oracle19c到dm8(三)_第11张图片
选择数据修复,执行结果如下:
DMHS同步oracle19c到dm8(三)_第12张图片
数据比对和数据修复完成。

达梦社区地址:https://eco.dameng.com

你可能感兴趣的:(达梦数据库,数据库,database,oracle)