三节点 DMHS 级联同步搭建

一、环境配置
完成三节点数据库部署并初始化,配置参数如下:

|--------|--------------------|--------------------|--------------------|
| 节点 | 192.168.2.132 | 192.168.2.133 | 192.168.2.130 |
| 数据库版本 | DM8 | DM8 | DM8 |
| 实例名 | DM1 | DM2 | DM3 |
| 端口号 | 5236 | 5236 | 5236 |
| 数据文件路径 | /home/dmdba/dmdata | /home/dmdba/dmdata | /home/dmdba/dmdata |

完成三节点 dmhs 部署,配置参数如下:

|------|------------------|------------------|------------------|
| 节点 | 192.168.2.132 | 192.168.2.133 | 192.168.2.130 |
| 安装路径 | /home/dmdba/dmhs | /home/dmdba/dmhs | /home/dmdba/dmhs |

按照标准安装步骤完成三台服务器的数据库和 dmhs 安装
二、部署 dmhs
由于之前已经搭建过节点一到节点二的 hs 同步链路,因此只需要把节点二
上的 bin 文件拷到相同目录并修改名字,不用再重新安装 dmhs ,节点三按标准
安装步骤安装 dmhs

后续的 dmhs.hs 配置文件和注册服务脚本就放在新的 bin3 目录下
三、 dmhs 配置
由于之前已经搭建了节点一到节点二的 hs 同步,搭建级联同步只需要再节
点二到节点三搭建一条同步链路,修改节点一到节点二的同步链路配置文件 level 为 65535

  1. 节点一

    <?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>127.0.0.1</db_server>
    <db_user>SYSDBA</db_user>
    <db_pwd>SYSDBA</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.2.133</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>
  2. 节点二(既要配置 cpt 模块,也要配置 exec 模块)
    1 )节点一到节点二的 exec 模块
    修改 level 为 65535 , siteid 为 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>
    <level>65535</level>
    <db_type>dm8</db_type>
    <db_server>192.168.2.133</db_server>
    <db_user>SYSDBA</db_user>
    <db_pwd>SYSDBA</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>
    2 )节点二到节点三的 cpt 模块
    相比节点一到节点二的 cpt 模块,节点二到节点三的模块配置文件需要修改端口 和 ip ,其他可以不变

    <?xml version="1.0" encoding="utf-8"?>
    <dmhs>
    <base>
    <lang>en</lang>
    <mgr_port>5347</mgr_port>
    <ckpt_interval>60</ckpt_interval>
    <siteid>3</siteid> <version>2.0</version>
    </base>
    <cpt>
    <db_type>dm8</db_type>
    <db_server>127.0.0.1</db_server>
    <db_user>SYSDBA</db_user>
    <db_pwd>SYSDBA</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.2.130</ip>
    <mgr_port>5347</mgr_port>
    <data_port>5348</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. 节点三
    端口和节点二上的 cpt 模块保持一致,并且也要配置 <level>65535</level>

    <?xml version="1.0" encoding="utf-8"?>
    <dmhs>
    <base>
    <lang>en</lang> <mgr_port>5347</mgr_port>
    <ckpt_interval>60</ckpt_interval>
    <siteid>4</siteid>
    <version>2.0</version>
    </base>
    <exec>
    <recv>
    <data_port>5348</data_port>
    </recv>
    <level>65535</level>
    <db_type>dm8</db_type>
    <db_server>192.168.2.130</db_server>
    <db_user>SYSDBA</db_user>
    <db_pwd>SYSDBA</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>
    四、启动服务
    将新搭建的节点二到节点三的同步链路注册服务并启动

    其中节点二应该有两个 hs 服务进程

    五、同步验证
  4. 节点二到节点三同步验证

    装载源数据后在节点三查询

    可以查到已同步的数据
  5. 节点一到节点三的级联同步验证
    节点一新建表 T4

    节点二验证同步

    节点三验证同步

    六、总结
    在搭建三节点级联同步时,需要关注端口与 IP 的准确配置。首先,在节点
    一和节点二之间成功建立了同步链路,确保数据能够实时传输。随后,在节点二
    上配置了与节点三相同的 data_port 和 mgr_port ,并设置 level 为 65535 。并且各
    节点模块的 siteid 不能相同,如果重复,会造成链路中数据同步的混乱。
    达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台
相关推荐
python资深爱好者2 分钟前
NoSQL数据库与关系型数据库的主要区别
数据库·oracle·nosql
sj11637394038 分钟前
Kafka参数了解
数据库·分布式·kafka
日里安1 小时前
8. 基于 Redis 实现限流
数据库·redis·缓存
EasyCVR2 小时前
ISUP协议视频平台EasyCVR视频设备轨迹回放平台智慧农业视频远程监控管理方案
服务器·网络·数据库·音视频
Elastic 中国社区官方博客2 小时前
使用真实 Elasticsearch 进行更快的集成测试
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·集成测试
明月与玄武3 小时前
关于性能测试:数据库的 SQL 性能优化实战
数据库·sql·性能优化
PGCCC4 小时前
【PGCCC】Postgresql 存储设计
数据库·postgresql
PcVue China6 小时前
PcVue + SQL Grid : 释放数据的无限潜力
大数据·服务器·数据库·sql·科技·安全·oracle
魔道不误砍柴功8 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot
锐策8 小时前
〔 MySQL 〕数据库基础
数据库·mysql