达梦数据库-数据共享集群部署

news/2024/12/26 22:49:52/

DSC集群部署

DM 数据共享集群又称为 DM 共享存储集群,英文全称 DM Data Shared Cluster,简称 DMDSC。
DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。

部署规划

以常用的2节点DSC集群为例
IP规划:

主机名服务ip心跳ip数据库实例名
dm01192.168.10.101192.168.10.101DSCDSC1
dm02192.168.10.102192.168.10.102DSCDSC2

端口规划:

实例名实例端口MAL系统端口CSS端口ASM端口ASM的MAL端口DCR检查实例端口
DSC1523692369341935172369741
DSC2523692369341935172369741

共享存储规划:
磁盘组 大小
DCR 1G
VOTE 1G
LOG 5G
DATA 18G
ARCH 5G

目录规划:(在对应服务器上创建目录owner为dmdba组为dinstall)
数据库软件安装目录 /home/dmdba/dmdbms
DSC配置文件目录 /home/dmdba/config
备份文件存放目录 /dmdata/dmbak/
DSC1本地归档目录 +DMARCH/dsc1
DSC1远程归档目录 +DMARCH/dsc2
DSC2本地归档目录 +DMARCH/dsc2
DSC2远程归档目录 +DMARCH/dsc1

操作系统配置

该步骤与单机部署一致,详情见 达梦数据库单机部署步骤

数据库软件安装

该步骤与单机部署一致,详情见 达梦数据库单机部署步骤

DSC集群部署配置

本地环境创建共享存储

这里我以windows+虚拟机环境为例
在cmd界面用命令手动创建共享磁盘

.\vmware-vdiskmanager.exe -c -s 40G -a lsilogic -t 2 "D:\DMshare\SHARE.vmdk" 

在这里插入图片描述
虚拟机添加共享磁盘(虚拟机处于关机状态操作)
dsc01

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

找到虚拟机文件,编辑文件追加两行参数

disk.locking="FALSE"
Scsi1:1.SharedBus="Virtual"

在这里插入图片描述
在这里插入图片描述
dsc02步骤按上述步骤添加硬盘即可
在这里插入图片描述
检查两台虚拟机磁盘配置情况
在这里插入图片描述
在这里插入图片描述

磁盘分区(一台机器配置即可,配置完成后另外一台重启)
示例如下:

[root@dsc01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
命令(输入 m 获取帮助):n
Partition type:p   primary (0 primary, 0 extended, 4 free)e   extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB

在这里插入图片描述
在这里插入图片描述

编辑磁盘配置文件/etc/udev/rules.d/99-dm-asmdevices.rules(2台机器均需配置)
修改文件内容如下:

ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add",KERNEL=="raw[1-5]", OWNER="dmdba", GROUP="dinstall", MODE="660"

执行命令,绑定裸设备(2台机器均需配置)

partprobe /dev/sdb
udevadm control --reload-rules
udevadm trigger --type=devices --action=change

查看裸设备大小
在这里插入图片描述
在这里插入图片描述

配置dmdcr_cfg.ini文件(双节点)

创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:
mkdir -p /home/dmdba/config
新建 dmdcr_cfg.ini 文件,添加文件内容如下:
vi /home/dmdba/config/dmdcr_cfg.ini

DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.10.101
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.10.102
DCR_EP_PORT = 9343
[GRP] #组2 ASM
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.10.101
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.10.102
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP] #组3 DB
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC0
DCR_EP_SEQNO = 0
DCR_CHECK_PORT = 9741
DCR_EP_PORT = 5236
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_CHECK_PORT = 9742
DCR_EP_PORT = 5236

dmasmcmd初始化(单节点)

cd /home/dmdba/dmdbms/bin
./dmasmcmd
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG'
create asmdisk '/dev/raw/raw4' 'DATA'
create asmdisk '/dev/raw/raw5' 'ARCH'
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/config/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini'

配置dmasvrmal.ini文件(双节点)

添加 /home/dmdba/config/dmasvrmal.ini 文件内容如下:

[MAL_INST1]MAL_INST_NAME = ASM0MAL_HOST = 192.168.10.101MAL_PORT = 7236
[MAL_INST2]MAL_INST_NAME = ASM1MAL_HOST = 192.168.10.102MAL_PORT = 7237

配置dmdcr.ini文件(双节点)

dsc01:
添加 /home/dmdba/config/dmdcr.ini 文件内容如下:

DMDCR_PATH=/dev/raw/raw1
DMDCR_MAL_PATH=/home/dmdba/config/dmasvrmal.ini
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

dsc02:
添加 /home/dmdba/config/dmdcr.ini 文件内容如下:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

启动DMCSS、DMASM服务程序(双节点)

cd /home/dmdba/dmdbms/bin/service_template/
cp DmCSSService dmcssserverd
vi dmcssserverd

##修改以下内容
DCR_INI_PATH=/home/dmdba/config/dmdcr.ini

cp dmcssserverd …/

cp DmASMSvrService dmasmserverd
vi dmasmserverd

##修改以下内容
DCR_INI_PATH=/home/dmdba/config/dmdcr.ini

cp dmasmserverd …/

cd /home/dmdba/dmdbms/bin/
./dmcssserverd start
./dmasmserverd start

使用dmasmtool工具创建DMASM磁盘组(单节点)

cd /home/dmdba/dmdbms/bin/
./dmasmtool DCR_INI=/home/dmdba/config/dmdcr.ini
#创建日志磁盘组
create diskgroup ‘DMLOG’ asmdisk ‘/dev/raw/raw3’
#创建数据磁盘组
create diskgroup ‘DMDATA’ asmdisk ‘/dev/raw/raw4’
#创建归档磁盘组
create diskgroup ‘DMARCH’ asmdisk ‘/dev/raw/raw5’
exit
在这里插入图片描述

配置dminit.ini文件(单节点)

添加 /home/dmdba/config/dminit.ini 文件内容如下:

db_name = dsc
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc0_config
port_num = 5236
mal_host = 192.168.10.101
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc1_config
port_num = 5236
mal_host = 192.168.10.102
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

使用dminit初始化DB环境(单节点)

cd /home/dmdba/dmdbms/bin/
./dminit control=/home/dmdba/config/dminit.ini
在这里插入图片描述

cd /home/dmdba/config/
scp -rp dsc1_config/ dmdba@192.168.10.102:/home/dmdba/config/

添加归档配置文件(双节点)

dsc01
修改 /home/dmdba/config/dsc0_config/dm.ini 文件内容如下:

ARCH_INI=1

添加 /home/dmdba/config/dmarch.ini 文件内容如下:

[ARCHIVE_LOCAL1]
ARCH_TYPE=LOCAL
ARCH_DEST=+DMARCH/ARCH_DSC1
ARCH_FILE_SIZE=2048
ARCH_SPACE_LIMIT=20480
[ARCHIVE_REMOTE1]
ARCH_TYPE=REMOTE
ARCH_DEST=DSC2
ARCH_INCOMING_PATH=+DMARCH/ARCH_DSC2
ARCH_FILE_SIZE=2048
ARCH_SPACE_LIMIT=20480
ARCH_LOCAL_SHARE=1

dsc02
修改 /home/dmdba/config/dsc1_config/dm.ini文件内容如下:

ARCH_INI=1

添加 /home/dmdba/config/dmarch.ini 文件内容如下:

[ARCHIVE_LOCAL1]
ARCH_TYPE=LOCAL
ARCH_DEST=+DMARCH/ARCH_DSC2
ARCH_FILE_SIZE=2048
ARCH_SPACE_LIMIT=20480
[ARCHIVE_REMOTE1]
ARCH_TYPE=REMOTE
ARCH_DEST=DSC1
ARCH_INCOMING_PATH=+DMARCH/ARCH_DSC1
ARCH_FILE_SIZE=2048
ARCH_SPACE_LIMIT=20480
ARCH_LOCAL_SHARE=1

启动数据库服务(双节点)

dsc01
cd /home/dmdba/dmdbms/bin/service_template/
cp DmService dmserverd
vi dmserverd

##修改以下内容
INI_PATH=/home/dmdba/config/dsc0_config/dm.ini
DCR_INI_PATH=/home/dmdba/config/dmdcr.ini

cp dmserverd …/
cd /home/dmdba/dmdbms/bin/
./dmserverd start

dsc02
cd /home/dmdba/dmdbms/bin/service_template/
cp DmService dmserverd
vi dmserverd

##修改以下内容
INI_PATH=/home/dmdba/config/dsc1_config/dm.ini
DCR_INI_PATH=/home/dmdba/config/dmdcr.ini

cp dmserverd …/
cd /home/dmdba/dmdbms/bin/
./dmserverd start

监控DMDSC

配置dmcssm.ini(单节点)

添加 /home/dmdba/config/dmcssm.ini 文件内容如下:

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635 
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.10.101:9341
CSSM_CSS_IP = 192.168.10.102:9343
CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

启动dmcssm监视器

cd /home/dmdba/dmdbms/bin/

./dmcssm  INI_PATH=/home/dmdba/config/dmcssm.ini

show
在这里插入图片描述

dmcssm命令说明

命令名称含义
help显示帮助信息
show [group_name]显示指定的组信息,如果没有指定 group_name,则显示所有组信息
show config显示 dmdcr_cfg.ini 的配置信息
show monitor显示当前连接到主 CSS 的所有监视器信息
set group_name auto restart on打开指定组的自动拉起功能(只修改 dmcss 内存值)
set group_name auto restart off关闭指定组的自动拉起功能(只修改 dmcss 内存值)
open force group_name强制 open 指定的 ASM 或 DB 组
ep startup group_name启动指定的 ASM 或 DB 组
ep stop group_name退出指定的 ASM 或 DB 组
ep halt group_name.ep_name强制退出指定组中的指定节点
extend node联机扩展节点
ep crash group_name.ep_name手动指定节点故障
check crash over group_name检查指定组故障处理是否真正结束
exit退出监视器

到此就完成了达梦数据库DSC集群的部署。

更多详细资料可前往达梦社区:https://eco.dameng.com


http://www.ppmy.cn/news/1558373.html

相关文章

overleaf中出现TeX capacity exceeded PDF object stream buffer=5000000的原因和解决方案

在插入pdf 配图后,编译出错提示信息如图,很可能的一个原因是pdf文件大小太大了,最好压缩一下,压缩到1MB以内。

【赵渝强老师】MongoDB逻辑存储结构

MongoDB的逻辑存储结构是一种层次结构,主要包括了三个部分,即:数据库(Database)、集合(Collection,也可以叫做表)和文档(Document,也可以叫做记录&#xff09…

mysql的存储碎片

什么是mysql的存储碎片 MySQL 的存储碎片是指在数据库存储数据的过程中,数据文件(如 InnoDB 的表空间文件或 MyISAM 的数据文件和索引文件)或者内存缓冲池中,数据的存储变得不连续,出现了一些零散的、未被充分利用的小…

Redis-十大数据类型

Reids数据类型指的是value的类型,key都是字符串 redis-server:启动redis服务 redis-cli:进入redis交互式终端 常用的key的操作 redis的命令和参数不区分大小写 ,key和value区分 查看当前库所有的key keys * 判断某个key是否存在 exists key 查看key是什…

问题小记-达梦数据库报错“字符串转换出错”处理

最近遇到一个达梦数据库报错“-6111: 字符串转换出错”的问题,这个问题主要是涉及到一条sql语句的执行,在此分享下这个报错的处理过程。 问题表现为:一样的表结构和数据,执行相同的SQL,在Oracle数据库中执行正常&…

使用Python探索量子机器学习

量子计算与机器学习的结合正在成为一个激动人心的研究领域。量子机器学习(Quantum Machine Learning, QML)利用量子计算的强大计算能力,提升传统机器学习算法的效率和性能。本文将以Python为例,介绍如何使用量子计算框架构建简单的…

HarmonyOS NEXT 实战之元服务:静态案例效果(二)

背景: 前几篇学习了元服务,后面几期就让我们开发简单的元服务吧,里面丰富的内容大家自己加,本期案例 仅供参考 先上本期效果图 ,里面图片自行替换 效果图代码案例如下: Index里面实现 import { authent…

云原生后端开发(一)

云原生后端开发 云原生(Cloud-Native)是指一种构建和运行应用程序的方式,它充分利用了云计算的特点,比如弹性伸缩、自动化部署、容器化等。在云原生的架构下,后端应用通常具备高度可扩展、可维护、易于自动化管理的特…