当前位置: 首页 > news >正文

达梦数据库dsc集群+实时主备

本文讨论了在达梦dsc集群搭建好的情况下部署实时主备的相关操作,涵盖了环境配置、软件安装、数据库初始化、备份还原及多种文件配置等内容。关键要点包括:

1.环境准备

操作环境为VMware Workstation 16 Pro,各节点操作系统为kylin-v10,资源配置均为4核4G、磁盘20g,需关闭防火墙,创建用户组和用户,调整系统资源限制。

2.软件安装与初始化

下载达梦8镜像并解压挂载,切换到dmdba用户安装,若/tmp空间不足需指定临时目录,安装完成后初始化数据库并配置服务。

3.数据备份还原

在DMDSC0节点备份dsc集群数据,通过scp传输到备库还原。

4.配置文件修改

修改dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini等文件,各节点按要求设置参数。

5.实例启动与模式设置:

将所有实例修改为mount启动方式后启动,设置节点的oguid和模式,主库设为primary,备库设为standby。

6.服务注册与启动

注册数据守护服务并启动守护进程,配置并启动监视器查看主备状态。

7.启动与关闭顺序:

明确启动顺序为从控制节点css服务到监视器等;关闭顺序则相反,从监视器到控制节点css服务 。

一、dsc集群搭建参考:《DSC集群部署-udev方式绑定磁盘》

在DSC集群搭建好的情况下部署实时主备

1、集群服务启动示例:

1.1、dmdsc0主节点

1.2、dmdsc1主节点

1.3、登录监视器192.168.52.50

show 查看DSC集群状态

2、环境资源分配

操作环境:VMware Workstation Pro 17

dmdsc集群

机器ip

主机名

操作系统

资源配置

实例名

dmdsc0

(控制节点)

192.168.52.50

dmdsc0

kylin-v10

4核4G,磁盘20g

DMDSC0

dmdsc1

192.168.52.51

dmdsc1

kylin-v10

4核4G,磁盘20g

DMDSC1

监视器

192.168.52.50

dmcssm

kylin-v10

4核4G,磁盘20g

备库

192.168.52.53

node1

kylin-v10

4核4G,磁盘20g

NODE1

dmdsc集群

机器ip

实例名

达梦软件安装目录

数据存储目录

dmdsc0(控制节点)

192.168.52.50

DMDSC0

/dm8/dminstall

/dm8/data

dmdsc1

192.168.52.51

DMDSC1

/dm8/dminstall

/dm8/data

监视器

192.168.52.32

/dm8/dminstall

/dm8/data

备库

192.168.52.33

NODE1

/dm8/dminstall

/dm8/data

二、备库安装达梦数据库并初始化实例

1、关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2、创建用户组、用户、安装目录:

创建用户组和用户

groupadd dinstall
useradd -g dinstall dmdba
echo "Dameng123" |passwd --stdin dmdba

dminstall是达梦数据库软件安装的位置,dmdata是达梦数据库实例存放位置,dmarch是达梦数据库归档日志存放位置,dmbak是达梦数据库备份文件存放位置

mkdir -p /dm8/{dminstall,dmdata,dmarch,dmbak}
chown -R dmdba:dinstall /dm8
chmod -R 755 /dm8


3、调整系统资源限制:

在/etc/security/limits.conf文件里面追加下面的内容

vim /etc/security/limits.conf
##内容如下:
dmdba   soft    nofile  65536
dmdba   hard    nofile  65536
dmdba   soft    nproc   65536
dmdba   hard    nproc   65536

4、下载镜像

达梦数据库镜像,官方下载:

产品下载 | 达梦在线服务平台

5、挂载镜像:

 mount -o loop dm8_20230925_x86_rh6_64.iso /mnt/

6、切换dmdba用户,安装数据库

su - dmdba
/mnt/DMInstall.bin -i

root用户下执行命令

/dm8/dminstall/script/root/root_installer.sh

数据库创建完毕!!!

7、初始化数据库与配置服务

7.1、初始化数据库(在dmdba用户下执行)

具体的使用参数参考官方文档:查看 dminit 参数

su - dmdba
/dm8/dminstall/bin/dminit path=/dm8/dmdata db_name=DSC instance_name=NODE1 port_num=5236

7.2、配置服务(在dmdba用户下执行)

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmService ./DmServiceNODE1
# 修改DmServiceNODE1文件
vim DmServiceNODE1#修改内容
INI_PATH=%INI_PATH% 改为 INI_PATH=/dm8/dmdata/DSC/dm.ini# 启动数据库实例,看看是否正常
./DmServiceNODE1 start# 如果正常,停止实例
./DmServiceNODE1 stop

三、登录到css监视器(192.168.52.50节点),

1、停止dsc集群组

su - dmdba
cd /dm8/dminstall/bin
./dmcssm /dm8/dmdata/dmcssm.ini

# 执行命令停止dsc集群组,停止所有实例
ep stop GRP_DSC

注意:这里只需关掉实例,其他的两个服务无需关闭

2、备份dsc集群数据,到备库还原

2.1、DMDSC0(192.168.52.50)节点备份数据:

su - dmdba
cd /dm8/dminstall/bin
# dsc集群备份数据要指定dmdcr.ini配置文件
./dmrman dcr_ini=/dm8/dmdata/dmdcr.ini

注意:DmCSSServiceDMCSS0、DmASMSvrServiceDMASM0 这两个服务不能关闭,不然会报错

错误启动:

正常启动:

对数据库全备,完成后退出

backup database '/dm8/dmdata/dsc0/dm.ini' full backupset '/dm8/dmbak/dsc_full';
check backupset '/dm8/dmbak/dsc_full';
exit

把备份的数据库文件scp给备库

scp -r /dm8/dmbak/dsc_full dmdba@192.168.52.53:/dm8/dmbak/dsc_full

2.2、备库node1(192.168.52.53)还原数据库:

su - dmdba
cd /dm8/dminstall/bin
./dmrman
check backupset '/dm8/dmbak/dsc_full';
restore database '/dm8/dmdata/DSC/dm.ini' from backupset '/dm8/dmbak/dsc_full';
recover database '/dm8/dmdata/DSC/dm.ini' from backupset '/dm8/dmbak/dsc_full';
recover database '/dm8/dmdata/DSC/dm.ini' update db_magic;
exit
# 还原成功并退出

四、修改dm.ini配置文件(dmdba用户操作)

1、DMDSC0节点:

su - dmdba
vim /dm8/dmdata/dsc0/dm.ini# 修改内容如下
INSTANCE_NAME = DMDSC0     #不用改动
PORT_NUM = 5236            #数据库实例监听端口 
ALTER_MODE_STATUS = 0      #不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2      #不允许备库 OFFLINE 表空间 
MAL_INI = 1                #打开 MAL 系统
ARCH_INI = 1               #打开归档配置

验证参数:

cat /dm8/dmdata/dsc0/dm.ini|grep -E "INSTANCE_NAME|PORT_NUM|ALTER_MODE_STATUS|ENABLE_OFFLINE_TS|MAL_INI|ARCH_INI"|grep -v _PORT_NUM

2、DMDSC1节点:

su - dmdba
vim /dm8/dmdata/dsc1/dm.ini
# 修改内容如下
INSTANCE_NAME = DMDSC1     #不用改动
PORT_NUM = 5236            #数据库实例监听端口 
ALTER_MODE_STATUS = 0      #不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2      #不允许备库 OFFLINE 表空间 
MAL_INI = 1                #打开 MAL 系统
ARCH_INI = 1               #打开归档配置

验证参数:

cat /dm8/dmdata/dsc1/dm.ini|grep -E "INSTANCE_NAME|PORT_NUM|ALTER_MODE_STATUS|ENABLE_OFFLINE_TS|MAL_INI|ARCH_INI"|grep -v _PORT_NUM

3、备库192.168.52.53:

su - dmdba
vim /dm8/dmdata/DSC/dm.ini# 修改内容如下
INSTANCE_NAME = NODE1     #不用改动
PORT_NUM = 5236            #数据库实例监听端口 
ALTER_MODE_STATUS = 0      #不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2      #不允许备库 OFFLINE 表空间 
MAL_INI = 1                #打开 MAL 系统
ARCH_INI = 1               #打开归档配置

验证参数:

cat /dm8/dmdata/DSC/dm.ini|grep -E "INSTANCE_NAME|PORT_NUM|ALTER_MODE_STATUS|ENABLE_OFFLINE_TS|MAL_INI|ARCH_INI"|grep -v _PORT_NUM

五、配置dmmal.ini文件(dmdba用户操作)

所有节点的dmmal配置都要一致,DMDSC0、DMDSC1、NODE1; 之前如果存在配置全部注释掉

1、配置dmmal.ini文件

vim /dm8/dmdata/dsc0/dmmal.ini
##内容如下
MAL_CHECK_INTERVAL=87
MAL_CONN_FAIL_INTERVAL=180
MAL_SYS_BUF_SIZE=600
MAL_BUF_SIZE=300
MAL_VPOOL_SIZE=500
MAL_COMPRESS_LEVEL=0
[MAL_INST0]
MAL_INST_NAME = DMDSC0
MAL_HOST = 192.168.52.50
MAL_PORT = 11246
MAL_INST_HOST = 192.168.52.50  #节点1内网ip
MAL_INST_PORT = 5236  #数据库端口
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
[MAL_INST1]
MAL_INST_NAME = DMDSC1
MAL_HOST = 192.168.52.51
MAL_PORT = 11246
MAL_INST_HOST = 192.168.52.51  #节点2内网ip
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
[MAL_INST2]
MAL_INST_NAME = DMSERVER
MAL_HOST = 192.168.52.53
MAL_PORT = 11246
MAL_INST_HOST = 192.168.52.53
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276

2、远程传输文件到DMDSC1

scp dmmal.ini 192.168.52.51:/dm8/dmdata/dsc1/

3、远程传输文件到node1

scp dmmal.ini 192.168.52.53:/dm8/dmdata/DSC/

六、配置dmarch.ini(dmdba用户操作)

1、DMDSC0节点:

su - dmdba
vim /dm8/dmdata/dsc0/dmarch.ini
# 内容如下:
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/ARCH/DMDSC0
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC1
ARCH_INCOMING_PATH = +DMDATA/ARCH/DMDSC1
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME 
ARCH_DEST = NODE1   #备库实例名

2、DMDSC1节点:

su - dmdba
vim /dm8/dmdata/dsc1/dmarch.ini
# 内容如下:
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/ARCH/DMDSC1
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC0
ARCH_INCOMING_PATH = +DMDATA/ARCH/DMDSC0
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME 
ARCH_DEST = NODE1   #备库实例名

3、备库192.168.52.53:

su - dmdba
vim /dm8/dmdata/DSC/dmarch.ini
# 内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME 
ARCH_DEST = DMDSC0/DMDSC1   # 主库的实例名

七、配置dmwatcher.ini

1、DMDSC0节点配置dmwatcher.ini 守护线程:

su - dmdba
vim /dm8/dmdata/dsc0/dmwatcher.ini
# 内容如下:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /dm8/dmdata/dsc0/dm.ini
DCR_INI=/dm8/dmdata/dmdcr.ini
INST_STARTUP_CMD = /dm8/dminstall/bin/DmServiceDMDSC0 start
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

2、DMDSC1节点配置守护线程文件:

su - dmdba
vim /dm8/dmdata/dsc1/dmwatcher.ini
# 内容如下:
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /dm8/dmdata/dsc1/dm.ini
DCR_INI=/dm8/dmdata/dmdcr.ini
INST_STARTUP_CMD = /dm8/dminstall/bin/DmServiceDMDSC1 start
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

3、备库node1节点(192.168.52.53)配置守护线程:

su -dmdba
vim /dm8/dmdata/DSC/dmwatcher.ini
# 内容如下:
[GRP1] 
DW_TYPE = GLOBAL #全局守护类型 
DW_MODE = MANUAL#手动切换模式 
DW_ERROR_TIME = 120 #远程守护进程故障认定时间 
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 
INST_ERROR_TIME = 120 #本地实例故障认定时间 
INST_OGUID = 453331 #守护系统唯一 OGUID 值 
INST_INI = /dm8/dmdata/DSC/dm.ini #dm.ini 配置文件路径 
INST_AUTO_RESTART = 0 #设置实例不自动拉起
INST_STARTUP_CMD = /dm8/dminstall/bin/DmServiceNODE1 start #后台方式启动 
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

八、把所有实例修改成mount启动方式(dmdba用户操作)

1、DMDSC0节点(192.168.52.50):

su - dmdba
vim /dm8/dminstall/bin/DmServiceDMDSC0# 修改内容:
START_MODE=open 修改成 START_MODE=mount

2、DMDSC1节点(192.168.52.51):

su - dmdba
vim /dm8/dminstall/bin/DmServiceDMDSC1# 修改内容:
START_MODE=open 修改成 START_MODE=mount

3、备库node1(192.168.52.53):

su - dmdba
vim /dm8/dminstall/bin/DmServiceNODE1# 修改内容:
START_MODE=open 修改成 START_MODE=mount

九、启动dsc集群实例和备库(dmdba用户操作)

上一步修改过服务的启动方式,这里直接执行服务,启动就mount状态。

1、DMDSC0节点(192.168.52.50):

su - dmdba
/dm8/dminstall/bin/DmServiceDMDSC0 start

2、DMDSC1节点(192.168.52.51):

su - dmdba
/dm8/dminstall/bin/DmServiceDMDSC1 start

3、备库node1(192.168.52.53):

su - dmdba
/dm8/dminstall/bin/DmServiceNODE1 start

十、修改节点的oguid和模式(dmdba用户操作)

1、DMDSC0节点(192.168.52.50):

su - dmdba
cd /dm8/dminstall/bin
./disqlSP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
sp_set_oguid(453331);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit

2、DMDSC1节点(192.168.52.51):

su - dmdba
cd /dm8/dminstall/bin
./disqlSP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
sp_set_oguid(453331);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit

3、备库node1(192.168.52.53):

su - dmdba
cd /dm8/dminstall/bin
./disqlSP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
sp_set_oguid(453331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit

十一、注册数据守护服务并启动守护进程(dmdba用户操作)

1、DMDSC0节点(192.168.52.50):

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmWatcherService ./DmWatcherServiceDMDSC0
# 修改DmWatcherServiceDMDSC0文件
vim DmWatcherServiceDMDSC0INI_PATH=%INI_PATH% 修改为 INI_PATH=/dm8/dmdata/dsc0/dmwatcher.ini# 启动DMDSC0节点的守护进程
./DmWatcherServiceDMDSC0 start

2、DMDSC1节点(192.168.52.51):

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmWatcherService ./DmWatcherServiceDMDSC1
# 修改DmWatcherServiceDMDSC1文件
vim DmWatcherServiceDMDSC1INI_PATH=%INI_PATH% 修改为 INI_PATH=/dm8/dmdata/dsc1/dmwatcher.ini# 启动DMDSC1节点的守护进程
./DmWatcherServiceDMDSC1 start

3、备库node1(192.168.52.53):

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmWatcherService ./DmWatcherServiceNODE1
# 修改DmWatcherServiceNODE1文件
vim DmWatcherServiceNODE1INI_PATH=%INI_PATH% 修改为 INI_PATH=/dm8/dmdata/DSC/dmwatcher.ini# 启动备库192.168.52.53节点的守护进程
./DmWatcherServiceNODE1 start

11.4、启动守护

十二、配置监视器并启动监视器查看主备状态(在192.168.58.42机器上操作)

1、添加监视器配置文件dmmonitor.ini

su - dmdba
vim /dm8/dmdata/dmmonitor.ini
# 内容如下:
MON_DW_CONFIRM = 0
MON_LOG_PATH = /dm8/dmdata/dmmonitor_log  #根据实际环境修改路径
MON_LOG_INTERVAL = 0 
MON_LOG_FILE_SIZE = 32 
MON_LOG_SPACE_LIMIT = 0 
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.52.50:52141/192.168.52.51:52141
MON_DW_IP = 192.168.52.53:52141
[dmdba@~]$ vi /opt/dmdbms/bin/dmmonitor.iniMON_DW_CONFIRM             = 1  #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、启动监视器

cd /dm8/dminstall/bin
./dmmonitor /dm8/dmdata/dmmonitor.ini

3、查看主备集群状态

show

4、切换主备,测试是否正常

4.1、查看可以切换成主库的备机

choose switchover

4.2、登录

login 

4.2、切换主备,GRP1组名,STANDBY实例名

switchover GRP1.NODE1

十三、启动顺序

1、启动dsc集群控制节点(DMDSC0)的css服务

2、启动dsc集群其它普通节点(DMDSC1)的css服务

3、启动dmcssm监视器(192.168.52.50机器),监视dsc集群

4、启动dsc集群控制节点(DMDSC0)的asm服务

5、启动dsc集群其它普通节点(DMDSC1)的asm服务

6、启动主库(dsc集群的所有节点)的实例

7、启动备库(192.168.52.53机器)的实例

8、启动主库(dsc集群的所有节点)的数据守护进程

9、启动备库(192.168.52.53机器)的数据守护进程

10、启动dmmonitor监视器(192.168.52.50),监视主备集群

十四、关闭顺序

1、关闭dmmonitor监视器(192.168.52.50)

2、关闭备库(192.168.52.53机器)的数据守护进程

3、关闭主库(dsc集群的所有节点)的数据守护进程

4、关闭主库(dsc集群的所有节点)的实例

5、关闭备库(192.168.52.53机器)的实例

6、关闭dsc集群其它普通节点(DMDSC1)的asm服务

7、关闭dsc集群控制节点(DMDSC0)的asm服务

8、关闭dmcssm监视器(192.168.52.50机器)

9、关闭dsc集群其它普通节点(DMDSC1)的css服务

10、关闭dsc集群控制节点(DMDSC0)的css服务

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

相关文章:

  • 前端面试题之将自定义数据结构转化成DOM元素
  • 8.Vue的watch监视
  • Swift基础语法详解
  • C++(5)
  • FreeRTOS互斥量
  • Docker部署minio
  • 归并排序详解:优雅的分治艺术
  • 31.Python编程实战:自动化批量压缩与解压文件
  • 地址解析协议(ARP):交换机中的深度解析与实战指南
  • 扁平风格职场商务通用PPT模版分享
  • 企业级RAG系统架构设计与实现指南(基于Java技术栈)
  • 【技巧】win10和ubuntu互相挂在共享文件夹
  • Python爬虫实战:研究cssselect相关技术
  • Master PDF Editor:全能PDF编辑工具
  • 医院重症监护系统 ICU重症病房管理系统 重症监护软件
  • 根据 LiDAR 株高数据计算植被生物量
  • DeviceNet转Modbus RTU网关在玻璃制造中的关键应用
  • QT第一课 —— 设置CMake路径
  • 大语言模型的局限性与RAG基本框架和工作流实例
  • Oracle中10个索引优化
  • 海口h5建站模板/中国站长站
  • 别的网站可以做弹幕/网站收录查询方法
  • 一般通过逸民/宁波seo网络推广产品服务
  • 如何在电脑上建立网站/网站建站系统
  • 做it看日常看哪些网站/关键词优化最好的方法
  • 政务网站建设原则/网站seo是什么