DM8 数据库主备/读写分离集群增加节点

本文档详细介绍了如何在现有的DM8数据库主备或读写分离集群中添加新节点。步骤包括安装软件、备份恢复、配置参数、动态添加MAL和归档配置,以及更新监视器配置。此过程显著减少了停机时间,提高了集群扩展的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DM8 数据库主备/读写分离集群增加节点

环境说明

在现有的DM8 主备集群或者读写分离集群上增加节点。

实例名业务IP心跳IP备注
GRP1_RT_01192.168.15.40192.168.25.40主库
GRP1_RT_02192.168.15.41192.168.25.41备库
GRP1_RT_03192.168.15.33192.168.25.33新添加备库

添加新节点

1、安装数据库软件并创建新备库实例

(1)安装软件,略。

(2)创建实例

[dmdba@localhost bin]$ ./dminit path=/home/dmdba/dmdata page_size=32 extent_size=32 
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2022-09-24
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /home/dmdba/dmdata/DAMENG/DAMENG01.log


 log file path: /home/dmdba/dmdata/DAMENG/DAMENG02.log

write to dir [/home/dmdba/dmdata/DAMENG].
create dm database success. 

2、备份主库恢复到新备库

(1)主库进行联机全库备份

[dmdba@localhost bin]$ ./disql
disql V8
用户名:
密码:

服务器[LOCALHOST:5236]:处于主库打开状态
登录使用时间 : 3.517(ms)
SQL> backup database backupset '/home/dmdba/db_bak2';
操作已执行
已用时间: 00:00:01.181. 执行号:600.

(2)拷贝备份

scp -r /home/dmdba/db_bak2 192.168.15.33:/home/dmdba

(3)备库进行脱机恢复

./dmrman CTLSTMT="restore database '/home/dmdba/dmdata/DAMENG/dm.ini' from backupset '/home/dmdba/db_bak2'"
./dmrman CTLSTMT="recover database '/home/dmdba/dmdata/DAMENG/dm.ini' from backupset '/home/dmdba/db_bak2'"
./dmrman CTLSTMT="recover database '/home/dmdba/dmdata/DAMENG/dm.ini' update db_magic"

image-20211219130841505

3、配置新备库

3.1 配置dm.ini

在新添加节点上配置新备库dm.ini参数修改如下:

INSTANCE_NAME = GRP1_RT_03   ##新添加节点数据库实例名
PORT_NUM = 5236	             ##端口默认5236
ALTER_MODE_STATUS = 0      
ENABLE_OFFLINE_TS = 2  
MAL_INI = 1 
ARCH_INI = 1 
3.2 配置dmmal.ini

拷贝主库dmmal.ini文件到新备库上,并添加新备库内容,最终配置如下:

MAL_CHECK_INTERVAL = 5 
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.25.40
MAL_PORT = 61142 
MAL_INST_HOST = 192.168.15.40
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.25.41
MAL_PORT = 61142 
MAL_INST_HOST = 192.168.15.41
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
[MAL_INST3]
MAL_INST_NAME = GRP1_RT_03
MAL_HOST = 192.168.25.33
MAL_PORT = 61142 
MAL_INST_HOST = 192.168.15.33
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
3.3 配置dmarch.ini

创建或者修改dmarch.ini文件,配置本地归档和实时归档,最终文件内容如下:

ARCH_WAIT_APPLY = 0
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME 	
ARCH_DEST = GRP1_RT_01 	
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME 	
ARCH_DEST = GRP1_RT_02 	
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 				
ARCH_DEST = /home/dmdba/dmarch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024
3.4 配置dmwatcher.ini

创建并修改dmwatcher.ini文件,配置守护进程,配置为全局守护类型,使用自动切换模式。(也可以直接主库上将该文件拷贝过来)

[GRP1]
DW_TYPE = GLOBAL 					#全局守护类型
DW_MODE = AUTO 						#自动切换模式
DW_ERROR_TIME = 10 			#远程守护进程故障认定时间
INST_RECOVER_TIME = 30
INST_ERROR_TIME = 10 				#本地实例故障认定时间
INST_OGUID = 453331 				#守护系统唯一OGUID值
INST_INI = /home/dmdba/dmdata/DAMENG/dm.ini 	#dm.ini配置文件路径
INST_AUTO_RESTART = 1 				#打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0  #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
3.5 以mount方式启动新备库
./dmserver /home/dmdba/dmdata/DAMENG/dm.ini mount

image-20211219132138805

3.6 设置OGUID并修改数据库模式为STANDBY

disql使用SYSDBA登录新备库,执行下面命令:

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

image-20211219132459509

3.7 新备库配置dmwatcher系统服务
[root@localhost ~]# /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdata/DAMENG/dmwatcher.ini -p GRP1
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceGRP1.service to /usr/lib/systemd/system/DmWatcherServiceGRP1.service.
创建服务(DmWatcherServiceGRP1)完成

4、原集群主备库动态添加MAL配置

分别在原集群主备库中执行相关命令,动态增加MAL中新备库GRP1_RT_03的相关配置信息:

SF_MAL_CONFIG(1,0);
SF_MAL_INST_ADD('MAL_INST3','GRP1_RT_03','192.168.25.33',61142,'192.168.15.33',5236,52142,0,33142);
SF_MAL_CONFIG_APPLY();
SF_MAL_CONFIG(0,0);

image-20211219134121698

5、原集群主备库动态添加归档配置

(1)首先原主库节点和备库节点均需要关闭dmwatcher服务,如下:

[dmdba@localhost bin]$ ./DmWatcherServiceGRP1 stop
Stopping DmWatcherServiceGRP1:                             [ OK ]

(2)分别在原集群主备库中执行(需要数据库处于mount状态),添加dmarch.ini中归档节点,执行命令如下:

disql登录主库:

./disql SYSDBA
alter database mount;
alter database add archivelog 'DEST=GRP1_RT_03,TYPE=REALTIME';

disql登录备库:

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
alater database mount;
alter database add archivelog 'DEST=GRP1_RT_03,TYPE=REALTIME';
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

6、修改监视器dmmonitor.ini

在监视器dmmonitor.ini文件中添加新备库信息,最终配置如下:

MON_DW_Confirm = 1 			#确认监视器模式
MON_LOG_PATH = /home/dmdba/dmdbms/log/GRP1 #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 		#每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 		#每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 1024 	#不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 	#组GRP1的唯一OGUID值
MON_DW_IP = 192.168.25.40:52142
MON_DW_IP = 192.168.25.41:52142
MON_DW_IP = 192.168.25.33:52142    ##新备库

7、启动所有集群节点(包括新添加节点)的dmwatcher服务,并重启监视器

启动所有节点dmwatcher服务:

cd $DM_HOME/bin
./DmWatcherServiceGRP1 start
Starting DmWatcherServiceGRP1:                             [ OK ]

启动监视器,查看集群节点信息:

image-20211219141141422

至此,集群新备库节点添加完成。

简单总结

通过上面这种方式添加集群备库节点,相对于整个集群停机搭建的方式,时间上要节省很多,停机时间也很短。

停机时间主要在现有主备库添加新备库归档信息时,需要将停dmwatcher服务然后将数据库切换到mount状态,添加完成后启动dmwatcher服务即可。

更多资讯请上达梦技术社区了解:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值