达梦数据库-读写分离集群部署

达梦数据库-读写分离集群部署

一、读写分离集群概述

在数据库高可用架构设计中,读写分离是提升系统并发处理能力的重要手段。达梦数据库读写分离集群(DMRWC)基于成熟的数据守护(Data Watch)技术,实现了事务级实时同步与读写请求自动分发。本文将以DM8版本为基础,详细讲解读写分离集群的部署过程,并对比主备集群的异同。

二、读写分离 vs 主备集群

特性 主备集群 读写分离集群
架构模式 一主多备 一主多读
主要目的 高可用、故障切换 负载均衡、提升读性能
数据流向 主->备单向同步 主->备同步,读请求分发
默认归档类型 实时归档(REALTIME) 即时归档(TIMELY)
节点角色 Primary/Standby Primary/Read Instance
适用场景 金融交易、核心业务 报表分析、读多写少场景

三、环境规划

配置项 A机器(主节点) B机器(从节点1) C机器(从节点2)
心跳 IP 192.168.220.130 192.168.220.131 192.168.220.132
实例名 DM_01 DM_02 DM_03
实例端口 5236 5236 5236
MAL 端口 5336 5336 5336
MAL 守护进程端口 5436 5436 5436
守护进程端口 5536 5536 5536
OGUID 45331 45331 45331
守护组 GRP1 GRP1 GRP1
安装目录 /home/dmdba/dmdbms /home/dmdba/dmdbms /home/dmdba/dmdbms
实例目录 /home/dmdba/dmdbms/data /home/dmdba/dmdbms/data /home/dmdba/dmdbms/data
归档上限 51200 51200 51200

确认监视器直接使用:192.168.220.132。
说明:读写分离集群与数据守护集群架构基本类似。此外,搭建过程中具体规划及部署方式以现场环境为准。

三、安装与配置

具体流程参考达梦数据库-单机部署的Linux环境单机部署章节。

3.1数据库安装(三台机器均需要安装)

#挂载ISO镜像
mount -o loop /usr/dm8_20250122_x86_rh7_64.iso  /mnt
#安装数据库
su dmdba
cd /mnt
./DMInstall.bin -i

3.2初始化A机器实例

(密码需要自行替换,并符合密码强度规则)

cd /home/dmdba/dmdbms/bin
./dminit path=/home/dmdba/dmdbms/data/  PAGE_SIZE=32  EXTENT_SIZE=32  CASE_SENSITIVE=Y DB_NAME=DM  INSTANCE_NAME=DM_01 PORT_NUM=5236 BUFFER=2048 SYSDBA_PWD=******** SYSAUDITOR_PWD=******** 

执行完成反馈结果如下图所示:
在这里插入图片描述

3.3初始化B机器实例

(密码需要自行替换,并符合密码强度规则)

cd /home/dmdba/dmdbms/bin
./dminit path=/home/dmdba/dmdbms/data/  PAGE_SIZE=32  EXTENT_SIZE=32  CASE_SENSITIVE=Y DB_NAME=DM  INSTANCE_NAME=DM_02 PORT_NUM=5236 BUFFER=2048 SYSDBA_PWD=******** SYSAUDITOR_PWD=******** 

执行完成反馈结果如下图所示:
在这里插入图片描述

3.4初始化C机器实例

(密码需要自行替换,并符合密码强度规则)

cd /home/dmdba/dmdbms/bin
./dminit path=/home/dmdba/dmdbms/data/  PAGE_SIZE=32  EXTENT_SIZE=32  CASE_SENSITIVE=Y DB_NAME=DM  INSTANCE_NAME=DM_03 PORT_NUM=5236 BUFFER=2048 SYSDBA_PWD=******** SYSAUDITOR_PWD=******** 

执行完成反馈结果如下图所示:
在这里插入图片描述

3.5主节点注册服务

su root
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/DM/dm.ini -p DMSERVER

创建服务成功会显示:创建服务(DmServiceDMSERVER)完成
创建成功后启动服务

systemctl start DmServiceDMSERVER.service

注意:
三台机器需要关闭防火墙。

systemctl stop firewalld
systemctl disable firewalld

3.6配置主节点参数

  • 修改 dm.ini
    vi /home/dmdba/dmdbms/data/DM/dm.ini
#configuration file
                MAL_INI                         = 1         #dmmal.ini
                ARCH_INI                        = 1         #dmarch.ini
#data watch
                ALTER_MODE_STATUS               = 0         #Whether to permit database user to alter database mode
                ENABLE_OFFLINE_TS               = 2         #Whether tablespace can be offline
  • 创建 dmarch.ini
    vi /home/dmdba/dmdbms/data/DM/dmarch.ini
#DaMeng Database Archive Configuration file
#0:高性能,1:事务一致
ARCH_WAIT_APPLY      	 = 0        
[ARCHIVE_LOCAL]
#本地归档类型
	ARCH_TYPE            = LOCAL        
#本地归档存放路径 
	ARCH_DEST            = /home/dmdba/dmdbms/data/DM/arch  
	ARCH_FILE_SIZE       = 1024
	ARCH_SPACE_LIMIT     = 51200
### 达梦数据库读写分离机制及实现方式 #### 一、达梦数据库读写分离机制概述 达梦数据库读写分离是一种优化策略,旨在通过将只读查询请求分配至备库来减轻主库的压力,从而提高整体性能和并发处理能力。该机制的核心在于利用即时归档或实时归档技术,在保障数据一致性的前提下,使主库专注于事务型写入操作,而备库承担大部分只读查询任务[^3]。 #### 二、读写分离集群的特点 读写分离集群通常由一个主库和若干个备库构成。这些备库通过配置即时归档或实时归档功能与主库保持同步。相比传统的主备架构,读写分离的主要差异体现在客户端访问模式上——即如何区分并路由读写请求到相应的节点[^2]。 #### 三、读写分离的工作原理 1. **数据同步** 主库负责接收所有的写操作,并将其日志记录传输给备库。备库通过解析重做日志完成数据更新,确保与主库的数据一致性。此过程依赖于即时归档或实时归档的功能支持。 2. **读写分离逻辑** 数据库管理系统提供多种接口(如 JDBC 或 DPI),用于识别 SQL 请求的性质。对于只读类的操作(SELECT 查询等),系统会优先将其转发至备库;而对于涉及修改数据的操作(INSERT、UPDATE、DELETE 等),则始终交由主库执行。 3. **事务一致性保障** 配置事务一致模式可以进一步增强主备之间的数据可靠性。在这种模式下,只有当主库确认备库已成功应用相应变更后,才会向应用程序返回成功的响应消息。 #### 四、读写分离集群的配置方法 以下是构建达梦数据库读写分离环境的关键步骤: 1. **设置主库角色** 在主库 dmdb01 上运行如下命令以指定其为主实例: ```sql ALTER DATABASE PRIMARY; ``` 此步明确了当前服务器作为整个复制链路中的源头位置[^4]。 2. **创建初始备份** 使用 `dmrman` 工具对主库实施全量离线备份操作,以便后续初始化各备用副本: ```bash [dmdba@itsapp1 bin]$ ./dmrman DMRMAN> BACKUP DATABASE '/dmdata/its/dm.ini' FULL BACKUPSET '/dmbak/full_database'; ``` 这一步骤生成必要的基础映像文件集合,供其他成员加载恢复之用[^5]。 3. **部署备库并启用归档** 将上述制作好的备份集迁移至目标机器,按照官方文档指引逐步完成安装流程之后,调整本地参数文件使其指向远程主机上的主服务地址。同时开启对应的归档选项(TIMELY 或 REALTIME),启动监听进程等待上游推送增量改动信息过来。 4. **验证连接状态** 利用专用工具检查两方之间是否存在正常的心跳信号交换现象,观察是否有延迟过高或者其他异常情况发生。如果一切顺利的话,则说明初步框架已经搭建完毕,接下来就可以着手规划具体的流量分发规则了。 #### 结论 综上所述,达梦数据库提供了完善的解决方案帮助用户轻松建立起高效的读写分离体系结构。它不仅能够显著改善资源利用率水平,而且还能极大地增强了系统的稳定性和扩展潜力。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值