首页 > 其他分享 >达梦实时主备集群搭建

达梦实时主备集群搭建

时间:2024-02-02 09:36:19浏览次数:30  
标签:dmdba dm 集群 ini dm8 主备 data MAL 达梦

达梦实时主备集群搭建

达梦镜像文件下载地址

https://eco.dameng.com/download/

image-20240125202132500

image-20240125202156585

一、前期准备工作

需要准备至少三台服务器,一台部署主库,一台部署确认监视器,备库最少一台,最多可部署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

image.png

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

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

image-20240125203352070

4.创建安装目录并赋权
退出dmdba用户,创建安装目录

mkdir /dm8

将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall

chown dmdba:dinstall -R /dm8/

chmod -R 755 /dm8

5.上传DM8镜像文件并挂载
将镜像文件上传到/opt目录下

image-20240125204051515

挂载镜像

mount -o loop /opt/dm8_20240116_x86_rh7_64.iso /mnt

image-20240125204312827

6.开始安装

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

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

image-20240125205630819

安装类型选择典型安装

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

image-20240125205742473

image-20240126082157972

sh /dm8/script/root/root_installer.sh

image-20240126082303062

image-20240126082354592

配置环境变量

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

vim /home/dmdba/.bash_profile
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

su - dmdba
source .bash_profile

image-20240126084716484

7.配置实例

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

使用dmdba用户配置实例

进入达梦安装bin目录

cd /dm8/bin

默认参数初始化实例

./dminit path=/dm8/data

image-20240126085927546

二、主库配置

1.初始化实例

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

image-20240126090106633

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;

image-20240126090532551

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

image-20240126091217910

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  #指定备库重演日志的时间阈值,默认关闭

image-20240126091335199

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

image-20240126091446037

三、备库配置

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

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"

image-20240126092051755

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 次的日志重演信息

image-20240126093340038

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

image-20240126093748026

四、监视器配置

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

image-20240126095303433

6.启动监视器

DmMonitorServiceMonitor start

查看监视器日志

dmmonitor /dm8/bin/dmmonitor.ini

image-20240126095446537

六、启停集群

##启动
##主库/备库
[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

相关文章

  • 在K8S中,集群可以做哪些优化?
    在Kubernetes(简称K8s)集群中,可以进行多种优化以提升性能、稳定性和资源利用率。以下是一些常见的优化措施:控制面组件优化:kube-apiserver高可用与扩展:通过配置多个API服务器实例并使用负载均衡器分发请求,确保即使单个节点故障也不会影响服务;设置合适的内存和CPU限制,监控其性能......
  • 单节点多集群流量转发方法
    引言在实验环境(裸机)中部署多个有雀CRC集群(CRC介绍请看 容器云平台本地集群UCCPSCRC介绍),导致集群间抢占宿主机80、443端口情况,本文用外部负载均衡方案解决端口冲突问题。当然本方法也对裸机搭建的Kubernete的Ingress或者gatewayAPI也有效。本方案适用于根据域名转发流量的......
  • db2主备部署hadr(单个数据库)
    主库:192.168.1.135host135从库:192.168.1.134host134 说明:a.主库已经运行并有数据库DB_HXL可以使用如下命令查看:db2listdatabasedirectory b.主数据库已经处于归档模式,做了主备后,备库也会是归档模式,归档路径与主库配置的是一样的,这就需要备库提前有相应的目录.d......
  • 搭建K8S集群
    搭建K8S集群部署环境三台2核2G20G硬盘的服务器或虚拟机,文中使用的系统是centos7.9docker:19.03.15-3.el7kubernetes:1.23.6初始化操作关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld关闭selinuxsed-i's/enforcing/disabled/'/etc/selinux/config......
  • Redis三种集群模式:主从模式、哨兵模式和Cluster模式
    Redis三种集群模式:主从模式、哨兵模式和Cluster模式1、背景及介绍Redis支持三种不同的集群模式:主从模式、哨兵模式和Cluster模式,各具特色,应对不同的应用场景。初始阶段,Redis采用主从模式进行集群构建。在此模式中,主节点(master)负责数据写入,而从节点(slave)则用于数据读取和备份......
  • Redis集群方案和数据分区原理介绍
    Redis集群方案主从模式一主多从,主节点负责写数据,从节点负责读数据,主节点定期把数据同步到从节点保证数据的一致性。避免单点故障,实现了读写分离。优点:主从结构具有读写分离、提高效率、数据备份、提供多个副本等优点。缺点:不具备恢复功能,如果主节点宕机,则不能提供服务,需......
  • 达梦数据库配置-主备
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>spring:datasource:driver-class-name:dm.jdbc.driver.DmD......
  • AirSim多无人机协同集群编队
    首先要修改settings.json文件,来设置多无人机的初始位置{"SeeDocsAt":"https://github.com/Microsoft/AirSim/blob/main/docs/settings.md","SettingsVersion":1.2,"SimMode":"Multirotor","Vehicles":{&qu......
  • 达梦---自定义函数 find_in_set()
    createorreplaceFUNCTIONFIND_IN_SET(piv_str1varchar2,piv_str2varchar2,p_sepvarchar2:=',')RETURNNUMBERISl_idxnumber:=0;--用于计算piv_str2中分隔符的位置strvarchar2(500);--根据分隔符截取的子字符串piv_......
  • Java连接kubernates集群最优雅的两种方式
    创建maven工程,pom.xml中引入连接k8s的客户端jar包:<properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><fabric.io.version>6.10.0</fabric.io.version></properties......