/**PageBeginHtml Block Begin **/ /***自定义返回顶部小火箭***/ /*生成博客目录的JS 开始*/ /*生成博客目录的JS 结束*/

达梦实时主备集群搭建

达梦实时主备集群搭建



连亚伟

于 2023-07-31 19:09:38 发布

34
  收藏
文章标签: 数据库
版权
  达梦镜像文件下载地址
产品下载 | 达梦数据库

一、前期准备工作


需要准备至少三台服务器,一台部署主库,一台部署确认监视器,备库最少一台,最多可部署8台

以下为主库和备库配置信息(IP地址和实例名等配置信息根据实际情况进行修改,心跳IP为内网网卡,可公用一套IP)

image

image


以下为三台服务器前期准备工作

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 /dm
将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall

chown dmdba:dinstall -R /dm8/
 
chmod -R 755 /dm8

5.上传DM8镜像文件并挂载


  将镜像文件上传到/opt目录下

挂载镜像

mount -o loop /opt/dm8_20230625_x86_kylin10_64.iso /mnt​

6.开始安装


切换到dmdba用户下,进入mnt目录,用命令行安装数据库

su - dmdba
cd /mnt
./DMInstall.bin -i

安装语言选择中文C

是否选择输入key文件路径,选择N

是否设置时区,选择Y,时区选择21

安装类型选择典型安装

选择安装路径为/dm,确认后等待安装即可

配置环境变量

切换到root用户,进入dmdba根目录,修改bash_profile文件,配置环境变量

export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
切换到dmdba用户,进入/home/dmdba目录,执行以下命令,使环境变量生效

source .bash_profile

  7.配置实例


主库和备库需要配置实例,监视器可以不用配置

使用dmdba用户配置实例

进入达梦安装bin目录

cd /dm/bin
默认参数初始化实例

./dminit path=/dm/data

​二、主库配置


1.初始化实例


dminit PATH=/dm/data/ INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

2.启动服务


dmserver /dm/data/DAMENG/dm.ini

3.开启归档


重新打开shell窗口,进入disql

disql SYSDBA/SYSDBA
分别执行一下命令,开启归档

ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

4.备份数据


备份到指定路径,该路径可修改

BACKUP DATABASE BACKUPSET '/dmtmp/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 /dm/data/DAMENG/dmarch.ini
编辑内容

ARCH_WAIT_APPLY            = 0   #0:高性能 1:事务一致
[ARCHIVE_LOCAL]
ARCH_TYPE                = LOCAL  #本地归档类型
ARCH_DEST                = /dm/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文件相同,编辑内容如下

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.243.136  #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT                 = 5336  #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST            = 192.168.243.136  #实例的对外服务 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.243.135
MAL_PORT                 = 5336
MAL_INST_HOST            = 192.168.243.135
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 5436
MAL_INST_DW_PORT         = 5536

8.创建dmwatcher.ini


同dmmal.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                 = /dm/data/DAMENG/dm.ini  #dm.ini 文件路径
INST_AUTO_RESTART        = 1  #打开实例的自动启动功能
INST_STARTUP_CMD         = /dm/bin/dmserver  #命令行方式启动
RLOG_SEND_THRESHOLD      = 0  #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭

9.注册服务


/dm/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dm/data/DAMENG/dm.ini -m mount
/dm/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm/data/DAMENG/dmwatcher.ini

三、备库配置


将主库备份文件放到备库相同路径下

1.初始化实例


dminit PATH=/dm/data/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

2.恢复数据


dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dmtmp/BACKUP_FILE'"
dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dmtmp/BACKUP_FILE'"
dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

3.创建dmarch.ini


ARCH_WAIT_APPLY            = 0  #0:高性能  1:事务一致
 
[ARCHIVE_LOCAL]
ARCH_TYPE                = LOCAL  #本地归档类型
ARCH_DEST                = /opt/dmdbms/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修改一下参数

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.注册服务


/dm/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dm/data/DAMENG/dm.ini -m mount
/dm/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dm/data/DAMENG/dmwatcher.ini

四、监视器配置


1.创建dmmonitor.ini


存放路径/dm/bin

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.1.1:5436  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP                = 192.168.1.2:5436

2.注册服务


/dm/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dm/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 /dm/bin/dmmonitor.ini

六、启停集群


##启动


##主库/备库


[dmdba@~]$ /opt/dmdbms/bin/DmWatcherServiceWatcher start
 

##停止


##主库/备库


[dmdba@~]$ /opt/dmdbms/bin/DmWatcherServiceWatcher stop


##主库


[dmdba@~]$ /opt/dmdbms/bin/DmServiceGRP1_RT_01 stop


##备库


[dmdba@~]$ /opt/dmdbms/bin/DmServiceGRP1_RT_02 stop


  达梦官网地址:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台



posted @ 2023-09-12 14:57  一品堂.技术学习笔记  阅读(144)  评论(0编辑  收藏  举报