达梦数据库系列—23. DSC集群搭建

目录

DSC搭建

1、环境准备

1.硬件

2.存储设备

3.操作系统

4.网络配置

5.防火墙

6.Selinux检查

7.用户准备

8.目录规划

9.软件安装

10.磁盘准备

2、搭建两节点 DMDSC

1.准备配置文件 dmdcr_cfg.ini 

2.使用 DMASMCMD 工具初始化所有磁盘

3.使用 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk

4.准备dmasvrmal.ini

5.配置 dmdcr.ini

6.启动 DMCSS、DMASM 服务程序

7.使用 DMASMTOOL 工具创建 ASM 磁盘组

8.准备 dminit.ini 配置文件

9.使用 DMINIT 初始化一个节点的数据库环境

10.使用拷贝的方式配置另外一个节点的数据库环境

11.启动数据库服务器

12.配置并启动 DMCSSM 监视器

13.注册服务

14.登录验证

15.启动/关闭集群


DSC搭建

集群规划

节点机器 

实例名称 

IP 

PORT_NUM 

DCR_OGUID

111 

CSS0

192.168.64.111

192.168.169.111 

9836

63635

ASM0

5836

DSC01

6636

112 

CSS1

192.168.64.112

192.168.169.111 

9837

ASM1

5837

DSC02

6637

1、环境准备

1.硬件

两台相同配置的机器,需要2块网卡。

2.存储设备

4 块由存储服务器提供的共享存储磁盘,存储服务器通过 SAN 交换机与两台机器相连提供存储服务。

3.操作系统

同一套 DMDSC 环境要求其所在机器的操作系统相同。

4.网络配置

两块网卡一个为内网网段,一个为外网网段。

5.防火墙

##防止 Linux 防火墙影响数据库的运行,设置开机禁用防火墙并关闭防火墙。

[root@localhost dmdba]#systemctl disable firewalld

[root@localhost dmdba]#systemctl stop firewalld

6.Selinux检查

[root@localhost dmdba]#setenforce 0

[root@localhost dmdba]#vim /etc/selinux/config ##设置 selinux 状态为关闭

SELINUX=disabled

##修改后,保存退出

7.用户准备

#新建组dinstall和用户dmdba

groupadd dinstall

useradd -g dinstall dmdba

#为用户dmdba设置密码

passwd dmdba

#用户输入密码

8.目录规划

两机器都要做。

dmdba 用户创建用于 DSC 环境搭建的目录:/dm

配置文件存放于目录:/dm/config

9.软件安装

步骤略

10.磁盘准备

两机器都要做。

使用 UDEV 工具来固定磁盘。

编写/etc/udev/rules.d/60-raw.rules 配置信息

ACTION=="add",KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N;"

ACTION=="add",KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add",KERNEL=="sdd1",RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add",KERNEL=="sde1",RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add",KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall",MODE="660"

  1. 重启 udev 服务。

udevadm trigger --type=devices --action=change

查看磁盘权限信息如下:

[dmdba@test111 ~]# ll /dev/raw/

总用量 0

crw-rw---- 1 dmdba dinstall 162, 1  7月  9 00:29 raw1

crw-rw---- 1 dmdba dinstall 162, 2  7月  9 01:16 raw2

crw-rw---- 1 dmdba dinstall 162, 3  7月  9 01:15 raw3

crw-rw---- 1 dmdba dinstall 162, 4  7月  9 01:06 raw4

crw-rw---- 1 root  disk     162, 0  7月  8 23:28 rawctl

#如果清空裸设备:

#dd if=/dev/zero of=/dev/raw/raw1

2、搭建两节点 DMDSC

1.准备配置文件 dmdcr_cfg.ini 

保存到 111 机器的/dm/config 下。

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.64.111

  DCR_EP_PORT = 9836

[GRP_CSS]

  DCR_EP_NAME = CSS1

  DCR_EP_HOST = 192.168.64.112

  DCR_EP_PORT = 9837

[GRP]

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= 64735

DCR_EP_SHM_SIZE= 512

DCR_EP_HOST= 192.168.64.111

DCR_EP_PORT= 5836

DCR_EP_ASM_LOAD_PATH= /dev/raw

[GRP_ASM]

DCR_EP_NAME= ASM1

DCR_EP_SHM_KEY= 54736

DCR_EP_SHM_SIZE= 512

DCR_EP_HOST= 192.168.64.112

DCR_EP_PORT= 5837

DCR_EP_ASM_LOAD_PATH= /dev/raw

[GRP]

DCR_GRP_TYPE= DB

DCR_GRP_NAME= GRP_DSC

DCR_GRP_N_EP= 2

DCR_GRP_DSKCHK_CNT= 60

[GRP_DSC]

DCR_EP_NAME= DSC01

DCR_EP_SEQNO= 0

DCR_EP_PORT= 6636

[GRP_DSC]

DCR_EP_NAME= DSC02

DCR_EP_SEQNO= 1

DCR_EP_PORT= 6637

2.使用 DMASMCMD 工具初始化所有磁盘

在 111 机器使用 DMASMCMD 工具初始化所有磁盘

./dmasmcmd

create dcrdisk '/dev/raw/raw1' 'DCR'

create votedisk '/dev/raw/raw2' 'VOTE'

create asmdisk '/dev/raw/raw3'  'DMLOG'

create asmdisk '/dev/raw/raw4' 'DMDATA'

3.使用 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk

init dcrdisk '/dev/raw/raw1' from '/dm/config/dmdcr_cfg.ini' identified by 'SYSDBA'

init votedisk  '/dev/raw/raw2' from '/dm/config/dmdcr_cfg.ini'

检查:

listdisks '/dev/raw/'

4.准备dmasvrmal.ini

准备DMASM 的MAL配置文件dmasvrmal.ini保存到 111 的/dm/config 下。

[MAL_INST1]

MAL_INST_NAME= ASM0

MAL_HOST= 192.168.64.111

MAL_PORT= 4836

[MAL_INST2]

MAL_INST_NAME= ASM1

MAL_HOST= 192.168.64.112

MAL_PORT= 4837

为 DSC02 配置 dmasvrmal.ini,和 DSC01 的 dmasvrmal.ini 内容完全一样。保存到 112 的/dm/config  下。

5.配置 dmdcr.ini

为 DSC01和DSC02 配置 dmdcr.ini,保存到/dm/config 下。

DMDCR_PATH                   = /dev/raw/raw1

DMDCR_MAL_PATH               = /dm/config/dmasvrmal.ini  

DMDCR_SEQNO                  = 0   

DMDCR_ASM_RESTART_INTERVAL   = 0  

DMDCR_ASM_STARTUP_CMD        = /dm/bin/dmasmsvr dcr_ini=/dm/config/dmdcr.ini  

DMDCR_DB_RESTART_INTERVAL    = 0  

DMDCR_DB_STARTUP_CMD         = /dm/bin/dmserver path=/dm/config/DSC01_conf/dm.ini dcr_ini=/dm/config/dmdcr.ini

DMDCR_PATH                   = /dev/raw/raw1

DMDCR_MAL_PATH               = /dm/config/dmasvrmal.ini  

DMDCR_SEQNO                  = 1   

DMDCR_ASM_RESTART_INTERVAL   = 0  

DMDCR_ASM_STARTUP_CMD        = /dm/bin/dmasmsvr dcr_ini=/dm/config/dmdcr.ini  

DMDCR_DB_RESTART_INTERVAL    = 0  

DMDCR_DB_STARTUP_CMD         = /dm/bin/dmserver path=/dm/config/DSC02_conf/dm.ini dcr_ini=/dm/config/dmdcr.ini

6.启动 DMCSS、DMASM 服务程序

主节点 111 启动 DMCSS:

./dmcss dcr_ini=/dm/config/dmdcr.ini

另一节点 112 启动 DMCSS:

./dmcss dcr_ini=/dm/config/dmdcr.ini

主节点 111 启动 DMASMSVR:

./dmasmsvr dcr_ini=/dm/config/dmdcr.ini

另一节点 112 启动 DMASMSVR:

./dmasmsvr dcr_ini=/dm/config/dmdcr.ini

7.使用 DMASMTOOL 工具创建 ASM 磁盘组

在 111 上登录创建:

./dmasmtool dcr_ini=/dm/config/dmdcr.ini

#创建DATA磁盘组

create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

#创建LOG磁盘组

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'

ls --查看磁盘组信息是否正确

lsdsk --查看磁盘详细信息

8.准备 dminit.ini 配置文件

在111机器上准备dminit.ini 配置文件,保存到/dm/config 目录下。

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

LOG_SIZE= 2048

DCR_PATH= /dev/raw/raw1

DCR_SEQNO= 0

AUTO_OVERWRITE= 1

PAGE_SIZE = 16

EXTENT_SIZE = 16

[DSC01]

CONFIG_PATH= /dm/config/DSC01_conf

PORT_NUM = 6636

MAL_HOST= 192.168.64.111

MAL_PORT= 6536

LOG_PATH= +DMLOG/log/DSC01_log1.log

LOG_PATH= +DMLOG/log/DSC01_log2.log

[DSC02]

CONFIG_PATH= /dm/config/DSC02_conf

PORT_NUM = 6637

MAL_HOST= 192.168.64.112

MAL_PORT= 6537

LOG_PATH= +DMLOG/log/DSC02_log1.log

LOG_PATH= +DMLOG/log/DSC02_log2.log

9.使用 DMINIT 初始化一个节点的数据库环境

选择一个节点,启动 DMINIT 初始化数据库,这里以 111 为例。DMINIT 执行完成后,会在 config_path 目录(/dm/config/DSC01_conf 和/dm/config/DSC02_conf)下生成配置文件 DM.INI 和 DMMAL.INI。

./dminit control=/dm/config/dminit.ini 

10.使用拷贝的方式配置另外一个节点的数据库环境

将 111 上初始化库时产生的 DSC02 节点的配置文件(整个/dm/config/DSC02_conf 文件夹)复制到 112 机器的/dm/config/目录下。

scp -r /dm/config/DSC02_conf dmdba@192.168.100.112:/dm/config/

11.启动数据库服务器

分别启动两个节点的服务器。

111节点服务器启动:

cd /dm/bin

./dmserver dcr_ini=/dm/config/dmdcr.ini /dm/config/DSC01_conf/dm.ini

112节点服务器启动:

cd /dm/bin

./dmserver dcr_ini=/dm/config/dmdcr.ini /dm/config/DSC02_conf/dm.ini

12.配置并启动 DMCSSM 监视器

现在我们搭建监视器,配置 dmcssm.ini 文件。

DMCSSM 在任何机器上均可以启动,只要该台机器和 DMDSC 的真实机器网络是相通的,就可以监控 DMDSC 集群信息。

这里我们选择在 111 机器上搭建监视器。/dm/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.64.111:9836

CSSM_CSS_IP = 192.168.64.112:9837

CSSM_LOG_PATH = /dm/cssm_log #监视器日志文件存放路径

CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大32M

CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

创建 DMCSSM 的日志存放路径。

mkdir -p /dm/cssm_log

启动 DMCSSM 集群监视器。

./dmcssm ini_path=/dm/config/dmcssm.ini

DMCSSM 启动之后,可使用 show 命令在 DMCSSM 监视器中查看集群状态信息。

show

至此,基于 DMASM 的 DMDSC 已经搭建完成。

13.注册服务

root
节点一:
./dm_service_installer.sh -t dmcss -p DSC01 -dcr_ini /dm/config/dmdcr.ini
./dm_service_installer.sh -t dmasmsvr -p DSC01 -dcr_ini /dm/config/dmdcr.ini -y DmCSSServiceDSC01
./dm_service_installer.sh -t dmserver -p DSC01 -dm_ini /dm/config/DSC01_conf/dm.ini -dcr_ini /dm/config/dmdcr.ini -y DmASMSvrServiceDSC01

节点二:
./dm_service_installer.sh -t dmcss -p DSC02 -dcr_ini /dm/config/dmdcr.ini
./dm_service_installer.sh -t dmasmsvr -p DSC02 -dcr_ini /dm/config/dmdcr.ini -y DmCSSServiceDSC02
./dm_service_installer.sh -t dmserver -p DSC02 -dm_ini /dm/config/DSC02_conf/dm.ini -dcr_ini /dm/config/dmdcr.ini -y DmASMSvrServiceDSC02

14.登录验证

#配置 dm_scv.conf 文件
vim /etc/dm_svc.conf
#添加:
#dmdsc=(192.168.169.111:6636,192.168.169.112:6637)

disql SYSDBA:6636

disql SYSDBA:6637

15.启动/关闭集群

先启动 css-再 asm-最后 server

DmCSSServiceDSC01 start

DmASMSvrServiceDSC01 start

DmServiceDSC01 start

关闭

正常关闭集群应依次退关闭[DB]、[ASM]、[CSS]各组节点

直接关闭[ASM]节点将导致对应的[DB]节点异常关闭

直接关闭[CSS]节点将导致对应的[ASM]、[DB]节点异常关闭

DmServiceDSC01 stop

DmASMSvrServiceDSC01 stop

DmCSSServiceDSC01 stop

启动监视器,dmdba 用户执行。
./dmcssm ini_path=/dm/config/dmcssm.ini

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/784709.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

面试常考题---128陷阱(详细)

1.问题引入 分别引入了int和Integer变量,并进行比较 int b 128; int b1 128;Integer d 127; Integer d1 127;Integer e 128; Integer e1 128;System.out.println(bb1); System.out.println(dd1); System.out.println(ee1); System.out.println(e.equals(e1)…

kafka系列之offset超强总结及消费后不提交offset情况的分析总结

概述 每当我们调用Kafka的poll()方法或者使用Spring的KafkaListener(其实底层也是poll()方法)注解消费Kafka消息时,它都会返回之前被写入Kafka的记录,即我们组中的消费者还没有读过的记录。 这意味着我们有一种方法可以跟踪该组消费者读取过的记录。 如前…

【力扣高频题】014.最长公共前缀

经常刷算法题的小伙伴对于 “最长”,“公共” 两个词一定不陌生。与此相关的算法题目实在是太多了 !!! 之前的 「动态规划」 专题系列文章中就曾讲解过两道相关的题目:最长公共子序列 和 最长回文子序列 。 关注公众…

跨境电商代购系统与电商平台API结合的化学反应

随着全球化的不断推进和互联网技术的飞速发展,跨境电商已成为国际贸易的重要组成部分。跨境电商代购系统作为连接国内外消费者与商品的桥梁,不仅为消费者提供了更多元化的购物选择,也为商家开辟了更广阔的市场空间。在这一过程中,…

如何将heic转jpg格式?四种图片格式转换方法【附教程】

如何把heic转jpg格式?heic是用于存储静态图像和图形的压缩格式,旨在以更小的文件大小保持高质量的图像。HEIC格式自iOS 11和macOS High Sierra(10.13)内测开始,被苹果设置为图片存储的默认格式,广泛应用于i…

【VUE基础】VUE3第四节—核心语法之computed、watch、watcheffect

computed 接受一个 getter 函数&#xff0c;返回一个只读的响应式 ref 对象。该 ref 通过 .value 暴露 getter 函数的返回值。它也可以接受一个带有 get 和 set 函数的对象来创建一个可写的 ref 对象。 创建一个只读的计算属性 ref&#xff1a; <template><div cl…

【一次成功】清华大学和智谱AI公司的ChatGLM-4-9B-Chat-1M大模型本地化部署教程

【一次成功】清华大学和智谱AI公司的ChatGLM-4-9B-Chat-1M大模型本地化部署教程 一、环境准备二、ChatGLM-4-9B-Chat-1M简介三、模型下载2.1 安装Git LFS2.2 初始化仓库2.3 同步Git文件2.4 拉取文件2.5 下载完毕 四、python和源码安装与下载4.1 安装python4.2 下载源码4.3 安装…

Monaco 中添加 CodeLens

CodeLens 会在指定代码行上添加一行可点击的文字&#xff0c;点击时可以触发定义的命令&#xff0c;效果如下&#xff1a; 通过调用 API 注册 LensProvider&#xff0c;点击时触发 Command&#xff0c;首先要注册命令&#xff0c;通过 editor.addCommand () 方法进行注册。三个…

韦东山嵌入式linux系列-LED驱动程序

之前学习STM32F103C8T6的时候&#xff0c;学习过对应GPIO的输出&#xff1a; 操作STM32的GPIO需要3个步骤&#xff1a; 使用RCC开启GPIO的时钟、使用GPIO_Init函数初始化GPIO、使用输入/输出函数控制GPIO口。 【STM32】GPIO输出-CSDN博客 这里再看看STM32MP157的GPIO引脚使用…

高通开发系列 - 使用QFIL工具单刷某个镜像文件

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 返回:专栏总目录 目录 背景过程记录背景 有时候设备中刷的是user版本,无法使用fastboot刷单个镜像,这个时候该怎么办呢? 要解决在user…

Websocket在Java中的实践——整合Rabbitmq和STOMP

大纲 Rabbitmq开启STOMP支持 服务端依赖参数参数映射类配置类逻辑处理类 测试测试页面Controller测试案例 在《Websocket在Java中的实践——STOMP通信的最小Demo》一文中&#xff0c;我们使用enableSimpleBroker启用一个内置的内存级消息代理。本文我们将使用Rabbitmq作为消息代…

计算机类期刊横纵向对比

备注&#xff1a;综合影响因子更具针对性&#xff0c;将科技类期刊和人文社科期刊的影响力考虑&#xff0c;更加聚焦于某一特定科学领域&#xff1b;复合影响因子是基于期刊、学位论文、以及会议论文等多个类型的文献作为计算基础。 两者都是通过前两年发表的可被引文献在统计年…

pandas数据分析(8)

描述性统计量和数据聚合 描述性统计量 描述性统计量通过量化数据来概括数据集。DataFrame和Series可以通过sum、mean、count等方法来获取各种描述性统计量。在默认情况下会按照axis0返回一个Series&#xff0c;也就是说会得到一个有关列的统计量&#xff1a; 如果要计算行的统…

鼠标宏怎么设置?6款鼠标自动点击器强推,游戏玩家专用!(2024全)

随着电子游戏和日常应用的不断发展&#xff0c;我们经常会遇到一些重复性的任务或操作。而在这种情况下&#xff0c;鼠标宏以其自动化的特点成为了许多玩家和使用者的利器之一。如果你正在寻找如何设置鼠标宏来简化操作并提高效率&#xff0c;那么你来对地方了。在本文中&#…

理解算法复杂度:空间复杂度详解

引言 在计算机科学中&#xff0c;算法复杂度是衡量算法效率的重要指标。时间复杂度和空间复杂度是算法复杂度的两个主要方面。在这篇博客中&#xff0c;我们将深入探讨空间复杂度&#xff0c;了解其定义、常见类型以及如何进行分析。空间复杂度是衡量算法在执行过程中所需内存…

利用canvas压缩图片

前情提要 页面打印导出pdf文件的时候&#xff0c;图片大小会影响pdf文件大小。 为了减小pdf文件大小&#xff0c;需要将图片压缩一下。在只有图片地址的情况下&#xff0c;将图片压缩后显示&#xff0c;一开始用的browser-image-compression插件&#xff0c;这是js压缩&#x…

硬件产品设计过程:结构及硬件设计

目录 简介 设计管理问题 简介 之前也多次谈到硬件产品的设计分为多个过程,每个过程所涉及的内容也是完全不同的。 比如说: 后台、应用app层的开发;电子硬件设计;结构、ID设计;营销侧;生产管理侧;供应链管理侧等等。接下来就谈谈最近公司开发上的一些问题。 以往由于公…

docker nginx mysql redis

启动没有数据卷的nginx docker run -d -p 86:80 --name my-nginx nginx把/etc/nginx中的配置复制到宿主机 docker cp my-nginx:/etc/nginx /home/nginxlkl把/html 中的文件复制到宿主机 docker cp my-nginx:/etc/nginx /home/nginxlkl删除当前镜像 docker rm -f my-nginx重新起…

理解算法复杂度:时间复杂度详解

引言 在计算机科学中&#xff0c;算法复杂度是衡量算法效率的重要指标。时间复杂度和空间复杂度是算法复杂度的两个主要方面。在这篇博客中&#xff0c;我们将深入探讨时间复杂度&#xff0c;了解其定义、常见类型以及如何进行分析。 什么是时间复杂度&#xff1f; 时间复杂度…

【多语言独立站】什么是跨境电商独立站?||如何完成完善电商系统搭建

随着国际贸易的发展和互联网技术的不断提升&#xff0c;在跨境电商业务中&#xff0c;独立站是一个非常重要的组成部分。我们经常会听到的词语就是&#xff1a;「跨境电商独立站」、「外贸独立站」、「跨境独立站」、「电商独立站」等等。因此&#xff0c;我们可以发现独立站和…