达梦实时主备集群搭建
达梦镜像文件下载地址
https://eco.dameng.com/download/
一、前期准备工作
需要准备至少三台服务器,一台部署主库,一台部署确认监视器,备库最少一台,最多可部署8台
以下为主库和备库配置信息(IP地址和实例名等配置信息根据实际情况进行修改,心跳IP为内网网卡,可公用一套IP)
配置项 主库 备库
业务IP 192.168.243.136 192.168.243.135
心跳IP 192.168.244.136 192.168.244.135
实例名 GRP1_RT_01 GRP1_RT_02
实例端口 5236 5236
MAL 端口 5336 5336
MAL 守护进程端口 5436 5436
守护进程端口 5536 5536
OGUID 45331 45331
守护组 GRP1 GRP1
安装目录 /dm /dm
实例目录 /dm/data /dm/data
归档上线 51200 51200
以下为三台服务器前期准备工作
1.关闭防火墙
方便远程连接数据库以及集群间传递归档日志和监控
systemctl stop firewalld
2.root用户创建用户组和用户
创建用户组
groupadd dinstall
创建用户
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
修改dmdba登陆密码
passwd dmdba
3.设置dmdba用户文件打开最大数,在最下面输入
vim /etc/security/limits.conf
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384
root切换到dmdba,查看是否生效
su - dmdba
ulimit -a
4.创建安装目录并赋权
退出dmdba用户,创建安装目录
mkdir /dm8
将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall
chown dmdba:dinstall -R /dm8/
chmod -R 755 /dm8
5.上传DM8镜像文件并挂载
将镜像文件上传到/opt目录下
挂载镜像
mount -o loop /opt/dm8_20240116_x86_rh7_64.iso /mnt
6.开始安装
切换到dmdba用户下,进入mnt目录,用命令行安装数据库
su - dmdba
cd /mnt
./DMInstall.bin -i
安装类型选择典型安装
选择安装路径为/dm,确认后等待安装即可
sh /dm8/script/root/root_installer.sh
配置环境变量
切换到root用户,进入dmdba根目录,修改bash_profile文件,配置环境变量
vim /home/dmdba/.bash_profile
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
su - dmdba
source .bash_profile
7.配置实例
主库和备库需要配置实例,监视器可以不用配置
使用dmdba用户配置实例
进入达梦安装bin目录
cd /dm8/bin
默认参数初始化实例
./dminit path=/dm8/data
二、主库配置
1.初始化实例
dminit PATH=/dm8/data/ INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
2.启动服务
dmserver /dm8/data/DAMENG/dm.ini
3.开启归档
重新打开shell窗口,进入disql
disql SYSDBA/SYSDBA
分别执行一下命令,开启归档
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;
4.备份数据
备份到指定路径,该路径可修改
BACKUP DATABASE BACKUPSET '/dm8/backup_file';
5.修改dm.ini
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);
6.创建dmarch.ini
创建dmarch.ini文件,存放到/dm/data/DAMENG目录下
编辑命令
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_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
7.创建dmmal.ini
与dmarch.ini文件相同,编辑内容如下
vim /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 10 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
MAL_TEMP_PATH = /opt/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 = GRP1_RT_01 #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST = 192.168.100.121 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5336 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.100.121 #实例的对外服务 IP 地址即心跳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.100.122
MAL_PORT = 5336
MAL_INST_HOST = 192.168.100.122
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
8.创建dmwatcher.ini
同dmmal.ini,编辑内容
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 #指定备库重演日志的时间阈值,默认关闭
9.注册服务
/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
三、备库配置
将主库备份文件放到备库相同路径下
scp /dm8/backup_file/* [email protected]:/dm8/backup_file/
1.初始化实例
dminit PATH=/dm8/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048
2.恢复数据
dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup_file'"
dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup_file'"
dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
3.创建dmarch.ini
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_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_01 #实时归档目标实例名
4.配置 dm.ini、dmmal.ini 和 dmwatcher.ini
dmmal.ini 和 dmwatcher.ini文件与主库文件内容和路径相同
dm.ini修改一下参数
vim /dm8/data/DAMENG/dm.ini
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 次的日志重演信息
5.注册服务
/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
四、监视器配置
1.创建dmmonitor.ini
存放路径/dm8/bin
vim /dm8/bin/dmmonitor.ini
MON_DW_CONFIRM = 0 #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH = ../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.100.121:5436 #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP = 192.168.100.122:5436
2.注册服务
/dm8/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dm8/bin/dmmonitor.ini
五、启动服务及修改配置信息
1.主库启动
DmServiceGRP1_RT_01 start
2.修改主库参数
进入disql
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE PRIMARY;
3.备库启动
DmServiceGRP1_RT_02 start
4.修改备库参数
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE STANDBY;
5.启动守护进程
主库和备库都要启动
DmWatcherServiceWatcher start
6.启动监视器
DmMonitorServiceMonitor start
查看监视器日志
dmmonitor /dm8/bin/dmmonitor.ini
六、启停集群
##启动
##主库/备库
[dmdba@~]$ /dm8/bin/DmWatcherServiceWatcher start
##停止
##主库/备库
[dmdba@~]$ /dm8/bin/DmWatcherServiceWatcher stop
##主库
[dmdba@~]$ /dm8/bin/DmServiceGRP1_RT_01 stop
##备库
[dmdba@~]$ /dm8/bin/DmServiceGRP1_RT_02 stop
标签:dmdba,dm,集群,ini,dm8,主备,data,MAL,达梦
From: https://www.cnblogs.com/fxx2019/p/18002547