【达梦:两节点读写分离集群的搭建和部署】

一、操作前准备:

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启动,新开终端进入实例库进行配置

上述四个文件配置好之后,主库以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)。

作业要求1:完成读写分离集群的部署,并测试建表和插入数据备机是否能及时同步,并可查询到数据。

主库建表并插入两条记录,在备库可以查询到,说明timely模式下的数据同步无异常。

作业要求2:配置读写事务分发比例。

       通过配置win主机的dm_svc.conf文件控制读写事务分发比例。我这里为了方便直接写0,代表所有读操作都分配到备库。

使用win主机的客户端工具DM管理工具连接DMRW,代表加载配置文件然后连接到数据库。连接成功后执行查询命令SELECT INSTANCE_NAME FROM V$INSTANCE; 可以看到执行查询操作是由备库dmoa_standby提供的。

最后,测试当把rw_percent这个参数设置为100时,代表读操作100%由主库提供,再执行查询命令发现确实是主库DMOA提供的查询服务。因此判定设置有效。

作业要求3:了解其与主备集群差异。

主备守护集群:备库是“备用轮胎”,平时不用,爆胎时换上。读写分离集群:备库是“副驾驶”,平时帮忙看路,分担主库压力。简单来说:主备保可用,读写分离提性能。具体详细分析如下图:

原创于达梦技术社区:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小子爵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值