DMHS部署实践(DM-DM)

news/2024/11/28 3:36:11/

目录

1 准备工作

1.1 部署环境需求

1.2 安装DM8

1.2.1 源端数据库初始化

1.2.2 目的端数据库初始化

1.3 安装DMHS

1.3.1 上传安装包至服务器

 1.3.2 命令行方式安装

2 数据库系统参数修改

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

2.1.1 dm.ini配置文件

2.1.2 添加归档配置文件dmarch.ini。

2.1.3 启动数据库,验证配置的正确性 

 2.2 DDL同步触发器配置

3 DMHS同步参数文件配置

3.1 源端

3.2 目的端

4 启动服务和同步模块

4.1 DMHS服务启动脚本

4.1.1 源端注册服务启动

 4.1.2 目的端注册服务启动

4.2 启动 DMHS 进行数据同步 

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

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

5 同步数据的验证工作


1 准备工作

1.1 部署环境需求

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

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

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

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

1.2 安装DM8

DMHS软件部署前,在源端和目的端分别安装好DM8数据库软件并进行数据库初始化,具体安装可以参考大佬的教程:Linux Centos7 下的达梦数据库单机部署实践

1.2.1 源端数据库初始化

#初始化实例
[dmdba@dmhs01 bin]$ ./dminit PATH=/home/dmdba/dmdata EXTENT_SIZE=32 PAGE_SIZE=16 LOG_SIZE=256 UNICODE_FLAG=1 SYSDBA_PWD=LBHA88888 DB_NAME=hms INSTANCE_NAME=shms BUFFER=300#数据库服务要为运行状态
[dmdba@dmhs02 bin]$ systemctl status DmServiceshms.service

图1.1 源端数据库初始化

图1.2 源端数据库服务状态

1.2.2 目的端数据库初始化

#初始化实例
[dmdba@dmhs02 bin]$ ./dminit PATH=/home/dmdba/dmdata EXTENT_SIZE=32 PAGE_SIZE=16 LOG_SIZE=256 UNICODE_FLAG=1 SYSDBA_PWD=LBHA88888 DB_NAME=hmt INSTANCE_NAME=shmt BUFFER=300#数据库服务要为运行状态
[dmdba@dmhs02 bin]$ systemctl status DmServiceshmt.service

图1.3 目的端数据库初始化

图1.4 目的端数据库服务状态

1.3 安装DMHS

表1 安装环境
服务器IP操作系统DBHS版本
源端192.168.50.138CentOS 7DM 8dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin
目的端192.168.50.139

1.3.1 上传安装包至服务器

将DMHS安装包上传到服务器目录 /home/dmdba/dmhs 上并赋权

chown -R dmdba:dinstall /home/dmdba/dmhs/dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin
chmod -R 777 /home/dmdba/dmhs/dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin

图1.5 源端DMHS安装包授权

图1.6 目的端DMHS安装包授权

 1.3.2 命令行方式安装

图形界面安装(不做赘述,可以自行实操了解:)

./dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin

#命令行安装(根据提示安装即可
./dmhs_V4.1.81_dm8_rev103591_rh6_64_veri_20211117.bin -i

图1.7 DMHS安装结果

2 数据库系统参数修改

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

源端与目的端都修改。

2.1.1 dm.ini配置文件

打开dm.ini配置文件,修改以下参数值:

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

注意:dm.ini 配置参数中“FAST_COMMIT”必须为 0,否则会导致逻辑日志不全而影响同步。

2.1.2 添加归档配置文件dmarch.ini。

在“dm.ini”同目录下创建文件“dmarch.ini”并添加以下内容:

[ARCHIVE_LOCAL1]ARCH_TYPE = LOCALARCH_DEST = /home/dmdba/dmarch #归档目录ARCH_FILE_SIZE = 128 #归档文件大小,单位 MBARCH_SPACE_LIMIT = 0 #空间大小限制,0 表示不限

2.1.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;
#检查 FAST_COMMIT 参数是否为 0
SQL>select para_value from v$dm_ini where para_name = 'FAST_COMMIT';

图2.1 源端验证结果

图2.2 目的端验证结果

 2.2 DDL同步触发器配置

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

#在源端服务器上,通过disql连接数据库后执行以下命令
SQL>start /home/dmdba/dmhs/scripts/ddl_sql_dm8.sql

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

#检查创建的触发器和辅助表是否有效
SQL>select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 'VALID';#检查触发器
SQL>select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and status = 'Y';

图2.3 源端DDL检查结果 

3 DMHS同步参数文件配置

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

vi /home/dmdba/dmhs/bin/dmhs.hs

3.1 源端

图3.1 源端dmhs.hs配置(目的端一样)

<?xml version="1.0" encoding="utf-8"?><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.50.138</db_server><db_user>SYSDBA</db_user><db_pwd>LBHA88888</db_pwd><db_port>5235</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.50.139</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>

3.2 目的端

<?xml version="1.0" encoding="utf-8"?><dmhs><base><lang>en</lang><mgr_port>5345</mgr_port><ckpt_interval>60</ckpt_interval><siteid>2</siteid><version>2.0</version></base><exec><recv><data_port>5346</data_port></recv><db_type>dm8</db_type><db_server>192.168.50.139</db_server><db_user>SYSDBA</db_user><db_pwd>LBHA88888</db_pwd><driver>DM8 ODBC DRIVER</driver><db_port>5236</db_port><db_name></db_name><exec_thr>4</exec_thr><exec_sql>1024</exec_sql><exec_trx> 5000 </exec_trx><exec_rows>1000</exec_rows></exec>
</dmhs>

4 启动服务和同步模块

4.1 DMHS服务启动脚本

使用root用户进入到DMHS安装目录 /home/dmdba/dmhs/scripts/root下,通过dmhs_service_installer.sh注册服务脚本。

4.1.1 源端注册服务启动

[root@dmhs01 ~]# cd /home/dmdba/dmhs/scripts/root
[root@dmhs01 root]# ./dmhs_service_installer.sh -t dmhs_server -a true -p HMS -x /home/dmdba/dmhs/bin/dmhs.hs -d /home/dmdba/dmhs/bin

图4.1 源端注册服务

 4.1.2 目的端注册服务启动

[root@dmhs02 ~]# cd /home/dmdba/dmhs/scripts/root
[root@dmhs02 root]# ./dmhs_service_installer.sh -t dmhs_server -a true -p HMT -x /home/dmdba/dmhs/bin/dmhs.hs -d /home/dmdba/dmhs/bin

图4.2 目的端注册服务

4.2 启动 DMHS 进行数据同步 

进入DMHS软件安装目录bin子目录。

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

#执行端运行 DMHS 软件工具,启动服务
[dmdba@dmhs02 bin]$ ./DmhsServiceHMT start
#执行端运行 DMHS 软件工具 dmhs_console
[dmdba@dmhs02 bin]$ ./dmhs_console
#连接执行端 DMHS 服务
DMHS> connect
#启动日志执行模块
DMHS> start exec

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

#源端运行 DMHS 软件工具 dmhs_server,启动服务
[dmdba@dmhs01 bin]$ ./DmhsServiceHMS start
#使用dmhs_cosole工具连接DMHS管理服务
[dmdba@dmhs02 bin]$ ./dmhs_console
#连接源端 DMHS 服务
DMHS> connect
#设置日志捕获模块起始 LSN
DMHS> clear exec lsn
#装载源端字典信息及历史数据
DMHS> copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX
#执行start cpt
DMHS> start cpt

5 同步数据的验证工作

最后使用disql连接数据库后,源端输入数据,到目的端查看是否同步。

【源端】

create table hstest(v1 int);

insert into hstest values(1);

commit;

【目的端】

select * from SYSDBA.hstest;


以上是本次分享内容,欢迎留言沟通一起学习!更多内容也可以前往达梦社区了解~

达梦社区:eco.dameng.com

 


http://www.ppmy.cn/news/155739.html

相关文章

DM8 hmhs 1v1

一环境准备 准备两台机器 S1 S2都安装了dm8 操作系统L:centos7 本环境S1为源端&#xff0c;S2为目的端 二安装前的准备 在安装DMHS时&#xff0c;需要首先确认如下几个问题&#xff1a; 1.DMHS安装时&#xff0c;需要确认源端&#xff0c;目的端网络能够相互通信&#xf…

DM数据库

简介 达梦数据库是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统&#xff0c;简称DM。达梦数据库管理系统的最新版本是8.0版本&#xff0c;简称DM8。 1、CPU架构 目前DM数据库产品&#xff0c;支持X86、飞腾、龙芯、鲲鹏、海光、兆芯等国内外&#xff0c;常见的…

DM3

一、填空题&#xff08;每空2分&#xff0c;共20分&#xff09;。 1&#xff0e; 规划网站&#xff0c;一般要从三个方面去思考&#xff0c;即 、 、 。 2&#xff0e; CSS样式是专门用来进行 和 的。 3&#xff0e; 创建到锚点的链接的过程分为两步&#xf…

GoLang实现接口的方式

接口的实现 如果接口类型只包含一个方法&#xff0c;那么这个类型的名字以er结尾。 golang中实现接口的方式: • 结构体形式实现结构 type Duck interface{Swim()Quack() }type Person struct{}func (p Person) Swim(){fmt.Println("游泳") } func (p Person) Quac…

DMR基础

一、概述 DMR数字对讲机协议是欧洲电信标准协会在2005年4月推出的数字对讲机标准&#xff0c;后来又进行了多次修改。最新版本DMR数字对讲机协议是2007年12月公布的&#xff0c;共有四部分&#xff1a;第一部分为空中接口物理层和数据链路层协议&#xff0c;第二部分为空中接口…

DMA详解

DMA本来不属于CPU体系架构部分的内容&#xff0c;只因为在开发中经常要用到其相关的知识&#xff0c;所以这里就其基本概念、工作原理、常见问题做一个总结。 DMA概述 DMA的英文拼写是“Direct Memory Access”&#xff0c;汉语的意思就是直接内存访问。DMA既可以指内存和外设…

DM8-JDBC

DM8-JDBC 1、对象说明 DriverManager&#xff1a;用于加载驱动和创建数据库连接&#xff0c;实际中采用Class.forName("")来加载驱动&#xff0c;DriverManager用来创建与数据库的连接对象Connection。 URL: 常用数据库URL地址的写法&#xff1a; Oracle写法&…

dm-v1.0.5使用

DM使用V1.0.5版本,线上共创建了100的WORKER任务&#xff0c;给业务做各种数据同步任务&#xff0c;目前官方支持的几种同步方式都在线上运行&#xff0c;且使用超过6个月时间&#xff0c;挺稳定的&#xff0c;高峰期存在一定延期及其他。 使用过程需要注意的有&#xff1a; …