(12)DMHS的部署实践

接着上一篇的理论学习,本文继续对DMHS的部署实践进行动手操作分享。DMHS是基于数据库日志,支持同构、异构数据库的实时同步软件,可以实现双业务中心架构。

一、DMHS软件部署说明

1.1 DMHS软件支持的平台及数据库

DMHS支持多种数据库同步。支持异构数据库(如 DM、MySQL、PostgreSQL、SQL Server、DB2、ORACLE)之间的数据同步,也支持上述数据库的数据向消息中间件(如 HIVE、KAFKA)或 DMETL 流转。

1.2 安装软件包的获取

可以联系达梦客服获取最新安装包。

1.3 本次部署环境涉及到的系统架构

1.3.1源端主要模块

CPT模块:日志捕获模块。通过解析源端数据库的交易日志,获取数据的增量变化,并将增量变化封装为DMHS消息。

NET模块:数据传输模块。源端为NET发送子模块将CPT捕获的数据发送给目标端NET接受子模块。

MGR模块:调度管理模块。负责调度CPT、NET模块等其他功能。

1.3.2目标端(或者执行端)主要模块

EXEC模块:数据入库。主要的功能是对CPT捕获的增量数据提取并进行事务归类入库。   

NET模块:数据传输模块。目标端为NET接收子模块接受源端传输过来的数据。

MGR模块:调度管理模块。负责调度EXEC、NET模块等其他功能。

扩展功能模块:guard进程守护(dmhs agent)、stat监控统计、数据比对校验工具、WEB管理平台。(本次实验环境未涉及扩展模块。)

DMHS 同步服务主要分为三大模块,分别是日志分析(CPT)、数据入库(EXEC)和消息发送(NET),这三个模块统一由管理模块(MGR)进行调度执行。

二、DMHS软件安装

2.1 部署环境需求

服务器

IP

操作系统

DB

HS版本

源端

192.168.1.9

Centos 8

DM8

dmhs_V4.1.2_dm8_rev100195_rh6_64_

veri_20210618_pack2.bin

目标端

192.168.1.10

内存方面

DMHS 需要的内存总量取决于执行的分析线程以及执行线程的并发数,最少需要 1G 内存。

磁盘方面

DMHS 安装文件占用 277M,包括了管理工具以及管理界面占用的空间,另外需要一些额外的空间存储 DMHS 运行的日志文件。

操作系统权限

在 Windows 安装时,安装和执行 DMHS 的用户必须是管理员身份;在 Linux 平台下安装,安装用户必须有权限读写 DMHS 安装目录,将涉及的数据库接口动态库添加到系统共享库环境变量中。

网络要求

    配置系统支持 TCP/IP 服务(DMHS 安装的所有机器必须配置主机名或者 IP地址)。 DMHS 需要使用以下 TCP/IP 端口:管理进程间通信的默认端口 5345;发送(源端)和执行(目的端)子系统之间通信的默认端口 5346;用户可以自行定义这些端口。如果有安全防护系统,请打开相应网络访问端口。

2.2 软件部署安装

DMHS软件部署前,请在源端和目的端分别安装好DM8数据库软件并进行数据库初始化,具体安装教程可以查看之前的部署实践。

(1)源端 数据库初始化

[dmdba@dsc1 ~]$ cd /dm8/dmdbms/bin

[dmdba@dsc1 bin]$./dminit PATH=/dmdata EXTENT_SIZE=32 PAGE_SIZE=16 LOG_SIZE=256 UNICODE_FLAG=1 SYSDBA_PWD=123456789 DB_NAME=hms INSTANCE_NAME=shms BUFFER=300

(12)DMHS的部署实践_第1张图片

(12)DMHS的部署实践_第2张图片

(2)目的端 数据库初始化

[dmdba@dsc2 ~]$ cd /dm8/dmdbms/bin

[dmdba@dsc2 bin]$ ./dminit PATH=/dmdata EXTENT_SIZE=32 PAGE_SIZE=16 LOG_SIZE=256 UNICODE_FLAG=1 SYSDBA_PWD=123456789 DB_NAME=hmt INSTANCE_NAME=shmt BUFFER=300

(12)DMHS的部署实践_第3张图片

(12)DMHS的部署实践_第4张图片

2.2.1 将安装包传到服务器上,给安装包赋权

chown -R dmdba:dinstall /dm8/dmhs/dmhs_V4.1.2_dm8_rev100195_rh6_64_veri_20210618_pack2.bin

chmod 755 /dm8/dmhs/dmhs_V4.1.2_dm8_rev100195_rh6_64_veri_20210618_pack2.bin

2.2.2 命令行方式安装

Linux平台:

图形界面安装:

./dmhs_V4.1.2_dm8_rev100195_rh6_64_veri_20210618_pack2.bin

命令行界面:

./dmhs_V4.1.2_dm8_rev100195_rh6_64_veri_20210618_pack2.bin -i

本次部署是 命令行方式安装。

大致过程如下:

(12)DMHS的部署实践_第5张图片

由于我们此次安装的是实验环境,所以 web管理平台的安装相关项不做特别说明和设置。

2.2.3 确认库文件的完整

安装过程中遇到libdmoci.so相关问题,从dmdci压缩包中复制到DMHS的bin目录,并赋予执行权限。

2.3 源端和目标端的数据库参数修改及配置

2.3.1 数据库归档和逻辑日志相关参数修改

以下修改在 源端 目标端 都要执行。

(1)vi dm.ini ;添加如下参数:

ARCH_INI = 1 #开启归档

RLOG_APPEND_LOGIC = 1 #开启逻辑附加日志

RLOG_APPEND_SYSTAB_LOGIC = 0 #注意:如果要执行DDL脚本,则此参数设置为0。详见2.3.2说明。

FAST_COMMIT = 0 #dm8默认是0;其他版本的DM库请自行修订该参数值。

(2)添加归档配置文件。在“dm.ini”同目录下创建文件“dmarch.ini”

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dmarch #归档目录

ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB

ARCH_SPACE_LIMIT = 0 #空间大小限制,0 表示不限

(3)启动数据库,验证配置的正确性:

SQL>SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE='LOCAL' AND ARCH_IS_VALID='Y';

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

SQL>SELECT PATH FROM SYS.V$RLOGFILE;

2.3.2 DDL同步触发器配置

    DDL同步支持2种配置方式。

(1):辅助表方式(推荐)

    如果要求 DDL 同步,那么需要创建 DDL 触发器和辅助表。创建的脚本参见 DMHS 安

装目录下 scripts 子目录中“ddl_sql_dm8.sql”。注意创建时需要使用 SYSDBA 用户。

(2)系统表日志方式(可根据需求来决定采用那种方法)

    另外一种方式同步 DDL:系统表附加日志的方式同步 DDL,该方式同步 DDL 时,只

能同步常规对象,如:table、index、constraint、trigger、procedure、function、view、sequence;对应的操作类型:create、drop、alter、truncate。同时,不支持分区表。

   系统表附加日志方式同步 DDL 的配置方法为:将 DM8 数据库的配置文件“dm.ini”中的“RLOG_APPEND_SYSTAB_LOGIC”设置为 1,再重启数据库实例即可。

    在此次试验中,我使用 SYSDBA 用户来执行DMHS 安装目录下scripts 子目录中“ddl_sql_dm8.sql”。由于本次实验是单项同步,因此只需要在源端节点执行即可。(如果是双向同步,则目标端与源端都需要执行该脚本)

操作步骤如下

    在源端服务器上,通过disql连接数据库:

start /dm8/dmhs/scripts/ddl_sql_dm8.sql

该脚本会在源端库新建9个表和4个触发器,可通过以下sql 检查是否成功

select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID';

select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';

(12)DMHS的部署实践_第6张图片

如果存在以上的查询结果,表示DMHS辅助表创建有效。

2.4 DMHS启动相关参数在源端和目标端的配置

2.4.1 DMHS单向同步配置dmhs.hs

在DMHS安装目录下的bin子目录,创建dmhs.hs配置文件:

(1)源端 dmhs.hs

vi /dm8/dmhs/bin/dmhs.hs

(具体配置项说明可参考DMHS安装目录下doc子目录里面的《DMHS参考手册.pdf》)

en

5345

60

1

2.0

dm8

192.168.1.9

SYSDBA

123456789

5236

1

op:obj

600

0

192.168.1.10

5345

5346

1

1

1

0

SYSDBA.*

SYSDBA.*==SYSDBA.*

    因为是实验环境,所以我们采用 sysdba 账户做验证。如果是生产环境,建议创建专用dmhs账户进行数据同步使用。本次是单向同步DM8到DM8数据库,其他版本的数据库同步可以参照执行。具体以手册材料为准。

(2)目的端 dmhs.hs

vi /dm8/dmhs/bin/dmhs.hs

en

5345

60

2

2.0

5346

dm8

192.168.1.10

SYSDBA

123456789

DM8 ODBC DRIVER

5236

4

1024

5000

1000

2.6 DMHS服务启动脚本

    进入到DMHS安装目录下bin子目录,通过dmhs_service_installer.sh注册服务脚本。
(1)源端 注册服务启动

[root@dsc1 root]# ./dmhs_service_installer.sh -t dmhs_server -a true -p HMS -x /dm8/dmhs/bin/dmhs.hs -d /dm8/dmhs/bin

Created symlink /etc/systemd/system/multi-user.target.wants/DmhsServiceHMS.service → /usr/lib/systemd/system/DmhsServiceHMS.service.

Finished to create the service (DmhsServiceHMS)

[root@dsc1 root]#

(2)目的端 注册服务启动

[root@dsc2 bin]# cd /dm8/dmhs/scripts/root/

[root@dsc2 root]# ./dmhs_service_installer.sh -t dmhs_server -a true -p HMT -x /dm8/dmhs/bin/dmhs.hs -d /dm8/dmhs/bin

Created symlink /etc/systemd/system/multi-user.target.wants/DmhsServiceHMT.service → /usr/lib/systemd/system/DmhsServiceHMT.service.

Finished to create the service (DmhsServiceHMT)

[root@dsc2 root]#

2.7 启动 DMHS 进行数据同步

2.7.1 目的端---启动本地的exec模块

(1)执行端运行 DMHS 软件工具,启动服务:

(2)执行端运行 DMHS 软件工具 dmhs_console,连接执行端 DMHS 服务,启动日志执行模块,控制台管理工具中执行如下 DMHS 命令:

[dmdba@localhost bin]$ ./dmhs_console

DMHS> connect

DMHS> start exec

(12)DMHS的部署实践_第7张图片

2.7.2源端---启动本地的cpt模块

(1)源端运行 DMHS 软件工具 dmhs_server,启动服务:

[dmdba@dsc1 bin]$ ./DmhsServiceHMS start

Starting DmhsServiceHMS:                                   [ OK ]

(12)DMHS的部署实践_第8张图片

(2)源端数据装载

    进入DMHS软件安装目录bin子目录,使用dmhs_cosole工具连接DMHS管理服务,设置日志捕获模块起始 LSN;装载源端字典信息及历史数据,初始化本地采集服务cpt的字典,最后对目的端数据库进行一次同步数据装载,执行 start cpt:

[dmdba@dsc1 bin]$ ./dmhs_console

DMHS console tool: V4.1.2-Build(2021.06.18-100195truncccc)_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-Build(2021.06.18-100195truncccc)_D64

DMHS> connect

execute success

DMHS> clear exec lsn

execute success

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

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 : |CREATE|INSERT|INDEX|TABLE|DICT|LSN|OBJID|REP

execute finish, please look up log file of exec module to check data load result

DMHS>

DMHS> start cpt

execute success

(12)DMHS的部署实践_第9张图片

(操作过程建议在两边节点服务器上,实时打印位于bin/log底下的dmhs_日期.log日志,以便随时发现错误)

(12)DMHS的部署实践_第10张图片

2.8 DMHS数据同步测试

1 源端数据库

create table hstest(v1 int);

insert into hstest values(3);

commit;

(12)DMHS的部署实践_第11张图片

2 目的端数据库

select * from SYSDBA.hstest;

(12)DMHS的部署实践_第12张图片

日志记录:

(12)DMHS的部署实践_第13张图片

三、DMHS软件卸载

3.1 Windows平台卸载

DMHS提供的卸载方式为全部卸载。在Windows操作系统中在菜单里面找到“达梦数据实时同步软件 V4.0”,然后点击“卸载”菜单;也可以在DMHS安装目录下,找到卸载程序uninstall.exe来执行卸载。运行卸载程序之后,点击卸载。卸载程序将会移除DMHS目录、删除快捷方式、删除Windows服务。

3.2 Linux平台卸载

进入DMHS安装目录,执行卸载脚本命令行卸载

./uninstall.sh或者./uninstall.sh -i

新的版本卸载脚本名称为uninst.sh:

./uninst.sh或者./uninst.sh -i

四、本文小结

本文首先对达梦HS异构数据库同步软件部署规划相关工作做了简单介绍,然后,进行了DMHS的安装部署操作实践,整个安装部署大体上分为 软件包安装、数据库系统参数修改、DMHS同步参数文件配置、启动服务注册和同步模块,最后进行同步数据的验证工作。本文的最后,简要介绍了DMHS软件的卸载操作供大家学习过程中的练习参考。

以上是这次技术分享的相关内容,欢迎小伙伴给我留言进行交流指导。

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

你可能感兴趣的:(大数据)