达梦数据库系列—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.mzph.cn/news/868522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全卷积网络之FCN图像语义分割

前言 FCN是一种用于图像语义分割的全卷积网络,可以端到端进行像素级预测。 语义分割 图像语义分割是图像处理和机器视觉技术中的重要一环,旨在对图像中的每个像素进行分类。与普通的分类任务不同,语义分割任务输出与输入大小相同的图像&…

C#跨线程访问控件以及方法

在C#中,如果需要跨线程访问控件或调用方法,通常需要考虑到UI线程和后台线程之间的调度问题。以下是一些常见的方法: 1. 使用 Control.Invoke 或 Control.BeginInvoke 在WinForms或WPF应用程序中,如果在非UI线程中访问控件或调用UI相关方法,可以使用 Control.Invoke 或 C…

鸿蒙语言基础类库:【@ohos.uri (URI字符串解析)】

URI字符串解析 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 导入…

亿康源精英盛宴暨亿康源启动成功举办

(本台记者报)2024年7月7日下午,亿康源精英盛宴暨启动仪式在杭州市中维歌德大酒店盛大举行。此次盛会不仅吸引了行业内的专业人才、著名投资界大咖和科技领域的杰出企业家,还汇聚了众多关注大健康产业的各界人士,共同见…

软件设计之Java入门视频(13)

软件设计之Java入门视频(13) 视频教程来自B站尚硅谷: 尚硅谷Java入门视频教程,宋红康java基础视频 相关文件资料(百度网盘) 提取密码:8op3 idea 下载可以关注 软件管家 公众号 学习内容: 该视频共分为1-7…

【在线词典】项目实现

15_Dictionary 在线词典 搭建客户端-服务器架构 准备必要的资源 整理原始数据 整理英汉双语对照表,将XLSX格式转换成CSV格式,准备好vocabulary_list.csv文件备用 注意:CSV格式的文件必须使用UTF-8的字符集; 建立mydatabase.…

# 深入解析C/C++中的关键运算符:i++, ++i, a=i++, a=++i 及复杂表达式的运算顺序

原因 有没有人跟我一样,根本记不住那么多的运算符优先级,凭感觉猜的运算 顺序,导致代码出错,调试半天,最后发现是优先级的问题有没有跟我一样,看到复杂表达式就头大看到一些复杂的表达式,不知道怎么去分析…

java canonicalName 什么意思

在 Java 中,canonicalName 通常指的是类的规范名称(Canonical Name)。这是由 Java 提供的一个方法,用于获取类的完整名称(包括包名)。规范名称是一种标准化的表示方法,与类的全名相同&#xff0…

SCI三区|儿童学习优化算法KLO:基于社会进化和认知学习的优化算法

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,ST Javed受到社会环境下家庭儿童的早期社会学习行为启发,提出了儿童学习优化算法(Kids Learning Optimizer, KLO)。 2.算法原理 2.…

珍藏多年的计算机内核结构大全笔记,掌握计算机工作原理真不难

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人…

江洲的《家书》,岂止抵万金

题记 今晨6点钟,像往日一样的背上鱼具包,欲驾乘清凉舒适的晨风,前往味江河堤享受钓翁乐趣。孰料开门一看,朦胧的天空竟下着淅淅沥沥的小雨。 今年的天气异常,是笔者寄居“西川第一天”古镇5年来所未见:再…

顺序表实现

size属于结构体的作用域 如果要访问一个结构体的指针用-> 如果要访问一个结构体的变量用. 点操作 #include<stdio.h> #include<stdlib.h> #include<string.h> #include"seqlist.h" //typedef struct seqList{ // SLDataType* _data; //需…

redis命令的底层执行流程

在 Redis 中&#xff0c;客户端请求命令执行完成后&#xff0c;确实会生成一个响应&#xff0c;但这个响应并不是总是立即发送给客户端的。这是因为 Redis 的单线程模型和 I/O 多路复用机制。以下是 Redis 处理响应数据的一般流程&#xff1a; 命令执行&#xff1a; 客户端发送…

day15补卡

前两题思路和解答一致 404.左叶子之和 &#xff08;优先掌握递归&#xff09; 我的代码思路是传入子节点状态&#xff0c;左节点还是有节点&#xff0c;如果是叶子并为左节点则加入&#xff0c;题解则是通过当前节点去判断左子节点是不是叶子节点&#xff0c;再依此遍历全树&am…

CSS技巧 - 一日一例 (1):会讨好的热情按钮

题外话: 从今天开始,我准备开设一个新的专栏,专门写 使用CSS实现各种酷炫按钮的方法,本专栏目前准备写40篇左右,大概会完成如下按钮效果: 今天,我来介绍第一个按钮的实现方法:会讨好的热情按钮。为什么我给它起这样的名字呢?你看它像不像一个不停摇尾巴的小黄?当你鼠…

Java rapidocr

基于PaddleOCR&#xff0c;但是官方并未提供Java版本&#xff0c;而RapidOcr解决了这个问题&#xff0c;不想了解OCR相关知识&#xff0c;开箱即用、不想额外再部署OCR服务&#xff0c;可以直接使用&#xff0c;识别效果也不错&#xff0c;但是发现CPU占用非常高&#xff0c;直…

29 H3C SecPath F1000 系统(概述)

29 H3C SecPath F1000 系统 系统全局功能&#xff08;高可靠性 日志设置 报表设置 会话设置 升级中心 Lcense配置 高级虚拟化 管理员 维护 诊断中心 配置指导&#xff09; 高可靠性 1 vrrp VRRP将局域网内的可以承担网关功能的一组设备划分在一起&#xff0c;组成一个备份组…

【Spring Boot】Spring AOP动态代理,以及静态代理

目录 Spring AOP代理一. 代理的概念二. 静态代理三. JDK代理3.1 重写 invoke 方法进⾏功能增强3.2 通过Proxy类随机生成代理对象 四. CGLIB代理4.1 自定义类来重写intercept方法4.2 通过Enhancer类的create方法来创建代理类 五. AOP源码剖析 总结(重中之重&#xff0c;精华) Sp…

git使用总结

git介绍 Git是一款免费、开源的分布式版本控制系统 &#xff0c;用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 git安装 下载地址 # 推荐使用国内镜像下载 http://npm.taobao.org/mirro…

建立共享linux第三方软件仓库

1. 选择httpd共享方式并下载 [rootserver100 software]# dnf install httpd -y2. 启动httpd&#xff0c;检查防火墙&#xff0c;和selinux是否关闭 [rootserver100 software]# systemctl enable --now httpd[rootserver100 software]# systemctl status firewalld.service ○…