达梦DMHS双机数据实时同步实验

一、DMHS介绍

达梦数据实时同步软件,简称 DMHS,是支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。该产品采用基于日志的结构化数据复制技术,不依赖主机上源数据库的触发器或者规则,对主机源数据库系统几乎无影响,能以极少的系统开销实现秒级数据实时同步复制。

DMHS 基于成熟的关系数据模型和标准接口,支持多种软硬件平台,能够灵活的配置出一对一、一对多、多对一、多对多以及级联等多种形式的复制拓扑结构,可以广泛应用于应急系统、容灾备份、负载均衡、数据移植、联机维护、订阅分发、多业务中心等业务领域。目前支持多种异构数据平台,可以根据用户需求采用非常灵活的方式配置出各种拓扑结构。 目前,源数据库可支持 DM 各系列、Oracle9i、Oracle10g、Oracle11g、Oracle12c、ORACLE RAC 集群、DB2、PostgreSQL、MySQL 等。目的数据库支持具有 ODBC 标准接口实现的各种主流关系数据库管理系统,目前适配过的数据库有 DM 各系列、DM 集群、Oracle9i、Oracle10g、Oracle11g、Oracle12c、ORACLE RAC 集群、DB2、Sybase、SQLServer、PostgreSQL、MySQL 等。

二、实验环境

首先准备Vmware 虚拟机RedHat6 2台,分别安装DM7数据库以及DMHS实时同步软件(DMHS 支持多种计算机操作系统平台,支持 Windows 系列、Linux 系列、IBM AIX、HP-UNIX 系列、Solaris 系列、国产操作系统 Kylin、Rocky 等 32 位和 64 位操作系统,具体可以根据自己环境需要做选择)。
源端:192.168.134.138
目的端:192.168.134.141
DM7数据库账号密码端口均为默认,SYSDBA/SYSDBA@LOCALHOST:5236
DM7安装目录/dm/,属主属组为 dmdba:dinstall
DMHS元数据库默认用户密码及端口,SYSDBA/SYSDBA@LOCALHOST:15236
DMHS安装目录/opt/dmhs,属主属组为 dmdba:dinstall

三、实验步骤

1、安装DM7数据库
该步骤算是入门DM数据库的基础,在此不作赘述,若不了解安装步骤,可以参考官方安装文档,按照步骤安装完毕即可

安装前准备 | 达梦技术文档

根据上面安装完数据库,需要注意:

* 必须开启归档日志功能----DMHS实时同步,主要是基于归档日志实现:
设置归档有多种方式,修改配置文件dm.ini参数,再编写arch.ini配置文件;另一种则是执行sql开启归档,这里介绍SQL开启归档方式,具体执行SQL如下:

ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm/arch,TYPE=LOCAL,FILE_SIZE=256,SPACE_LIMIT=204800';
ALTER DATABASE OPEN;

SQL参数解析:
DEST:归档日志具体存储路径;
TYPE:归档日志类型,有联机归档和本地归档,默认本地归档,即归档日志存储在本机;
FILE_SIZE:归档日志文件大小,单位M;
SPACE_LIMIT:归档日志空间限制,参数为0即为不限制空间,单位M;

归档日志相关参数配置:

sp_set_para_value(2,'RLOG_APPEND_LOGIC',1);
sp_set_para_value(2,'RLOG_APPEND_SYSTAB_LOGIC',0);

参数解析:
RLOG_APPEND_LOGIC:1代表如果有主键列,记录UPDATE和DELETE操作时只包含主键列信息,若没有主键列则包含所有列信息;2代表不论是否有主键列,记录UPDATE和DELETE操作时都包含所有列的信息;

RLOG_APPEND_SYSTAB_LOGIC:是否启用在日志中记录系统表逻辑操作功能。该参数默认取值为0,即不启用;设置为1时,启用该功能,该参数需要RLOG_APPEND_LOGIC启用后生效;

重启数据库查看确认是否生效:
select para_value from v$dm_ini where para_name in ('RLOG_APPEND_LOGIC','RLOG_APPEND_SYSTAB_LOGIC');

2、安装DMHS

安装DMHS和安装DM数据库方式基本类似,可以图形化安装,注意源端目的端节点均需要安装DMHS软件(安装DMHS的机器,至少需要能够访问源端目的端数据库,实际上DMHS软件也可以安装在不同机器)

3、配置代理,访问管理平台
修改配置文件,设置代理/opt/dmhs/hs_agent/dmhs_agent.xml,目前我的个人实验,想在192.168.134.138机器上通过管理平台管控配置同步任务,设置如下:
status_server:改成需要用浏览器加载源端目的端hs_agent服务节点的地址

安装完毕DMHS软件后,到代理机器访问管理平台,默认账号密码admin/888888

4、配置目的端exec执行器,启动exec模块

先启动hs_agent服务,后启动exec模块,页面上 右键--启动,即可启动相关服务以及模块

exec功能模块另一种启动方式,是到DMHS安装目录下tool子目录,先页面启动hs_agent服务,然后执行命令:
./dmhs_console
conn $ip:$port(ip即为安装dmhs软件,并创建exec执行器或cpt捕获器的主机ip地址,端口默认是5345,创建exec捕获器执行器那些的时候可以指定端口)
start exec

5、配置源端cpt捕获器

方式同上,具体配置cpt截图如下:

6、源端初始化装载数据,然后再启动相关模块

cd /opt/dmhs/tool/
./dmhs_console
COPY 0 "SCH.NAME='SYSDBA'" CREATE|INSERT
start cpt

或者在管理平台页面右键启动模块亦可。

7、源端插入数据测试

 从上面截图可以看到:源端192.168.134.138插入一条数据后,目的端192.168.134.141立即可以查询到该数据,即实现了数据实时同步。

四、实验中遇到的问题

目的端启动exec模块以及源端启动cpt模块报错


模块报错,从页面上没有看到详细报错说明,要解决该问题,我们需要查询对应模块记录日志:
研究了一下dmhs的安装目录,发现我们每个创建的模块,都有对应的日志目录
具体路径为:$安装目录/INST_HS/$HS实例名/log/dmhs*.log(HS实例名即创建执行器、捕获器时的命名)
该示例详细路径为 /opt/dmhs/INST_HS/tar_exec/log/dmhs_202111.log 

cat查询该日志内容,发现有乱码

直接上传到本机上面打开日志发现具体报错提示so动态链接库文件缺失:

find / -name 'libdmhs_exec.so',发现这个文件存在

ldd libdmhs_exec.so

查询该动态链接库的依赖,发现缺失依赖文件
libdodbc.so => not found
libdmoci.so => not found

[root@localhost tar_exec]# ldd  libdmhs_exec.so
	linux-vdso.so.1 =>  (0x00007fffd9bff000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fb2ec92e000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fb2ec6a9000)
	librt.so.1 => /lib64/librt.so.1 (0x00007fb2ec4a1000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb2ec285000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fb2ec080000)
	libdmhs_pub.so => ./libdmhs_pub.so (0x00007fb2ebd51000)
	libdmhs_ucvt.so => ./libdmhs_ucvt.so (0x00007fb2eb7f6000)
	libdmhs_dm_obj.so => ./libdmhs_dm_obj.so (0x00007fb2eb5e0000)
	libdmhs_cvt.so => ./libdmhs_cvt.so (0x00007fb2eb355000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003e8f400000)
	libdodbc.so => not found
	libdmhs_exp.so => ./libdmhs_exp.so (0x00007fb2eaf7f000)
	libdmhs_xml.so => ./libdmhs_xml.so (0x00007fb2ead70000)
	libdmoci.so => not found

然后在本机上find / -name 'libdmoci.so' 发现的确没有该文件,说明该问题根源,就是动态链接库文件缺失导致。

关于 libdodbc.so 和 libdmoci.so 文件,都是达梦的odbc文件,相关文件已上传到下面链接地址,解压后,把所有文件直接拷贝到DM7数据库安装目录的bin目录下,再重新执行加载模块命令,问题解决。

dm7_20210122_x86_rh6_64_ent_7.6.1.88_dmdci.zip-其它文档类资源-CSDN下载

更多关于DMHS内容,可以参考达梦官网学习:

DM 数据库快速上手指南 | 达梦技术文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值