DM主备集群部署(两节点)


一、DM主备集群介绍

DM 数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,数据守护可以配置成实时主备集群、读写分离集群,基本不受数据规模的影响,只需数秒时间就可以将备库切换为主库对外提供数据库服务。

DM 数据守护(Data Watch)的实现原理非常简单:将主库(生产库)产生的 Redo日志传输到备库,备库接收并重新应用 Redo 日志,从而实现备库与主库的数据同步。

DM 数据守护系统主要由主库、备库、Redo-log、Redo 日志传输、Redo 日志重演、守护进程(dmwatcher)、监视器(dmmonitor)组成

二、集群环境准备

1.环境规划

在这里插入图片描述

2.环境检查

基本和单机环境一致,操作系统参数调整一致。
集群内所有操作系统的数据盘是否独立分区
集群内所有操作系统的目录挂载是否一致
集群内所有操作系统是否开启ntp时间同步
集群内所有操作系统用户(dmdba),id与group id 是否一致
集群内所有服务器是否在同一局域网内,注意网络防火墙策略
备份目录是否共享目录(nfs)
监视器(dmmonitor)有条件一定要独立安装在服务器(本文的监视器和主节点在同一台服务器上)

三、集群搭建步骤

1.集群各个节点安装数据库

安装步骤可参考上一篇博客

注:本次安装不需要创建实例

2.主库-初始化实例-备份

初始化实例
[dmdba@~]$ /home/dmdba/dmdbms/bin/dminit PATH=/home/dmdba/dmdbms/data/ INSTANCE_NAME=RWC1_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

启动服务
/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini

开启归档
[dmdba@~]$ /home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.10.58:5236
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG ‘DEST=/home/dmdba/dmdbms/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200’;
SQL> ALTER DATABASE OPEN;

备份数据
SQL> BACKUP DATABASE BACKUPSET ‘/home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE’;

关闭数据库

3.主库-配置文件

vim /home/dmdba/dmdbms/data/DAMENG/dm.ini
INSTANCE_NAME = RWC1_01
PORT_NUM = 5236
DW_INACTIVE_INTERVAL=60
ALTER_MODE_STATUS=0
ENABLE_OFFLINE_TS=2
MAL_INI=1
ARCH_INI=1

vim /home/dmdba/dmdbms/data/DAMENG/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 51200
ARCH_FLUSH_BUF_SIZE = 0

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = RWC1_02 #实时归档目标实例名

vim /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
[GRWC1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 453331 #守护系统唯一OGUID值
INST_INI = /home/dmdba/dmdbms/data/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 #指定备库重演日志的时间阈值,默认关闭

vim /home/dmdba/dmdbms/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 10 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定MAL链路断开的时间
MAL_TEMP_PATH = /home/dmdba/dmdbms/data/malpath/ #临时文件目录
MAL_BUF_SIZE = 512 #单个MAL缓存大小,单位MB
MAL_SYS_BUF_SIZE = 2048 #MAL总大小限制,单位MB
MAL_COMPRESS_LEVEL = 0 #MAL消息压缩等级,0表示不压缩

[MAL_INST1]
MAL_INST_NAME = RWC1_01 #实例名,和dm.ini的INSTANCE_NAME一致
MAL_HOST = 192.168.10.58 #MAL系统监听TCP连接的IP地址
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.10.58 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例对外服务端口,和dm.ini的PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = RWC1_02
MAL_HOST = 192.168.10.59
MAL_PORT = 61142
MAL_INST_HOST = 192.168.10.59
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142

4.拷贝实例目录

[dmdba@~]$ scp -r /home/dmdba/dmdbms/data/DAMENG dmdba@192.168.10.59:/home/dmdba/dmdbms/data/

5.主库-注册服务

su - root
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p RWC1_01 -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -m mount
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini

6.备库-配置文件

vim /home/dmdba/dmdbms/data/DAMENG/dm.ini
INSTANCE_NAME = RWC1_02
PORT_NUM = 5236
DW_INACTIVE_INTERVAL=60
ALTER_MODE_STATUS=0
ENABLE_OFFLINE_TS=2
MAL_INI=1
ARCH_INI=1

vim /home/dmdba/dmdbms/data/DAMENG/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 51200
ARCH_FLUSH_BUF_SIZE = 0

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = RWC1_01 #实时归档目标实例名

vim /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
[GRWC1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 453331 #守护系统唯一OGUID值
INST_INI = /home/dmdba/dmdbms/data/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 #指定备库重演日志的时间阈值,默认关闭

vim /home/dmdba/dmdbms/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 10 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定MAL链路断开的时间
MAL_TEMP_PATH = /home/dmdba/dmdbms/data/malpath/ #临时文件目录
MAL_BUF_SIZE = 512 #单个MAL缓存大小,单位MB
MAL_SYS_BUF_SIZE = 2048 #MAL总大小限制,单位MB
MAL_COMPRESS_LEVEL = 0 #MAL消息压缩等级,0表示不压缩

[MAL_INST1]
MAL_INST_NAME = RWC1_01 #实例名,和dm.ini的INSTANCE_NAME一致
MAL_HOST = 192.168.10.58 #MAL系统监听TCP连接的IP地址
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.10.58 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例对外服务端口,和dm.ini的PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = RWC1_02
MAL_HOST = 192.168.10.59
MAL_PORT = 61142
MAL_INST_HOST = 192.168.10.59
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142

7.备库-注册服务

su - root
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p RWC1_02 -dm_ini /home/dmdba/dmdbms/data/DAMENG/dm.ini -m mount
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini

8.备库-恢复数据

[dmdba@~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=“RESTORE DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE’”
[dmdba@~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=“RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmdbms/data/DAMENG/bak/BACKUP_FILE’”
[dmdba@~]$ /home/dmdba/dmdbms/bin/dmrman CTLSTMT=“RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ UPDATE DB_MAGIC”

9.主库-配置监视器

vim /home/dmdba/dmdbms/bin/dmmonitor.ini
MON_DW_CONFIRM = 0 #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH = /home/dmdba/dmdbms/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 50 #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT = 1024 #日志上限,单位MB

[GRWC1]
MON_INST_OGUID = 453331 #组GRWC1的唯一OGUID值
MON_DW_IP = 192.168.10.58:52141 #IP对应MAL_HOST,PORT对应MAL_DW_PORT
MON_DW_IP = 192.168.10.59:52142

10.注册监视器

su - root
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini

11.启动数据库并修改参数

服务器A-主库启动到mount状态
/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
./disql SYSDBA/SYSDBA
SQL>sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
SQL>sp_set_oguid(453331);
SQL>alter database primary;
SQL>sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
停库

服务器B-备库启动到mount状态
/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
./disql SYSDBA/SYSDBA
SQL>sp_set_para_value(1,‘ALTER_MODE_STATUS’,1);
SQL>sp_set_oguid(45331);
SQL>alter database standby;
SQL>sp_set_para_value(1,‘ALTER_MODE_STATUS’,0);
停库

12.启动主备库数据库服务

服务器A-主库
/home/dmdba/dmdbms/bin/DmServiceRWC1_01 start

服务器B-备库
/home/dmdba/dmdbms/bin/DmServiceRWC1_02 start

启动后,主备库状态应该是mount状态,只有所有DmWatcherServiceWatcher启动后,才会变成open状态

13.启动主备库守护服务

服务器A-主库
/home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start

服务器B-备库
/home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start

14.启动监视器

启动确认监视器
/home/dmdba/dmdbms/bin/DmMonitorServiceMonitor start

非确认模式前台启动方法
/home/dmdba/dmdbms/bin/dmmonitor /home/dmdba/dmdbms/bin/dmmonitor.ini

至此,主备集群搭建完毕。

达梦社区地址:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值