达梦数据库DSC集群部署

一、概述

1.1 DSC 集群架构

在这里插入图片描述

1.2 架构说明

1DMDSC 集群是一个多实例、单数据库的系统。 多个数据库实例可以同时访问、修改同一个数据库的数据。
2、数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件, 这些文件保存在共享存储上。
3、每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。
4DMDSC 支持的共享存储有两种:裸设备和DMASM。 使用 DMASM 文件系统可以方便对裸设备上的磁盘或文件进行管理,推荐用户使用。
5DMDSC 集群主要由数据库和数据库实例、 共享存储、 本地存储、 通信网络、以及集群控制软件 DMCSS 组成。

1.3 服务说明

达梦DSC集群主要依靠以下几个服务的协作来实现
DMCSSDM Cluster Synchronization ServicesDMCSSDM 集群同步服务的简称,是 DMDSC 集群应用的基础, DMCSS 负责集群环境中节点的启动、 故障处理、 节点重加入等操作。每个集群节点都需要有一个 DMCSS 服务。这些 DMCSS 服务又共同构成一个 DMCSS 集群。

DMCSSMDM Cluster Synchronization Services MonitorDMCSSMDM 集群监视器的简称。 DMCSSMDMCSS 相互通信,获取并监控整个集群系统的状态信息。 DMCSSM还提供了一系列的命令来管理、维护集群。

DMASMSVR
DMASMSVR 是提供 DMASM 服务的主要载体,每个提供 DMASM 服务的节点都必须启动一个 DMASMSVR 服务器,这些 DMASMSVR 一起组成共享文件集群系统,提供共享文件的全局并发控制。 DMASMSVR 启动时描/dev/raw/路径下的所有裸设备,加载 DMASM 磁盘,构建 DMASM 磁盘组和 DMASM 文件系统。 DMASMSVR 实例之间使用 MAL 系统进行信息和数据的传递。

1.4 运行机制

除了必要的服务以外DSC集群内部还有一些组件来为整个集群提供运行基础

DCRDM Clusterware RegistryDCRDM 集群注册表的简称,用于存储、维护集群配置的详细信息,整个集群环境共享 DCR 配置信息,包括 DMDSCDMASMDMCSS 资源,包括实例名、 监听端口、 集群中故障节点信息等。 DCR 必须存储在集群中所有节点都可以访问到的共享存储中, 并且只支持裸设备。 在一个集群环境中只能配置一个 DCR 磁盘。

表决磁盘(Voting Disk)
表决磁盘记录了集群成员信息, DM 集群通过 Voting Disk 进行心跳检测,确定集群中节点的状态,判断节点是否出现故障。 当集群中出现网络故障时,使用 Voting Disk来确定哪些 DMDSC 节点应该被踢出集群。表决磁盘还用来传递命令,在集群的不同状态(启动、节点故障、节点重加入等) DMCSS 通过 Voting Disk 传递控制命令,通知节点执行相应命令。 Voting Disk 必须存储在集群中所有节点都可以访问到的共享存储中, 并且只支持裸设备。 在一个集群环境中只能配置一个表决磁盘。

HeartBeat(心跳机制)
DMCSS 的心跳机制是通过 Voting DiskDisk Heartbeat。这种机制有最大时延,只有超过最大时延,才认为监测对象故障。

MAL 链路
MAL 系统是达梦数据库基于 TCP 协议实现的一种内部通信机制,使用 DMASM 文件系统的 DMDSC 集群中存在两套 MAL 系统, DMASM 服务器之间配置一套 MAL 系统, dmserver 服务器之间配置一套 MAL 系统。一旦 MAL 链路出现异常,DMCSS 会进行裁定,并从集群中踢出一个节点,保证集群环境正常运行。

共享内存
共享内存是一种快速、高效的进程间通信手段。所谓共享内存,就是同一块物理内存被映射到多个进程的地址空间,进程 A 可以即时看到进程 B 对共享内存的修改,反之亦然。DMASM 服务器进程和 DMASM 客户端进程之间通过共享内存方式共享 DMASM 文件到实际磁盘的映射关系。

VIP
VIP(虚拟IP地址),是一个不与特定计算机或者计算机中的网络接口相连的IP地址。数据包被发送到这个 VIP 地址,但是所有的数据还是经过真实的网络接口。在集群环境中,应用通过 VIP 连接数据库服务器,实例故障后,把实例配置的 VIP 设置到其他活动节点(叫做 IP 漂移),这样应用可以不用修改配置,继续访问数据库服务。

1.5 环境准备

环境需求列表:

指标项 节点1 节点2
物理IP 192.168.111.11 192.168.111.12
心跳IP 172.16.4.9 172.16.4.10
VIP 192.168.111.12 /
数据库版本 dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso
数据库名 DMDSC1 DMDSC2
数据库端口 5236 5236
数据库安装路径 /dmdsc8/dmdbms /dmdsc8/dmdbms
配置文件路径 /dmdsc8/config /dmdsc8/config
本地归档路径 /dmdsc8/arch_1 dmdsc8/arch_2
镜像存放路径 /dmdsc8/iso /dmdsc8/iso
镜像挂载路径 /dmdsc8/install /dmdsc8/install
CSS端口 9341 9341
DCR检查端口 9741 9741
DCR_OGUID 63635 63635
本地存储 30G 30G
共享存储 DCR 20G、VOTE 20G、REDO 20G、DATA 30G /

二、开始安装数据库软件

2.1 划分两节点的本地存储

本次以节点1进入步骤说明,节点2划分不再说明

[root@dmdsc01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xf3d36351 创建新的 DOS 磁盘标签。

命令(输入 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-62914559,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{
   K,M,G} (2048-62914559,默认为 62914559):
将使用默认值 62914559
分区 1 已设置为 Linux 类型,大小设为 30 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@dmdsc01 ~]# lsblk
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   60G  0 disk
├─sda1          8:1    0    1G  0 part /boot
└─sda2          8:2    0   59G  0 part
  ├─rhel-root 253:0    0   37G  0 lvm  /
  ├─rhel-swap 253:1    0  3.9G  0 lvm  [SWAP]
  └─rhel-home 253:2    0 18.1G  0 lvm  /home
sdb             8:16   0   30G  0 disk
└─sdb1          8:17   0   30G  0 part
sdc             8:32   0   20G  0 disk
sdd             8:48   0   20G  0 disk
sde             8:64   0   20G  0 disk
sdf             8:80   0   30G  0 disk
sr0            11:0    1  4.2G  0 rom
[root@dmdsc01 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@dmdsc01 ~]# vgcreate vg_dm /dev/sdb1
  Volume group "vg_dm" successfully created
[root@dmdsc01 ~]# lvcreate -l +100%free -n lv_dm vg_dm /dev/sdb1
  Logical volume "lv_dm" created.
[root@dmdsc01 ~]# mkfs.xfs /dev/mapper/vg_dm-lv_dm
meta-data=/dev/mapper/vg_dm-lv_dm isize=512    agcount=4, agsize=1965824 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=7863296, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=3839, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@dmdsc01 ~]# mkdir /dmdsc8
[root@dmdsc01 ~]# mount /dev/mapper/vg_dm-lv_dm /dmdsc8
[root@dmdsc01 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   12M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/rhel-root     38G  1.7G   36G    5% /
/dev/sda1               1014M  150M  865M   15% /boot
/dev/mapper/rhel-home     19G  4.5G   14G   25% /home
tmpfs                    378M     0  378M    0% /run/user/0
/dev/mapper/vg_dm-lv_dm   30G   33M   30G    1% /dmdsc8

[root@dmdsc01 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Mon Feb 20 23:19:52 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        0 0
UUID=ba64ad4f-a32f-48a6-beb8-801e97d4e480 /boot                   xfs     defaults        0 0
/dev/mapper/rhel-home   /home                   xfs     defaults        0 0
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/dev/mapper/vg_dm-lv_dm /dmdsc8 xfs     defaults        0 0
[root@dmdsc01 ~]#

2.2 创建用户组、用户、安装目录

groupadd -g 1000 dinstall
useradd  -g dinstall -d /home/dmdba -s /bin/bash -m dmdba
echo 'test' | passwd --stdin dmdba

mkdir -p /dmdsc8/dmdbms
mkdir -p /dmdsc8/iso
mkdir -p /dmdsc8/install
mkdir -p /dmdsc8/config
mkdir -p /dmdsc8/arch_1    #第二个节点改为/dmdsc8/arch_2
chown -R dmdba:dinstall /dmdsc8/dmdbms
chown -R dmdba:dinstall /dmdsc8/config
chown -R dmdba:dinstall /dmdsc8/arch_1   #第二个节点改为/dmdsc8/arch_2
chmod -R 755 /dmdsc8

2.3 配置参数、环境变量

修改/etc/security/limits.conf 文件
在末尾添加以下内容(可根据自己的需求进行更改):

cat /etc/security/limits.conf

dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384

cat /home/dmdba/.bash_profile
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
#export PATH=$PATH:$HOME/.local/bin:$HOME/bin
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dmdsc8/dmdbms/bin"
export DM_HOME="/dmdsc8/dmdbms"

2.4 数据库安装

上传或者下载镜像文件,保存至 /dmdsc8/iso
挂载镜像文件

[root@dmdsc01 iso]# scp -r /dmdsc8/iso/dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso 192.168.111.12:$PWD
root@192.168.111.12's password:
dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso                      100%  913MB  60.9MB/s   00:15

[root@dmdsc01 iso]# mount -o loop /dmdsc8/iso/dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso /dmdsc8/install/
mount: /dev/loop0 写保护,将以只读方式挂载

切换至dmdba用户

[root@dmdsc01 install]# su - dmdba
[dmdba@dmdsc01 ~]$ cd /dmdsc8/install/
[dmdba@dmdsc01 install]$ ll
总用量 935307
-r-xr-xr-x. 1 root root   2802614 720 2022 DM8 Install.pdf
-r-xr-xr-x. 1 root root 954950767 720 2022 DMInstall.bin
[dmdba@dmdsc01 install]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:c
解压安装程序.........
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:N/n:) [Y/y]:n
是否设置时区? (Y/y:N/n:) [Y/y]:n

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1611M

请选择安装目录 [/home/dmdba/dmdbms]:/dmdsc8/dmdbms
可用空间: 29G
是否确认安装路径(/dmdsc8/dmdbms)? (Y/y:N/n:)  [Y/y]:y

安装前小结
安装位置: /dmdsc8/dmdbms
所需空间: 1611M
可用空间: 29G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:N/n:):y
2023-02-22 14:49:16
[INFO] 安装达梦数据库...
2023-02-22 14:49:16
[INFO] 安装 基础 模块...
2023-02-22 14:49:18
[INFO] 安装 服务器 模块...
2023-02-22 14:49:18
[INFO] 安装 客户端 模块...
2023-02-22 14:49:20
[INFO] 安装 驱动 模块...
2023-02-22 14:49:21
[INFO] 安装 手册 模块...
2023-02-22 14:49:21
[INFO] 安装 服务 模块...
2023-02-22 14:49:22
[INFO] 移动日志文件。
2023-02-22 14:49:23
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/dmdsc8/dmdbms/script/root/root_installer.sh

安装结束

[root@dmdsc01 ~]# sh /dmdsc8/dmdbms/script/root/root_installer.sh
移动 /dmdsc8/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务

节点1 安装完后节点 2安装 步骤同上

三、DSC 集群搭建

3.1 划分共享存储

DCR 20G、VOTE 20G、REDO 20G、DATA 30G
在这里插入图片描述

[root@dmdsc01 ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xa6e8903b 创建新的 DOS 磁盘标签。

命令(输入 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-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{
   K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@dmdsc01 ~]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x88e73c75 创建新的 DOS 磁盘标签。

命令(输入 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-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{
   K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@dmdsc01 ~]# fdisk /dev/sde
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x4b24b164 创建新的 DOS 磁盘标签。

命令(输入 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-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{
   K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@dmdsc01 ~]# fdisk /dev/sdf
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xa9a10879 创建新的 DOS 磁盘标签。

命令(输入 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-62914559,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{
   K,M,G} (2048-62914559,默认为 62914559):
将使用默认值 62914559
分区 1 已设置为 Linux 类型,大小设为 30 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@dmdsc01 ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0    60G  0 disk
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0    59G  0 part
  ├─rhel-root   253:0    0    37G  0 lvm  /
  ├─rhel-swap   253:1    0   3.9G  0 lvm  [SWAP]
  └─rhel-home   253:2    0  18.1G  0 lvm  /home
sdb               8:16   0    30G  0 disk
└─sdb1            8:17   0    30G  0 part
  └─vg_dm-lv_dm 253:3    0    30G  0 lvm  /dmdsc8
sdc               8:32   0    20G  0 disk
└─sdc1            8:33   0    20G  0 part
sdd               8:48   0    20G  0 disk
└─sdd1            8:49   0    20G  0 part
sde               8:64   0    20G  0 disk
└─sde1            8:65   0    20G  0 part
sdf               8:80   0    30G  0 disk
└─sdf1            8:81   0    30G  0 part
sr0              11:0    1   4.2G  0 rom
loop0             7:0    0 913.5M  0 loop /dmdsc8/install

节点二 刷新磁盘

[root@dmdsc02 dmdsc8]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0    60G  0 disk
├─sda1            8:1    0     1G  0 part /boot
└─sda2            8:2    0    59G  0 part
  ├─rhel-root   253:0    0    37G  0 lvm  /
  ├─rhel-swap   253:1    0   3.9G  0 lvm  [SWAP]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值