大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
达梦数据库同步部署方案
一、部署方案简述
达梦数据复制(DATA REPLICATION)是一个分担系统访问压力、加快异地访问响应速度、提高数据可靠性的解决方案。将一个服务器实例上的数据变更复制到另外的服务器实例。可以用于解决大、中型应用中出现的因来自不同地域、不同部门、不同类型的数据访问请求导致数据库服务器超负荷运行、网络阻塞、远程用户的数据响应迟缓的问题。
服务部署采用分级部署,各地采用独立数据库,各所与局之间进行部分数据同步。
二、部署中涉及到的重要概念
1. 主服务器
发起复制操作的服务器,称为主服务器。
2. 从服务器
接收主服务器发送的数据并进行复制的服务器,称为从服务器。
3. 复制服务器(RPS)
在数据复制环境中,负责配置复制环境,定义复制关系的服务器。 RPS 有且仅有一台,它只负责配置和监控,并不参与到复制过程中。
三、部署方案
配置数据复制在 RPS (复制服务器)上进行。在配置数据复制之前,需要保证复制服务器和所有待配置节点的实例名各不相同,配置好其 MAL 系统并保证网络环境正常。按照复制组、复制关系、复制表映射的顺序配置复制环境。
1. 准备工作
首先准备一台复制数据库,三台需要数据同步的数据库(一个局级数据库,两个所级数据库,这个数据库的数量按照实际需求来)。这里默认所有的数据库已经安装完毕。
参与复制的数据库信息如下:
服务器 | 实例名 | IP 地址 | 数据库端口号 | MAL 端口号 |
---|---|---|---|---|
复制服务器(数据库) | JD_SERVER_212 | 192.168.7.212 | 5240 | 5241 |
局服务器(数据库) | JD_SERVER_250 | 192.168.7.250 | 5240 | 5242 |
所服务器一(数据库) | JD_SERVER_211 | 192.168.7.211 | 5240 | 5243 |
所服务器二(数据库) | JD_SERVER_213 | 192.168.7.213 | 5240 | 5244 |
2. 修改dm.ini配置文件
修改对应数据库实例的dm.ini配置文件如下:
数据库 | dm.ini 设置 |
---|---|
复制服务器(数据库) | INSTANCE_NAME = JD_SERVER_212 PORT_NUM = 5240 MAL_INI = 1 |
局服务器(数据库) | INSTANCE_NAME = JD_SERVER_250 PORT_NUM = 5240 MAL_INI = 1 |
所服务器一(数据库) | INSTANCE_NAME = JD_SERVER_211 PORT_NUM = 5240 MAL_INI = 1 |
所服务器二(数据库) | INSTANCE_NAME = JD_SERVER_213 PORT_NUM = 5240 MAL_INI = 1 |
参数解释:
MAL_INI = 1 #打开MAL系统
注意,复制服务器所在数据库不能参与复制,应该是一个单独的数据库或者数据库实例。
3. 修改dmmal.ini 配置文件
MAL_CHECK_INTERVAL = 2
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = JD_SERVER_212
MAL_HOST = 192.168.7.212
MAL_PORT = 5241
MAL_INST_PORT = 5240
MAL_INST_HOST = 192.168.7.212
[MAL_INST2]
MAL_INST_NAME = JD_SERVER_250
MAL_HOST = 192.168.7.250
MAL_PORT = 5242
MAL_INST_PORT = 5240
MAL_INST_HOST = 192.168.7.250
[MAL_INST3]
MAL_INST_NAME = JD_SERVER_211
MAL_HOST = 192.168.7.211
MAL_PORT = 5243
MAL_INST_PORT = 5240
MAL_INST_HOST = 192.168.7.211
[MAL_INST4]
MAL_INST_NAME = JD_SERVER_213
MAL_HOST = 192.168.7.213
MAL_PORT = 5244
MAL_INST_PORT = 5240
MAL_INST_HOST = 192.168.7.213
每个节点的 dmmal.ini
配置必须一致,一个节点配置好后可直接拷贝到另外两个节点。
参数解释:
参数 | 解释 |
---|---|
MAL_CHECK_INTERVAL | MAL 链路检测时间间隔 |
MAL_CONN_FAIL_INTERVAL | 判定 MAL 链路断开的时间 |
MAL_INST_NAME | 实例名,和 dm.ini 中的 INSTANCE_NAME 一致 |
MAL_HOST | MAL系统监听TCP连接的IP地址,即为当前机器的IP |
MAL_PORT | MAL系统监听TCP连接的端口,每个实例必须不一样 |
MAL_INST_HOST | 实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 |
MAL_INST_PORT | 实例对应的守护进程监听 TCP 连接的端口 |
4. 复制服务器初始化
通过执行系统函数SP_INIT_REP_SYS(create_flag)来初始化复制服务器。其主要作用是创建复制用户(SYSREP/SYSREP)和创建复制服务器上需要的系统表。SP_INIT_REP_SYS 的参数create_flag 为 1 时表示创建用户和系统表,为 0 时表示删除用户和系统表。
执行示例
SP_INIT_REP_SYS(1);
5.环境初始化
以上工作完成后,即可进行复制环境的配置了。
-
重新启动以上所有数据库,启动的顺序不分先后。
-
登录复制服务器数据库,保证服务器状态为 OPEN,开始复制配置。
-
创建复制组: REP_GRP_JD ,执行如下语句:
SP_RPS_ADD_GROUP('REP_GRP_JD', '主从同步复制');
6.在数据同步服务中执行初始化
部署数据同步服务,比如服务所在ip为30.29.5,那么可以调用如下接口执行初始化配置关系:
post 30.29.5:8090/strategy/init?defalutIp=192.168.7.250&defalutPort=5240
defaultIp指局数据库ip,defalutPort为对应的数据库实例端口
至此,数据库同步服务部署完成。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181818.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...