达梦数据库主备集群部署
一、概述
在掌握了单机部署基础上,还要学习主备集群是因为,在单点故障风险中,硬件故障或自然灾害可能导致服务长时间中断。而主备集群则有高可用性与性能提升的特点,可以进一步提升集群思维。
二、安装前的检查
集群之间需要通信,防火墙开启会导致ip无法连通,如果是客户现场无法关闭防火墙,则要求开通指定ip。
防火墙的检查
防⽕墙状态:systemctl status firewalld
关闭防⽕墙:systemctl stop firewalld
补充:
systemctl是系统和服务管理器的控制工具,负责在系统启动时加载和管理所有系统级服务和进程。
三、主备集群配置
1、离线安装两个节点并初始化实例
上述两个步骤与单机部署相同。
2、开启数据库
a.注意事项
主节点安装数据库软件,初始化实例,并正常启动数据库一次开启归档,启动数据库到mount状态。
备节点安装数据库软件,初始化实例,无需正常启动数据库一次,启动数据库到mount状态
b.什么主节点需要先正常启动(OPEN)一次数据库,而备节点不要启动 ?
为了生成和确认数据库的唯一身份标识,并完成必要的初始设置
当达梦数据库第一次被成功创建并启动到OPEN状态时,系统会生成一个全局唯一的、内部使用的标识符,称为数据库魔数(DB_MAGIC),这个就是唯一身份标识
c.操作
启动 DMSERVER 时,可指定 dm.ini 文件的路径、非控制台方式启动、指定数据库是否
以 MOUNT 状态启动等启动参数
dmserver /dmdata/dmdb/dm.ini mount
3、先开启本地归档: 修改 dmarch.ini
备份前要先开机本地归档
因为脱机备份的情况下,不归档也能进行,导致后续开启数据库报错后要重新归档备份
4、脱机备份数据库
ps -ef|grep dmap
DMAP服务的基础作用:DmAPService是辅助进程服务,负责管理数据库的备份恢复、作业调度等关键辅助功能
注意:
输入 exit退出 DIsql 工具,这本身并不会让数据库进入脱机状态,如果没有退出数据库,使用工具备份时会报错
dmdba用户 启动dmrman工具,执行 backup 全库,这次备份是全备,单独存放在bakful里
把全备文件传输到备库
备份还原备库
还原备库
恢复备库
5、修改配置文件
dm.ini需要注意的参数是实例名不要打错,注意大小写,需要前后一致
dmarch.ini注意归档路径需要修改
dmmal.ini主库和备库内容一样,如果节点连接失败,首先查看防火墙,其次查看配置文件,最后查看日志
6、以mount状态启动数据库实例(dmdba用户)
使用 dmdba 用户,执行以下命令(主备库都执行):
su - dmdba
dmserver /dmdata/dmdb/dm.ini mount
在新的终端使用 disql 工具连接数据库:
./disql SYSDBA/’“Hn@dameng123”’
主备库都修改 oguid,执行以下命令:
sp_set_oguid(453331);
为什么修改修改oguid?
数据库守护组(即一个主备集群单元)的唯一身份证明,用来分辨不同集群。
7、启动守护进程,启动监视器
注意:
连接ip,开通对应的端口,节点之间的关联就是由守护进程与监视器之间的关联进行的,所以要检查端口是否可以连通
用nc -zv ip 端口的命令
主备库注册守护进程服务
为什么要注册为服务:避免单点故障,手工启动进程存在遗忘或退出的风险,注册为服务后:自动守护进程崩溃后重启。提供标准化的systemctl start/stop/status dmwatcher管理接口
主备库实例服务注册
注册监视器服务
启动监视器
监视器有确认监视器与普通监视器,必须要有一个确认监视器,且要安装在别的节点上,在主机故障时,确认监视器可以主动切换数据库
验证主备集群同步状态
关闭数据库测试,没有故障会自动启动主库
报错总结
1、修改gouid全局参数时,关闭守护进程并且修改alter_mode参数,不然无法修改
2、关注网络连通状态,测试环境可以关闭防火墙,否则监视器与守护进程无法连通
3、监视器记得修改参数为确认监视器,不然无法自动切换
参数总结:
1、修改dm.ini日志
实例名:INSTANCE_NAME = rw1
是否启动mal:MAL_INI = 1
是否启动归档:ARCH_INI = 1
是否允许手工修改服务器的模式:ALTER_MODE_STATUS = 0
是否允许 OFFLINE 表空间,0:不允许;1:允许;2:备库不允许:ENABLE_OFFLINE_TS = 2
2、归档配置文件dmarch.ini
备库收到 Redo 日志后,是否需要重演完成后再响应主库。0 表示收到⻢上响应(高性能模式),1表示重演完成后响应(事务一致模式)。
MAL_INST_HOST = 192.168.10.100 #外网
MAL_INST_PORT = 5236 #连接端口
MAL_DW_PORT = 7436 #守护进程端口
MAL_INST_DW_PORT = 7536
[MAL_INST2]#组名
MAL_INST_NAME = rw2 #与 dm.ini 中的INSTANCE_NAME一致
MAL_HOST = 10.0.0.101 # MAL系统监听 TCP 内部网络 IP
MAL_PORT = 7336 #MAL系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.10.101 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #与 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 7436 #实例对应的守护进程监听 TCP 端口
MAL_INST_DW_PORT = 7536
[MAL_INST3]
MAL_INST_NAME = rw2 #与 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 10.0.0.102 #MAL 系统监听 TCP 内部网络 IP
MAL_PORT = 7336 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.10.102 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #与 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 7436 #实例对应的守护进程监听 TCP 端口
守护进程文件dmwatcher.ini
[GRP_DW]
实例所在守护进程组的守护类型:DW_TYPE = GLOBAL
实例所在守护进程组的守护模式:DW_MODE = MANUAL
远程守护进程故障认定时间:DW_ERROR_TIME = 30
文章
阅读量
获赞
