达梦实时主备集群搭建
  Bj5hMCbcxLzH 2023年11月02日 55 0

达梦实时主备集群搭建目录

  • 一、前期准备工作
  • 1.关闭防火墙
  •   2.root用户创建用户组和用户
  • 3.设置dmdba用户文件打开最大数
  • 4.创建安装目录并赋权
  • 5.上传DM8镜像文件并挂载
  • 6.开始安装
  •   7.配置实例
  • 二、主库配置
  • 1.初始化实例
  • 2.启动服务
  • 3.开启归档
  • 4.备份数据
  • 5.修改dm.ini
  •   6.创建dmarch.ini
  • 7.创建dmmal.ini
  • 8.创建dmwatcher.ini
  • 9.注册服务
  • 三、备库配置
  • 1.初始化实例
  • 2.恢复数据
  • 3.创建dmarch.ini
  • 4.配置 dm.ini、dmmal.ini 和 dmwatcher.ini
  • 5.注册服务
  • 四、监视器配置
  • 1.创建dmmonitor.ini
  • 2.注册服务
  • 五、启动服务及修改配置信息
  • 1.主库启动
  • 2.修改主库参数
  • 3.备库启动
  • 4.修改备库参数
  • 5.启动守护进程
  • 6.启动监视器
  • 六、启停集群
  • ##启动
  • ##停止

 



作者:连亚伟


一、前期准备工作

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

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

达梦实时主备集群搭建_IP

达梦实时主备集群搭建_IP_02

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

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


达梦实时主备集群搭建_IP_03

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

达梦实时主备集群搭建_守护进程_04

安装语言选择中文C

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

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


达梦实时主备集群搭建_守护进程_05

安装类型选择典型安装

选择安装路径为/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

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



为人:谦逊、激情、博学、审问、慎思、明辨、 笃行
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
Bj5hMCbcxLzH