DMHS实时同步软件搭建Oracle19c-DM8

达梦技术社区:https://eco.dameng.com

DMHS实时同步软件搭建Oracle19c-DM8(生产环境部署方式)

  • 一、环境准备
    • 1、实验环境配置基本信息
    • 2、源端数据库基本信息
    • 3、目的端数据库基本信息
  • 二、配置环境
    • 1、安装Oracle数据库
    • 2、安装DM8数据库
    • 3、源端Oracle环境配置
    • 4、目标端DM环境配置
  • 三、安装部署运维管理平台和DMHS
    • 1、部署运维管理平台
    • 2、部署源端DMHS
    • 3、部署目标端DMHS
    • 4、添加DMHS实例
    • 5、测试数据同步和DDL操作
    • 6、运维管理
  • 四、配置数据对比链路
    • 1、查看链路状态
    • 2、点击数据对比
  • 五、数据比对过程中常见报错总结
    • 1、第一种报错,获取数据库模式失败
    • 2、第二种报错,获取数据库模式失败

一、环境准备

1、实验环境配置基本信息

源端->目标端 Orcacl 19c --> DM8
OS版本 OracleLinux-R7-U9-Server-x86_64-dvd.iso
CentOS-7-x86_64-DVD-2009.iso
DMHS版本 Oracle:dmhs_V4.1.2_pack3_oracle12_rev100999_rh6_64_veri_20210729.bin
DM:dmhs_V4.1.2_pack3_dm8_rev100999_rh6_64_veri_20210729.bin
数据库版本 LINUX.X64_193000_db_home.zip
dm8_20210420_x86_rh6_64_ent_8.6.1.190_pack4.iso
源端IP 172.16.25.166
目的端IP 172.16.25.167
同步用户 scott

2、源端数据库基本信息

源端IP 172.16.25.166
主机名 Oracle
安装用户 Oracle
数据库版本 LINUX.X64_193000_db_home.zip
ORACLE_HOME /u01/app/oracle/product/19.0.0/dbhome_1
db_block_size 8K
NLS_CHARACTERSET AL32UTF8
传输用户 c##dmhs

3、目的端数据库基本信息

源端IP 172.16.25.167
主机名 DM8_DMHS
安装用户 dmdba
数据库版本 dm8_20210420_x86_rh6_64_ent_8.6.1.190_pack4.iso
DM_HOME /opt/dmdbms
簇大小 32
页大小 32K
大小写敏感 utf8
传输用户 c##dmhs

二、配置环境

1、安装Oracle数据库

2、安装DM8数据库

参考达梦数据库安装-Linux安装

3、源端Oracle环境配置

1)开启归档

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       /oraarch
Oldest online log sequence     10
Next log sequence to archive   12
Current log sequence	       12

2)开启最小补充日志和全列日志

SQL> alter database add supplemental log data;

Database altered.

SQL> alter database add supplemental log data (all) columns;

Database altered.

SQL> select supplemental_log_data_min,supplemental_log_data_all from v$database;

SUPPLEMENTAL_LOG SUPPLE
---------------- ------
YES		 YES

3)关闭回收站

SQL> alter system set recyclebin=off deferred;

System altered.

SQL> alter session set recyclebin=off;

Session altered.

SQL> show parameter recycle;

NAME				     TYPE
------------------------------------ ----------------------
VALUE
------------------------------
buffer_pool_recycle		     string

db_recycle_cache_size		     big integer
0
recyclebin			     string
OFF

4)查看Oracle数据库字符集

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8

5)创建c##dmhs数据库用户

sysplus / as sysdba
--在CDB数据库创建DMHS表空间
--基本表空间
SQL> CREATE SMALLFILE TABLESPACE "DMHS" DATAFILE '/oradata/ORCL/dmhs01.dbf' SIZE 20M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

Tablespace created.

--临时表空间
SQL> CREATE SMALLFILE TEMPORARY TABLESPACE "DMHS_TMP" TEMPFILE '/oradata/ORCL/dmhs_tmp01.dbf' SIZE 20M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

Tablespace created.
sqlplus sys/oracle@orclpdb1 as sysdba
--在PDB数据库创建DMHS表空间(所有pdb都要执行,以orclpdb1为例)
--基本表空间
SQL> CREATE SMALLFILE TABLESPACE "DMHS" DATAFILE '/oradata/ORCL/orclpdb1/dmhs01.dbf' SIZE 20M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

Tablespace created.

--临时表空间
SQL> CREATE SMALLFILE TEMPORARY TABLESPACE "DMHS_TMP" TEMPFILE '/oradata/ORCL/orclpdb1/dmhs_tmp01.dbf' SIZE 20M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

Tablespace created.
--在CDB数据库下创建用户
SQL> CREATE USER "C##DMHS"  IDENTIFIED BY "dmhs123" DEFAULT TABLESPACE "DMHS" TEMPORARY TABLESPACE "DMHS_TMP";

User created.

SQL> GRANT CONNECT, RESOURCE, CREATE SESSION,CREATE ANY TABLE,CREATE ANY VIEW ,SELECT ANY TABLE,SELECT ANY DICTIONARY,LOCK ANY TABLE TO C##DMHS;

Grant succeeded.

SQL> GRANT EXECUTE ON DBMS_JOB TO C##DMHS;

Grant succeeded.

SQL> GRANT DEBUG CONNECT SESSION TO C##DMHS;

Grant succeeded.

SQL> GRANT DBA TO C##DMHS;

Grant succeeded.

SQL> GRANT EXECUTE ANY PROCEDURE TO C##DMHS WITH ADMIN OPTION;

Grant succeeded.

SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO C##DMHS;

Grant succeeded.

6)配置源端DDL支持

在cdb和pdb中执行ddl_sql_ora.sql脚本

注:此脚本需要在PLSQL Developer工具中执行,如果使用命令行执行脚本的话,会有Warning: Trigger created with compilation errors.警告提示。因为触发器引用的参数是空值,所以编译时有问题;

在cdb和pdb中执行grant_dmhs.sql脚本

注:两个脚本需要依次执行

4、目标端DM环境配置

1)初始化数据库

dminit path=/dmdata CASE_SENSITIVE=1 CHARSET=1 SYSDBA_PWD=SYSDBA

注:目标端数据库字符集和源端一样,如果源端是oracle,目标端建议开启大小写敏感,如果源端还是mysql和sql server,目的端开启大小写不敏感。

2)配置兼容性参数

SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',2);

3)开启归档

[root@DM8_DMHS bin]# ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 0.993(ms)
disql V8
SQL> select arch_mode from v$database;

行号     ARCH_MODE
---------- ---------
1          Y

已用时间: 1.277(毫秒). 执行号:700.

4)开启逻辑日志

SQL> SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';

行号     PARA_VALUE
---------- ----------
1          0

已用时间: 2.412(毫秒). 执行号:701.
SQL> SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',1);
DMSQL 过程已成功完成
已用时间: 3.291(毫秒). 执行号:702.
SQL> SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';

行号     PARA_VALUE
---------- ----------
1          1

已用时间: 2.423(毫秒). 执行号:703.

5)新建dmhs数据库用户

--创建表空间
SQL> create tablespace "DMHS" datafile '/dmdata/DAMENG/DMHS01.DBF' size 32 autoextend on maxsize 16777215 CACHE = NORMAL;
操作已执行
已用时间: 133.347(毫秒). 执行号:701.

--创建用户
SQL> create user "DMHS" identified by "dmhs123456" hash with SHA512 password_policy 2
2   encrypt by "dmhs123456"
3   limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10
4   default tablespace "DMHS"
5   default index tablespace "DMHS";
操作已执行
已用时间: 98.635(毫秒). 执行号:702.

6)授权dmhs用户

SQL> grant "DBA","PUBLIC","VTI","SOI" to "DMHS";
操作已执行
已用时间: 2.128(毫秒). 执行号:703.
SQL> grant CREATE SESSION to "DMHS";
操作已执行
已用时间: 1.730(毫秒). 执行号:704.

7)配置业务用户

SQL> create user "SCOTT" identified by "dmhs123456" hash with SHA512 password_policy 2
2   encrypt by "dmhs123456"
3   limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10
4   default tablespace "MAIN"
5   default index tablespace "MAIN";
操作已执行
已用时间: 2.787(毫秒). 执行号:705.
SQL> grant "DBA","PUBLIC","VTI","SOI" to "SCOTT";
操作已执行
已用时间: 1.817(毫秒). 执行号:706.
SQL> grant CREATE SESSION to "SCOTT";
操作已执行
已用时间: 0.978(毫秒). 执行号:707.

三、安装部署运维管理平台和DMHS

1、部署运维管理平台

运维管理平台需先配置好操作系统,再安装DMHS软件,DMHS运维管理平台内置库默认使用DM7数据库,本文使用DM8数据库作为内置数据库。

1)上传安装包和dmhs.key到/root/soft

2)授予安装文件执行权限

[root@bogon soft]#
chmod -R 775 dmhs_V4.1.2_pack3_dm8_rev100999_rh6_64_veri_20210729.bin

3)部署hsem

[root@bogon soft]# ./dmhs_V4.1.2_pack3_dm8_rev100999_rh6_64_veri_20210729.bin -i
Extract install files..........

1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:2
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/root/soft/dmhs.key
Key文件限制信息如下:
有效日期:2022-06-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:3
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件客户端
4.内置数据库
5.ODBC驱动
6.实时同步软件配置助手
7.手册
输入选择安装组件的序号,以','分隔:3,4
1.实时同步软件客户端
2.内置数据库
所需磁盘空间:604 MB
安装目录: [/opt/dmhs]
该路径不为空,是否继续安装?[Y or N]Y
安装路径可能存在覆盖安装
正在安装
default start ...    default finished.
webmanager start ...    webmanager finished.
db start ...    db finished.
doc start ...    doc finished.
postinstall start ...    postinstall finished.
正在创建快捷方式
安装成功
内置数据库服务
1.自动
2.手动
启动方式:[2.手动]
正在创建内置数据库服务
初始化内置数据库
web服务
1.自动
2.手动
启动方式:[2.手动]
正在创建web服务
正在启动服务 DmServiceHSDB
正在启动服务 DmhsWebService
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/opt/dmhs/log/install.log

4)升级HSEM内置库为DM8数据库

[root@bogon db]# mv bin bin_bak
[root@bogon db]# mv data data_bak
[root@bogon db]# mkdir ./{bin,data}
[root@bogon db]# ls
bin  bin_bak  data  data_bak  log
[root@DM8_DMHS bin]#
scp -r /opt/dmdbms/bin/* root@172.16.25.168:/opt/dmhs/db/bin/
[root@bogon db]# cp bin_bak/Dm* ../bin

注:可以从安装有DM8的服务器scp配置文件。

5)初始化HSEM内置数据库

[root@bogon bin]# pwd
/opt/dmhs/db/bin
[root@bogon bin]# ./dminit path=/opt/dmhs/db/data PAGE_SIZE=16 INSTANCE_NAME=HSDB PORT_NUM=15236
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2022-03-12
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /opt/dmhs/db/data/DAMENG/DAMENG01.log


 log file path: /opt/dmhs/db/data/DAMENG/DAMENG02.log

write to dir [/opt/dmhs/db/data/DAMENG].
create dm database success. 2021-08-18 10:46:14

a.如果使用脚本启动,需要修改配置文件内容

[root@192 bin]# pwd
/opt/dmhs/bin
[root@192 bin]# vim DmServiceHSDB

DMHS实时同步软件搭建Oracle19c-DM8_第1张图片
6)元数据库准备
选择一个 DM8 数据库作为 DMHS 管理平台的后台数据库,然后在该数据库中执行 dmhs_manager.sql 来创建元数据,dmhs_manager.sql 脚本在 /opt/dmhs/web/webapps/manager/sql 目录里。

注:这个脚本在/opt/dmhs/scripts目录下也有;在manager.war解压后也有此脚本,此脚本需执行最新的,如果执行之前的,会有“获取job配置失败!”的报错。

DMHS实时同步软件搭建Oracle19c-DM8_第2张图片

DMHS实时同步软件搭建Oracle19c-DM8_第3张图片
7)登录管理端
在浏览器中输入:http://172.16.25.168:8080/manager/,账户名:admin,密码:888888
DMHS实时同步软件搭建Oracle19c-DM8_第4张图片
DMHS实时同步软件搭建Oracle19c-DM8_第5张图片

2、部署源端DMHS

1)添加dmhs用户

[root@Oracle ~]# useradd -g oinstall -G oinstall -d /home/dmhs -s /bin/bash dmhs

2)设置密码

[root@Oracle ~]# echo dmhs123 | passwd --stdin dmhs
更改用户 dmhs 的密码 。
passwd:所有的身份验证令牌已经成功更新。

3)上传安装包和dmhs.key到/home/dmhs/soft

4)授予安装文件执行权限

[root@Oracle soft]# chmod 775 dmhs_V4.1.2_pack3_oracle12_rev100999_rh6_64_veri_20210729.bin

5)部署实时同步软件

[dmhs@Oracle soft]$ ./dmhs_V4.1.2_pack3_oracle12_rev100999_rh6_64_veri_20210729.bin -i
Extract install files..........

1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:2
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/home/dmhs/soft/dmhs.key
Key文件限制信息如下:
有效日期:2022-06-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:1
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件配置助手
4.手册
所需磁盘空间:536 MB
安装目录: [/home/dmhs/dmhs]/opt/dmhs
该路径不为空,是否继续安装?[Y or N]Y
安装路径可能存在覆盖安装
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start ...    default finished.
server start ...    server finished.
hs_agent start ...    hs_agent finished.
hsca start ...    hsca finished.
doc start ...    doc finished.
postinstall start ...    postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[192.168.146.177](192.168.146.177,172.16.25.166):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[]:172.16.25.168
内置数据库端口[15236](1000-65535):
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:/u01/app/oracle/product/19.0.0/dbhome_1/lib
Oracle字符集
提示:注意此处配置为ORACLE数据库的NLS_LANG,此配置项由源端数据库字符集编码格式决定,需与源端字符集编码适配。
1.SIMPLIFIED CHINESE_CHINA.ZHS32GB18030
2.SIMPLIFIED CHINESE_CHINA.AL32UTF8
3.TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5
4.TRADITIONAL CHINESE_TAIWAN.AL32UTF8
5.AMERICAN_AMERICA.AL32UTF8
6.AMERICAN_AMERICA.WE8ISO8859P1
7.AMERICAN_AMERICA.WE8ISO8859P15
8.AMERICAN_AMERICA.ZHS16GBK
9.不设置
请配置Oracle字符集[9.不设置]:5
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/opt/dmhs/log/install.log

注:标红色的都需要根据生产环境填写

6)启动hs_agent

[dmhs@Oracle hs_agent]$ pwd
/opt/dmhs/hs_agent
[dmhs@Oracle hs_agent]$ ./DmhsAgentServiceHsAgent start
Starting DmhsAgentServiceHsAgent:                          [ OK ]
[dmhs@Oracle hs_agent]$ cat dmhs_agent.xml 
<?xml version="1.0" encoding="GB2312"?>

<hs_agent>
    <lsn_port>5456</lsn_port>
    <name>HsAgent</name>
    <server_ip>172.16.25.166</server_ip>
    <status_interval>3</status_interval>
    <status_server>172.16.25.168</status_server>
    <status_port>15236</status_port>
    <status_user>SYSDBA</status_user>
    <status_pwd>SYSDBA</status_pwd>
    <dmhs_support>1</dmhs_support>
    <veri_support>1</veri_support>
    <lang>ch</lang>
</hs_agent>

注:172.16.25.166这行配置文件,IP指的是本机IP,刚开始IP是外网的IP,我手动修改成了内网IP。

7)在web端检查服务
DMHS实时同步软件搭建Oracle19c-DM8_第6张图片
8)使用dmhs用户上传dmoci文件到/opt/dmhs/bin目录下

注:dmoci压缩包解压后上传,上传的过程中可能有的已经存在,选择跳过。如果不上传dmoci文件,后面启动start exec时会报错:

2022-08-31 16:53:57 CSL[INFO]: [INPUT CMD: start exec]
2022-08-31 16:53:57 MGR[INFO]: 正在加载执行模块...
2022-08-31 16:53:57 MGR[ERROR]: 库文件 libdmhs_exec.so 未找到, 出错: 0, libdmoci.so: cannot open shared object file: No such file or directory
2022-08-31 16:53:57 MGR[ERROR]: 日志执行启动失败
2022-08-31 16:53:57 CSL[ERROR]: 加载执行模块失败

9)修改dmhs环境变量

[dmhs@Oracle ~]$ pwd
/home/dmhs
[dmhs@Oracle ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .kshrc  soft  .viminfo  达梦数据实时同步软件V4.0
[dmhs@Oracle ~]$ 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/.local/bin:$HOME/bin

export PATH

PS1=[`whoami`@`hostname`:'$PWD]$ ';  export PS1
TMP=/tmp;  export  TMP
TMPDIR=$TMP;  export TMPDIR

ORACLE_BASE=/u01/app/oracle;  export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1;  export ORACLE_HOME
ORACLE_SID=orcl;    export ORACLE_SID
ORACLE_TERM=xterm;  export ORACLE_TERM
DMHS_HOME=/opt/dmhs;  export DMHS_HOME

PATH=/usr/sbin:/usr/local/bin:$PATH:$ORACLE_HOME/bin:$PATH;   export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/dmhs/bin:$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;  export  CLASSPATH

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;  export  NLS_LANG
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

注:添加LD_LIBRARY_PATH,根据实际环境添加。

3、部署目标端DMHS

1)检查挂载点

[root@DM8_DMHS ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 898M     0  898M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M  9.6M  901M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   50G  4.7G   46G   10% /
/dev/mapper/centos-home   47G   33M   47G    1% /home
/dev/sda1               1014M  150M  865M   15% /boot
tmpfs                    182M     0  182M    0% /run/user/0
[root@DM8_DMHS ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Thu Apr  8 00:06:14 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=f9838517-e72f-4151-8cb0-c2852a90d060 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

2)添加dmhs用户

[root@DM8_DMHS ~]# useradd -g dinstall -G dinstall -d /home/dmhs -s /bin/bash dmhs

3)设置密码

[root@DM8_DMHS ~]# echo dmhs123 | passwd --stdin dmhs
更改用户 dmhs 的密码 。
passwd:所有的身份验证令牌已经成功更新。

4)上传安装包和dmhs.key到/home/dmhs/soft

5)授予安装文件执行权限

[dmhs@DM8_DMHS soft]$ chmod -R 775 dmhs_V4.1.2_pack3_dm8_rev100999_rh6_64_veri_20210729.bin

6)部署实时同步软件

[dmhs@DM8_DMHS soft]$ ./dmhs_V4.1.2_pack3_dm8_rev100999_rh6_64_veri_20210729.bin -i
Extract install files..........

1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:2
/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/home/dmhs/soft/dmhs.key
Key文件限制信息如下:
有效日期:2022-06-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:1
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件配置助手
4.手册
所需磁盘空间:530 MB
安装目录: [/home/dmhs/dmhs]/opt/dmhs
该路径不为空,是否继续安装?[Y or N]Y
安装路径可能存在覆盖安装
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:
正在安装
default start ...    default finished.
server start ...    server finished.
hs_agent start ...    hs_agent finished.
hsca start ...    hsca finished.
doc start ...    doc finished.
postinstall start ...    postinstall finished.
正在创建快捷方式
安装成功
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[192.168.146.167](192.168.146.167,172.16.25.167):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[]:172.16.25.168
内置数据库端口[15236](1000-65535):
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:/opt/dmdbms/bin
远程控制服务
1.自动
2.手动
启动方式:[2.手动]
正在创建远程控制服务
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/opt/dmhs/log/install.log

7)启动hs_agent

[dmhs@DM8_DMHS hs_agent]$ pwd
/opt/dmhs/hs_agent
[dmhs@DM8_DMHS hs_agent]$ ./DmhsAgentServiceHsAgent start
Starting DmhsAgentServiceHsAgent:                          [ OK ]
[dmhs@DM8_DMHS hs_agent]$ cat dmhs_agent.xml 
<?xml version="1.0" encoding="GB2312"?>

<hs_agent>
    <lsn_port>5456</lsn_port>
    <name>HsAgent</name>
    <server_ip>172.16.25.167</server_ip>
    <status_interval>3</status_interval>
    <status_server>172.16.25.168</status_server>
    <status_port>15236</status_port>
    <status_user>SYSDBA</status_user>
    <status_pwd>SYSDBA</status_pwd>
    <dmhs_support>1</dmhs_support>
    <veri_support>1</veri_support>
    <lang>ch</lang>
</hs_agent>

注:172.16.25.167这行配置文件,IP指的是本机IP,刚开始IP是外网的IP,我手动修改成了内网IP。

8)在web端检查服务
DMHS实时同步软件搭建Oracle19c-DM8_第7张图片
9)使用dmhs用户上传dmoci文件到/opt/dmhs/bin目录下

注:dmoci压缩包解压后上传,上传的过程中可能有的已经存在,选择跳过。

4、添加DMHS实例

1)在目的端创建DMHS实例
a.右键hsAgent(172.16.25.167)Guard 节点右键菜单添加 HS 实例,将弹出添加 DMHS 实例对话框
DMHS实时同步软件搭建Oracle19c-DM8_第8张图片
DMHS实时同步软件搭建Oracle19c-DM8_第9张图片

注:实例名称可以任意填写,实例较多的话,按照业务用户名称填写。 其他选项参照填写内容填写。 文档参考《DMHS管理平台用户手册》

b.启动DMHS_DM8实例
在 DMHS 实例节点右键菜单点击启动,将启动当前 DMHS 实例服务。
DMHS实时同步软件搭建Oracle19c-DM8_第10张图片
DMHS实时同步软件搭建Oracle19c-DM8_第11张图片
c.启动exec执行模块
在模块节点右键菜单点击启动将运行对应的模块,exec 模块节点右键菜单点击启动将启动 exec 模块。
DMHS实时同步软件搭建Oracle19c-DM8_第12张图片

2)在源端创建DMHS实例
a.右键hsAgent(172.16.25.166)Guard 节点右键菜单添加 HS 实例,将弹出添加 DMHS 实例对话框
DMHS实时同步软件搭建Oracle19c-DM8_第13张图片
b.修改过滤规则和映射规则,并保存
DMHS实时同步软件搭建Oracle19c-DM8_第14张图片

注:此处的映射规则我选择的是模糊规则

c.启动DMHS_ORCL实例
在 DMHS 实例节点右键菜单点击启动,将启动当前 DMHS 实例服务。
DMHS实时同步软件搭建Oracle19c-DM8_第15张图片

d.加载数据字典

[dmhs@Oracle:/opt/dmhs/INST_HS/DMHS_ORCL]$ ./dmhs_console 
DMHS console tool: V4.1.2_pack3-Build(2021.07.27-100999trunc)_D64
Copyright (c) 2020, DMHS. All rights reserved.
Type ? or "help" for help, type "quit" to quit console.

Connected to DMHS: 127.0.0.1:5345
execute success
Dameng HS Server V4.1.2_pack3-Build(2021.07.27-100999trunc)_D64

DMHS> clear exec lsn  
execute success

DMHS> load 0 "sch.name='SCOTT'" LSN|DICT|PDB|"ORCLPDB1"
CSL[WARN]: Detect the LSN mask, the mask will be ignored in the log is less than the current LSN all operations, please confirm whether to continue?(Y/N)
Y
copy mask is : |DICT|LSN|PARTITION|REP
execute finish, please look up log file of exec module to check data load result

DMHS> 
DMHS> load 0 "sch.name='SCOTT'" CREATE|INSERT|INDEX|PDB|"ORCLPDB1"   
copy mask is : |CREATE|INSERT|INDEX|TABLE|PARTITION|OBJID|REP
执行完成,请查看执行模块日志,检查数据装载是否成功

DMHS> start cpt
execute success

注:执行clear exec lsn命令报错

DMHS实时同步软件搭建Oracle19c-DM8_第16张图片

解决办法:查看日志发现有关于时间的报错,排查系统时间和硬件时间发现不一致,首先设置系统时间与网络时间同步,然后执行hwclock
–systohc命令,将系统时间写入硬件时间。

5、测试数据同步和DDL操作

1)查看目的端数据
DMHS实时同步软件搭建Oracle19c-DM8_第17张图片
2)源端创建新表

CREATE TABLE EMP_BAK AS SELECT * FROM EMP WHERE 1=2;

3)目的端验证新表是否存在
DMHS实时同步软件搭建Oracle19c-DM8_第18张图片
4)源端插入数据

insert into emp_bak select * from emp;

commit;

5)目的端查看数据
DMHS实时同步软件搭建Oracle19c-DM8_第19张图片

6、运维管理

1)启动顺序
目的端exec>目的端hs-->源端hs—>源端cpt

2)停止顺序
源端cpt-->源端hs -->目的端exec>目的端hs 

四、配置数据对比链路

1、查看链路状态

DMHS实时同步软件搭建Oracle19c-DM8_第20张图片

2、点击数据对比

DMHS实时同步软件搭建Oracle19c-DM8_第21张图片
1)在目的端DM部署Veri客户端
选择目的端DM部署Veri
DMHS实时同步软件搭建Oracle19c-DM8_第22张图片

根据需要比对的业务表,进行数据比对。

五、数据比对过程中常见报错总结

1、第一种报错,获取数据库模式失败

DMHS实时同步软件搭建Oracle19c-DM8_第23张图片
DMHS实时同步软件搭建Oracle19c-DM8_第24张图片

2、第二种报错,获取数据库模式失败

DMHS实时同步软件搭建Oracle19c-DM8_第25张图片
解决方案:
一、在目的端DM安装Oracle odbc客户端

1、配置Oracle ODBC客户端;

[root@DM8_DMHS admin]# pwd
/usr/lib/oracle/19.12/client64/lib/network/admin

[root@DM8_DMHS admin]# cat tnsnames.ora 
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.25.166)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

2、安装UnixODBC软件

yum -y install unixODBC

3、配置unixodbc客户端

[root@DM8_DMHS ~]# cat /etc/odbc.ini 
[ORACLE]
Description = ORACLE ODBC DSN
Driver = Oracle in OraDB12home1
SERVER = 172.16.25.166
PORT = 1521
UID = c##dmhs
PWD = dmhs123
ServerName = orcl

[DM8]
Description = DM8 ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = 172.16.25.167
TCP_PORT = 5236
UserName = dmhs
Password = dmhs123456
[root@DM8_DMHS ~]# cat /etc/odbcinst.ini 
[Oracle in OraDB12home1] 
Description = ODBC DRIVER FOR ORACLE
Driver = /usr/lib/oracle/19.12/client64/lib/libsqora.so.19.1
Threading = 0

[DM8 ODBC DRIVER]
Description = ODBC for DM8
Driver = /opt/dmdbms/bin/libdodbc.so
Threading = 0

至此,Oracle19c-DM8的DMHS实时同步软件部署完成!

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