文章目录
说明
读写分离集群的部署过程和达梦数据库两节点主备守护集群搭建详细过程非常接近,相似度90%以上。主要区别在于:
- 远程归档的方式不一致,详情见dmarch.ini文件配置
- 读写分离集群在客户端需要配置dm_svc.conf文件
一、背景介绍
DM 数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。与常规的数据库备份(Backup)、还原(Restore)技术相比,数据守护可以更快地恢复数据库服务。随着数据规模不断增长,通过还原手段恢复数据,往往需要数个小时、甚至更长时间,而数据守护基本不受数据规模的影响,只需数秒时间就可以将备库切换为主库对外提供数据库服务。
本实验要求搭建两节点读写分离集群,并完成集群切换和恢复操作。
二、目的
完成2节点读写分离集群的搭建,要求如下:
(1)完成读写分离集群的部署,并测试建表和插入数据备机是否能及时同步,并可查询到数据。
(2)制造主机故障,测试备机可接管并持续提供服务。
(3)恢复故障主机,将故障主机加入集群。
(4)手动切换主备集群,恢复原主备集群的位置。
(5)测试读事务自动分发到备机的过程。
三、步骤
1. 集群规划
准备三台机器 DM1、DM2、DM_M,DM1 和 DM2 用来部署主备库,DM_M用来部署确认监视器。其中 DM1 和 DM2 配置两块网卡,一块接入内部网络交换模块,一块接入到外部交换机,DM_M接入内部网络。
三台机器都事先安装了 DM,安装路径为’/dm8’,执行程序保存在’/dm8/bin’目录中,数据存放路径为’/dm8/data’。
各主备库的实例名建议采用“组名_守护环境_序号”的方式命名,方便按组区分不同实例,注意总长度不能超过 16。本示例中组名为“G1”,配置为实时主备,主库命名为“G1_RT_01”,备库命名为“G1_RT_02”。
表1 服务器规划
机器名 | IP地址 | 初始状态 | 操作系统 |
---|---|---|---|
DM1 | 1.1.1.1 192.168.75.130 | 主库G1_RT_01 | CentOS Linux release 7.9.2009 (Core) |
DM2 | 1.1.1.2 192.168.75.131 | 备库G1_RT_02 | CentOS Linux release 7.9.2009 (Core) |
DM_M | 1.1.1.3 | 监视器 | CentOS Linux release 7.9.2009 (Core) |
表2 端口规划
实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT |
---|---|---|---|---|---|
DM1 | 5230 | 5231 | 1.1.1.1 | 5232 | 5233 |
DM2 | 5230 | 5231 | 1.1.1.2 | 5232 | 5233 |
2. 数据准备
分别在主库和备库上进行数据库初始化,并编辑dm.ini文件和dmarch.ini文件,开启归档
离线备份,数据库在dminit之后,还要启动一次以完成初始化动作,否则dmrman会报错“无法备份未初始化的数据库”
主库进行离线备份
从库进行离线恢复
3. 配置主库各ini文件
3.1 dm.ini文件
修改以下内容:
INSTANCE_NAME = G1_RT_01
PORT_NUM =5230 ##数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间
MAL_INI = 1 ##打开MAL系统
ARCH_INI = 1 ##打开归档配置
RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志发送信息
3.2 dmmal.ini文件
新建dmmal.ini文件,并配置以下内容:
#[dmdba@dm1 DAMENG]$ cat dmmal.ini
MAL_CHECK_INTERVAL = 5 ##MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 ##判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = G1_RT_01 ##实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 1.1.1.1