达梦数据库DMHS介绍及安装部署

发布于:2025-07-05 ⋅ 阅读:(23) ⋅ 点赞:(0)

目录

概述

安装规划

安装步骤

上传安装包

更改权限

执行安装命令

源端和目的端处理

开启归档

开启逻辑日志

 创建测试表

生成测试数据

 配置目的端文件

配置源端文件

 启动目的端

启动源端

装载数据

 源端开启cpt模块

 数据同步验证

随机数据验证 


概述

达梦数据实时同步软件(DMHS)是支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。该产品采用基于日志的结构化数据复制技术,不依赖主机上源数据库的触发器或者规则,对主机源数据库系统几乎无影响,能以极少的系统开销实现秒级数据实时同步复制。DMHS基于成熟的关系数据模型和标准接口,支持多种软硬件平台,能够灵活的配置出一对一、一对多、多对一、多对多以及级联等多种形式的复制拓扑结构,可以广泛应用于应急系统、容灾备份、负载均衡、数据移植、联机维护、订阅分发、多业务中心等业务领域。

安装规划

在源端和目的端进行单向数据同步安装,源端IP192.168.153.130,目的端IP192.168.153.131

安装步骤

上传安装包

DMHS安装包上传至虚拟机(本次上传路径为/opt目录下,源端和目的端都要上传)

更改权限

采用root用户执行下面的命令:

chown -R dmdba:dinstall /opt

chmod -R 755 /opt

切换至dmdba用户

su dmdba

执行安装命令

使用dmdba用户执行下面的安装命令(-i为命令行安装的方式,源端和目的端都需要进行安装)

./dmhs_V4.3.36_dm8_rev181880_rh6_64_20250218_sp3.bin -i

语言选择:选择2简体中文

 

选择1免费试用达梦数据实时同步

选择2安装完整版

选择安装目录(本次默认安装目录,直接回车即可)

这里选择统一部署

远程部署工具名称默认即可

主机IP通过ifconfig查看后输入本机可被访问的IP地址即可

web服务内置库默认即可

依赖库路径选择dm数据库安装目录下的bin目录和dmhs安装目录下的bin目录,中间用:隔开

/home/dmdba/dmdbms/bin:/home/dmdba/dmhs/bin 

 

所有的服务选择手动启动,至此dmhs安装完成,安装路径为/home/dmdba/dmhs

源端和目的端处理

开启归档

源端和目的端使用管理工具或disql登录数据库,执行下面的命令(路径更换为自己的路径即可)开启归档

ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG ;
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL, DEST = /dmdata/arch, file_size=128, space_limit=1024';
ALTER DATABASE OPEN ;

 验证归档是否开启:

select para_value from v$dm_ini where para_name in ('ARCH_INI');

结果显示为1,表示开启归档

开启逻辑日志

源端和目的端采用下面的命令开启逻辑日志

SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',1);

 验证逻辑日志是否开启

select para_value from v$dm_ini where para_name in ('RLOG_APPEND_LOGIC');

结果显示为1表示开启逻辑日志

 创建测试表

在源端SYSDBA模式下新建一张测试表,字段如下:

create table EMPLOYEES
(
         EMPLOYEEID INT not null, //非空 主键,自增列
         NATIONALNO VARCHAR(18) not null, //非空 身份证号码
         PERSONID INT not null, //非空 指向 PERSON.PERSONID 的外键
         LOGINID VARCHAR(256) not null, //非空 用户登录 ID
         TITLE VARCHAR(50) not null,// 非空 职位
         MANAGERID INT, //空
         BIRTHDATE DATE not null, //非空 出生日期
         MARITALSTATUS CHAR(1) not null,// 非空 S=未婚 M=已婚
         PHOTO IMAGE,// 空 照片
         HAIRDATE DATE not null, //非空 入职时间
         SALARY DEC(19,4) not null
);

生成测试数据

利用sqlark工具生成1万条测试数据

 配置目的端文件

在目的端DMHS安装目录下的bin目录下,新建dmhs.hs配置文件

内容如下:

<?xml version="1.0" encoding="GB2312"?>
<dmhs>
 <base>    <!-- 管理模块的基本配置 -->
    <lang>en</lang>    <!-- 语言选项,ch 为中文,en 为英文 -->
    <mgr_port>5345</mgr_port>    <!-- 管理端口号,默认为5345-->
    <ckpt_interval>60</ckpt_interval>    <!-- 检查点间隔,默认60 -->
    <siteid>2</siteid>    <!-- 站点ID,这个ID配置时要注意,全局唯一,最小值0,最大值65535 -->
    <version>2.0</version>
</base>
<exec>    <!-- 执行模块的基本配置 -->
  <recv>
    <data_port>5346</data_port>    <!-- 当数据传递采用网络直连时,需要配置该参数,表明同步数据从该端口号获取。 -->
  </recv>
  <db_type>dm8</db_type>    <!-- 目标端数据库类型 -->
  <db_server>192.168.153.131</db_server>    <!-- 目标端数据库服务名或IP -->
  <db_user>SYSDBA</db_user>    <!-- 目标端数据库用户 -->
  <db_pwd>DMwzy6870</db_pwd>    <!-- 用户的密码 -->
  <db_port>5236</db_port>    <!-- 目标端数据库端口 -->
  <db_name></db_name>    <!-- 默认数据库名,默认为空串(只针对dm6有用)-->
  <char_code>PG_GB18030</char_code>
  <exec_thr>4</exec_thr>    <!-- 执行线程个数,只有当 exec_mode 为 1 时才会生效!默认为1 -->
  <exec_sql>1024</exec_sql>    <!-- SQL 缓存大小,默认为 512M -->
  <exec_trx> 5000 </exec_trx>    <!-- 事务缓存个数,默认为 5000 -->
  <exec_rows>1000</exec_rows>    <!-- 批量绑定行数,默认为 250 -->
 </exec>
</dmhs>

将目的端数据库的IP、端口号、用户名和密码修改为自己机器的即可,其他选项可默认

配置源端文件

在源端DMHS安装目录下的bin子目录,新建dmhs.hs配置文件

<?xml version="1.0" encoding="GB2312"?>
<dmhs>

 <base>
<lang>en</lang>
 <mgr_port>5345</mgr_port>
 <ckpt_interval>60</ckpt_interval>
 <siteid>1</siteid>
<version>2.0</version>
 </base>

 <cpt>
 <db_type>dm8</db_type>
 <db_server>192.168.40.141</db_server>
 <db_user>SYSDBA</db_user>
 <db_pwd>dameng123</db_pwd>
 <db_port>5236</db_port>
 <db_ssl_path></db_ssl_path>
 <db_ssl_pwd></db_ssl_pwd>
 <parse_thr>1</parse_thr>
 <ddl_mask>op:obj</ddl_mask> <!--DDL 配置项-->
 <arch><!--归档清理配置项-->
 <clear_interval>600</clear_interval>
 <clear_flag>0</clear_flag>
 </arch>
 <send><!-- 发送模块配置 -->
 <ip>192.168.40.142</ip>
 <mgr_port>5345</mgr_port>
 <data_port>5346</data_port>
 <trigger>1</trigger><!-- 是否忽略触发器,默认为 0,限定值 0,1 -->
 <constraint>1</constraint><!-- 是否忽略约束,默认为 0,限定值 0,1 -->
 <identity>1</identity>
 <net_turns>0</net_turns>
 <filter><!--过滤配置项-->
 <enable><!-- 白名单,所有允许同步的表 -->
<item>SYSDBA.*</item>
 </enable>
 </filter>

 <map><!--映射配置项-->
 <item>SYSDBA.*==SYSDBA.*</item>
 </map>

 </send>
 </cpt>
</dmhs>

将源端数据库的IP、端口号、用户名和密码修改为自己机器的即可,将发送模块配置下面的IP替换为目的端的IP即可,其他选项可默认,映射配置选项选择想要同步的模式和表即可

 启动目的端

在第一个终端bin目录下执行下面的命令:

./dmhs_server dmhs.hs

重新启动一个终端,在bin目录下执行下面的命令 

./dmhs_console 

随后执行start exec命令

 

第一个终端显示如下:

启动源端

在第一个终端bin目录下执行下面的命令:

./dmhs_server dmhs.hs

重新启动一个终端,在bin目录下执行下面的命令

./dmhs_console

 随后执行下面的命令初始化日志的起始位置

clear exec lsn

此处红色错误需要将源端dmhs.hs文件中的<ddl_mask>op:obj</ddl_mask> <!--DDL 配置项-->设置为<ddl_mask>0</ddl_mask> <!--DDL 配置项--> 

装载数据

在源端执行下面的命令进行数据装载

copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX

目的端数据装载过程展示:

数据装载成功:

源端数据装载展示:

 源端开启cpt模块

./dmhs_console启动的命令行中执行start cpt命令,即可实现数据同步

 数据同步验证

在源端的表中新生成1000条数据,验证目的端的数据条数

源端:

目的端:

随机数据验证 

在源端使用select * from sysdba.EMPLOYEES limit 1;查询一条语句,在目的端采用唯一标识select * from sysdba.employees where nationalno='sCk7Y1s9Tb9zLku'进行查询。查看两条数据是否一致。如下图所示,结果一致

至此,DMHS单向dm8-dm8搭建完成。

达梦社区地址:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台https://eco.dameng.com/


网站公告

今日签到

点亮在社区的每一天
去签到