一、环境配置
完成三节点数据库部署并初始化,配置参数如下:
节点 | 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
服务进程

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

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

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

节点二验证同步

节点三验证同步

六、总结
在搭建三节点级联同步时,需要关注端口与
IP
的准确配置。首先,在节点
一和节点二之间成功建立了同步链路,确保数据能够实时传输。随后,在节点二
上配置了与节点三相同的
data_port
和
mgr_port
,并设置
level
为
65535
。并且各
节点模块的
siteid
不能相同,如果重复,会造成链路中数据同步的混乱。
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台