注册
数据守护集群
专栏/培训园地/ 文章详情 /

数据守护集群

Talking 2024/02/02 671 0 0
摘要

搭建数据守护集群

安装前准备

三台拥有双网卡的机器加上+机器上都安装DM8数据库。
思路:虚拟机可以添加多张网卡,把原始ens33作为外部网络,添加的ens37作为内网内连接,如下图所示:
image.png
image.png
image.png

对三台进行命令:
cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens36
和修改成静态获取ip,修改启动状态
BOOTPROTO=static
ONBOOT=yes

修改成ens36的网络信息
NAME=ens36
DEVICE=ens36

IPADDR=192.168.68.111 # 三台机器配置不同ip
NETMASK=255.255.255.255
GATEWAY=192.168.68.2
PREFIX=24
最后重启网络即可完成配置:service network restart

准备完成后
监控器:watcher ens33: 192.168.146.135 ens37: 192.168.190.135

主机A: ens33: 192.168.146.136 ens37: 192.168.190.136

主机B: ens33: 192.168.146.137 ens34: 192.168.190.137

安装
配置A机器
初始化实例:
/dm8/bin/dminit PATH=/dm8/data/ INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

启动服务:
/dm8/bin/dmserver /dm8/data/DAMENG/dm.ini

开启归档:(上面的服务不要ctrl+c停止不然暴多无法连接)
连接:/dm8/bin/disql SYSDBA/SYSDBA@192.168.146.136:5236

在disql下执行一下四条代码:
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/bin/DAMENG/arch,TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

备份数据

(在disql下运行)
BACKUP DATABASE BACKUPSET '/dm8/data/DAMENG/bak/BACKUP_FILE';

修改配置文件

dm.ini、dmarch.ini、dmmal.ini、dmwatcher.ini
1、修改dm.ini文件: (在disql下运行)
SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SP_SET_PARA_VALUE (2,'MAL_INI',1);
SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);

2、vim /dm8/data/DAMENG/dmarch.ini
ARCH_WAIT_APPLY = 0 #0:高性能 1:事务一致
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch/ #本地归档存放路径
ARCH_FILE_SIZE = 1024 #单个归档大小,单位 MB
ARCH_SPACE_LIMIT = 51200 #归档上限,单位 MB
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = GRP1_RT_02 #即时归档目标实例名

3、vim /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
MAL_TEMP_PATH = /dm8/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 = GRP1_RT_01 #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST =192.168.190.136 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5336 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.146.136 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT = 5436 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5536 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.190.137
MAL_PORT = 5336
MAL_INST_HOST = 192.168.146.137
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536

4、vim /dm8/data/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME = 20 #远程守护进程故障认定时间
INST_ERROR_TIME = 20 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DAMENG/dm.ini #dm.ini 文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

拷贝备份文件到 B 机器:
scp -r /dm8/data/DAMENG/bak/BACKUP_FILE dmdba@192.168.146.137:/dm8/data/DAMENG/bak

注册GRP1_RT_01和Watcher服务(以root身份运行)
/dm8/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dm8/data/DAMENG/dm.ini -m mount

/dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm8/data/DAMENG/dmwatcher.ini

配置机器B
创建实例:
/dm8/bin/dminit PATH=/dm8/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

从机器A中获取的备份文件进行恢复:
/dm8/bin/dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/BACKUP_FILE'"
/dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/BACKUP_FILE'"
/dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

修改配置文件dm.ini、dmarch.ini、dmmal.ini、dmwatcher.ini

1、vim /dm8/data/DAMENG/dm.ini ((可以在vim下使用/加需要查找的参数进行修改))
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5236 #数据库实例监听端口
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 次的日志重演信息

2、vim /dm8/data/DAMENG/dmarch.ini
ARCH_WAIT_APPLY = 0 #0:高性能 1:事务一致
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch/ #本地归档存放路径
ARCH_FILE_SIZE = 1024 #单个归档大小,单位 MB
ARCH_SPACE_LIMIT = 51200 #归档上限,单位 MB
[ARCHIVE_TIMELY1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_01 #即时归档目标实例名

3、vim /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
MAL_TEMP_PATH = /dm8/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 = GRP1_RT_01 #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST = 192.168.190.136 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5336 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.146.136 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT = 5436 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5536 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.190.137
MAL_PORT = 5336
MAL_INST_HOST = 192.168.146.137
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536

4、vim /dm8/data/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME = 20 #远程守护进程故障认定时间
INST_ERROR_TIME = 20 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DAMENG/dm.ini #dm.ini 文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

注册GRP1_RT_01和Watcher服务(以root身份运行):
/dm8/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dm8/data/DAMENG/dm.ini -m mount

/dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm8/data/DAMENG/dmwatcher.ini

配置监视器

修改dmmonitor.ini配置文件:
1、vim /dm8/bin/dmmonitor.ini
MON_DW_CONFIRM = 0 #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH = ../log #监视器日志文件存放路径 /dm8/log
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位 MB
[GRP1]
MON_INST_OGUID = 45331 #组 GRP1 的唯一 OGUID 值
MON_DW_IP = 192.168.190.136:5436 #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP = 192.168.190.137:5436

启动

启动机器AB的服务并修改参数
机器A:
/dm8/bin/DmServiceGRP1_RT_01 start
/dm8/bin/disql SYSDBA/SYSDBA@192.168.146.136:5236
在disql下执行以下两条命令:
SP_SET_OGUID(45331);
ALTER DATABASE PRIMARY;

机器B:
/dm8/bin/DmServiceGRP1_RT_02 start
/dm8/bin/disql SYSDBA/SYSDBA@192.168.146.137:5236
在disql下执行以下两条命令:
SP_SET_OGUID(45331);
ALTER DATABASE STANDBY;
启动监视器
前台启动:
/dm8/bin/dmmonitor /dm8/bin/dmmonitor.ini
启动集群
/dm8/bin/DmWatcherServiceWatcher start

启动样式:
image.png

image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服