DM8 数据库主备/读写分离集群增加节点
环境说明
在现有的DM8 主备集群或者读写分离集群上增加节点。
实例名 | 业务IP | 心跳IP | 备注 |
---|---|---|---|
GRP1_RT_01 | 192.168.15.40 | 192.168.25.40 | 主库 |
GRP1_RT_02 | 192.168.15.41 | 192.168.25.41 | 备库 |
GRP1_RT_03 | 192.168.15.33 | 192.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"
复制
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
复制
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);
复制
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);
复制
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 ]
复制
启动监视器,查看集群节点信息:
至此,集群新备库节点添加完成。
简单总结
通过上面这种方式添加集群备库节点,相对于整个集群停机搭建的方式,时间上要节省很多,停机时间也很短。
停机时间主要在现有主备库添加新备库归档信息时,需要将停dmwatcher服务然后将数据库切换到mount状态,添加完成后启动dmwatcher服务即可。
更多资讯请上达梦技术社区了解:https://eco.dameng.com
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
达梦数据发布上市后首份财报:2024年营收10.4亿、净利3.6亿,销售平均薪酬 101 万、研发 36 万
通讯员
228次阅读
2025-04-15 12:09:47
国产数据库图谱又上新|82篇精选内容全览达梦数据库
墨天轮编辑部
218次阅读
2025-04-23 12:04:21
全国首部图数据库国家标准发布!达梦数据深度参与!
达梦数据
164次阅读
2025-04-02 09:34:13
达梦数据携手中国移动建成国内最大分布式数据库集群
通讯员
151次阅读
2025-04-02 15:10:38
达梦数据库快速上手指南
孙莹
143次阅读
2025-04-10 23:35:47
达梦中国数据库产业基地竣工,光谷崛起“数据之弧”
通讯员
139次阅读
2025-04-23 09:41:05
SQLark V3.4 更新 | 新增 PostgreSQL 数据库支持、SQL 常用代码段、表设计器体验升级,超多新功能等你来探索!
达梦产品与服务
122次阅读
2025-04-17 09:38:11
SQLark 数据生成 | 外键、自增列、check约束、虚拟列都能自动识别!
达梦产品与服务
99次阅读
2025-04-11 10:41:05
【喜报】您有一件邮件请查收!恭喜您通过达梦DCA/DCP考试~
云贝19941464235
75次阅读
2025-04-02 10:47:26
中国软件深度研究报告:打造操作系统、数据库央企龙头
通讯员
37次阅读
2025-04-21 12:20:29