注册
两节点读写分离集群(read write cluster,RWC)搭建部署操作指南
技术分享/ 文章详情 /

两节点读写分离集群(read write cluster,RWC)搭建部署操作指南

hahaha 2026/08/07 150 0 0

一、操作前准备:(前一,二,三章和主备一致,第四章是读写分离的关键)

  1. 操作前规划
    IP规划:三台kylinV10虚拟机,安装DM8
    主库ip 192.168.17.10
    备库ip 192.168.17.11
    监视器ip 192.168.17.12
    端口规划(为了方便这里设置主备端口相同):实例端口,mal协议端口,守护进程通信端口, 实例守护端口。
    Mum_port:5234 (防火墙要放开)
    Mal_port:5235 (防火墙要放开)
    Mal_dw_port:5236 (防火墙要放开)
    Mal_inst_dw_port:5237
  2. 保持主库和备库数据一致
    (1)先把主库停掉,然后使用dmrman对主库脱机备份
    (2)备库通过dmrman进行还原:三部曲是还原,恢复,更新DB_MAGIC
    RESTORE DATABASE TO ‘/home/dmdba/dmdata/DMOA’ FROM BACKUPSET ‘/home/dmdba/dmdata/bak/DMOA_FULL’;
    RECOVER DATABASE ‘/home/dmdba/dmdata/DMOA/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmdata/bak/DMOA_FULL’;
    RECOVER DATABASE ‘/home/dmdba/dmdata/DMOA/dm.ini’ UPDATE DB_MAGIC;
    (3)验证主备库的永久魔数,两者一致符合要求。
    二、完成守护集群的搭建:
    1.修改dm.ini,主备库里面的instance_name不能一致。我这让主库为DMOA,备库为DMOA_STANDBY。
    2.创建dmmal.ini,写入配置文件,配置 MAL 系统。
    3.创建dmarch.ini,写入配置文件,配置数据归档类型。
    4.创建dmwatcher.ini,写入配置文件,配置守护进程。
    5.上述四个文件配置好之后,主库以mount方式启动,新开一个终端进入disql开启归档,设置守护组id,设置主库备库的模式,最后启动守护进程dmwatcher.ini。
    6.按照同样的(1-5操作步骤)设置备库。
    7.在第三台服务器192.168.17.12上配置监视器(刚开始配置发现在监视器上无法显示主备库信息,后来经过排查发现主备库的守护进程端口5236被防火墙拦截导致无法通信),主要就是新建dmmonitor.ini文件,可以设置监视器模式和日志保存路径,最重要的不要忘了把主备库的相关信息写进去,最后启动监视器。
    三、作业实操(主备守护集群)
    作业要求1:完成主备集群的部署,并测试建表和插入数据备机是否能及时同步,并可查询到数据。
    主备库的集群守护集群搭建完成之后,如果没有把dmwatcher注册为服务,需要新开终端进入disql交互命令行在主库操作建表插入即可,备库可以同时看到相关信息。

作业要求2:制造主机故障,测试备机可接管并持续提供服务。
手动把主库的守护进程和服务停掉之后,监视器自动用备库接管。
经过测试,备库可以正常插入数据

作业要求3:恢复故障主机,将故障主机加入集群。
原主库17.10开启数据库实例服务,再开启守护进程之后,监视器自动将其加入到集群,但是位置变成了standby
原备库17.11插入的新数据“101”经过自动同步之后可以被原主库也就是现在的备库17.10查询到。

作业要求4:手动切换主备集群,恢复原主备集群的位置。
进入监视器交互界面之后使用switchover GRP1.DMOA命令进行切换,会要求登录数据库,输入login再输入数据库用户名和密码,然后确认登录再执行切换命令即可。
经过若干秒切换完成之后使用show查看发现原主库17.10又再次成为primary。

四、作业实操(读写分离集群)
1、前期准备:在上述主备守护集群的基础上,修改主备库归档文件,即dmarch.ini文件,把归档模式从实时归档(realtime)改为及时归档(timely)。
image.png
作业要求1:完成读写分离集群的部署,并测试建表和插入数据备机是否能及时同步,并可查询到数据。
主库建表并插入两条记录,在备库可以查询到,说明timely模式下的数据同步无异常。
image.png
image.png

作业要求2:配置读写事务分发比例。
通过配置win主机的dm_svc.conf文件控制读写事务分发比例。我这里为了方便直接写0,代表所有读操作都分配到备库。
image.png
使用win主机的客户端工具DM管理工具连接DMRW,代表加载配置文件然后连接到数据库。连接成功后执行查询命令SELECT INSTANCE_NAME FROM V$INSTANCE; 可以看到执行查询操作是由备库dmoa_standby提供的。
image.png
最后,测试当把rw_percent这个参数设置为100时,代表读操作100%由主库提供,再执行查询命令发现确实是主库DMOA提供的查询服务。因此判定设置有效。
image.png
image.png
作业要求3:了解其与主备集群差异。
主备守护集群:备库是“备用轮胎”,平时不用,爆胎时换上。读写分离集群:备库是“副驾驶”,平时帮忙看路,分担主库压力。简单来说:主备保可用,读写分离提性能。具体详细分析如下图:
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服