达梦DM8数据库DSC集群部署(超详细)

本文详细介绍达梦DSC集群的部署过程,包括集群规划、共享存储搭建、集群部署及应用连接配置等内容。


前言

提示:
达梦的DSC集群式和Oracle RAC集群同架构的解决方案,属于RAC的国产化平行替代产品。
在实际的生产环境中不管是DSC集群还是RAC集群对硬件环境都有较高的要求。
在生产环境中硬件需求:
1、2台服务器,CPU:最少32核,内存:256G,本地磁盘:1T ,安装Linux操作系统
2、每台服务器需要有2张网卡,最少一张万兆,一张千兆。
3、一台存储阵列
4、最少一台万兆网络交换机,一台千兆网络交换机,一台存储交换机
5、HBA卡,16GB/s,存储和服务器连接需要通过存储交换机,每台服务器至少需要一张HBA卡
共享存储的需求:
1、存储空间和预期业务数据有关,例如预计数据量为3T,建议空间规划如下:
2、2个1GB的LUN 用于存储 [dcr,vote]
3、1个100G的LUN 用于存储[redo]
4、N个500G的LUN,(N=3T*2/500) 用于存储[数据3TB,备份,归档日志]


提示:以下仅以测试环境为例,实验达梦DSC的部署过程

一、部署前准备

1、 集群规划

集群规划如下:

指标项 A节点 B节点 共享存储
节点IP 10.12.10.78 10.12.10.79 10.12.10.77
实例名 DSC1 DSC2 \
实例端口 5236 5236 \
数据库安装路径 /dm8/dmdbms /dm8/dmdbms \
配置文件路径 /dm8/config /dm8/config \
本地归档路径 /dm8/arch_1 /dm8/arch_2 \
CSS端口 5336 5337 \
DCR检查端口 5536 5537 \
DCR_OGUID 45331 45331 \

2、相关概念解释

了解DSC集群的基本架构和工作原理可以更好理解DSC,做到知其然知其所以然。特别是遇到问题或故障的时候可以准确的判断出故障的位置,进而做到精确的排错。

1、集群架构图

在这里插入图片描述

2、架构说明

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

3、服务说明

达梦DSC集群主要依赖以下几个服务的协作来实现:

DMCSS(DM Cluster Synchronization Services)
DMCSS 是 DM 集群同步服务的简称,是 DMDSC 集群应用的基础, DMCSS 负责集群环境中节点的启动、 故障处理、 节点重加入等操作。每个集群节点都需要有一个 DMCSS 服务。这些 DMCSS 服务又共同构成一个 DMCSS 集群。

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

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

4、运行机制

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

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

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

HeartBeat(心跳机制)
DMCSS 的心跳机制是通过 Voting Disk 的 Disk 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 漂移),这样应用可以不用修改配置,继续访问数据库服务。

二、共享存储搭建

说明:实验环境没有真实的共享存储设备,为了满足部署条件,本章节介绍如何使用虚拟机或者一台Linux服务器自行搭建一套IP-SAN共享存储。

SAN (存储区域网络 storage area network and SAN protocols ,简称SAN),它是一种高速网络实现计算机与存储系统之间的数据传输。常见的分类是FC-SAN和IP-SAN两种。
FC-SAN通过光纤通道协议转发scsi协议;IP-SAN通过TCP协议转发scsi协议,也就是IP 地址。

1、磁盘准备

首先在服务器上挂载一块或多块新的磁盘,或者创建一个或多个新的磁盘分区用于作为共享存储使用
使用fdisk 可以创建新的分区。挂载新的磁盘就不展开说明了。

我这边增加了2块磁盘用于组建共享存储分别是:/dev/sdb 和 /dev/sdc

2、安装相关软件包

[root@node01 ~]# yum -y install  scsi-target-utils

3、编写配置文件

包安装完成后会自动生成这个配置文件,在原有配置文件下追加即可。

[root@node01 ~]# vim /etc/tgt/targets.conf 

<target iqn.2021-12.cn.node01.www:target>   ##这里是共享存储的名字 iqn.2021-12.cn.node01.www,可以根据实际情况修改
backing-store /dev/sdb      # 这里是增加的磁盘
backing-store /dev/sdc      # 这里是增加的磁盘
initiator-address 10.12.10.78     # 这里访问控制列表
initiator-address 10.12.10.79     # 这里访问控制列表
</target>

4、启动服务

启动服务并将服务加入到启动项

[root@node01 ~]# systemctl restart tgtd.service
[root@node01 ~]# chkconfig tgtd on

5、通过命令查看存储是否部署成功

执行tgt-admin --show 命令效果如下即为成功。

[root@node01 ~]# tgt-admin --show
Target 1: iqn.2021-12.cn.node01.www:target
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 10737 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /dev/sdb
            Backing store flags: 
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 8590 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type
嵌入式数据库H2和数据库达梦DM8在多个方面存在区别: - **部署与架构**:H2是嵌入式数据库,可嵌入到Java应用程序中,无需单独的服务器进程,适合小型项目、测试环境等,例如小型桌面应用程序可直接集成H2数据库达梦DM8是独立的数据库管理系统,需要单独部署服务器,可运行于X86、X64、SPARC、POWER等多种硬件体系,支持Windows、Linux、Unix等主流操作系统,适用于企业级应用场景,能处理大规模数据和高并发业务 [^1]。 - **性能特点**:H2以轻量级和快速启动著称,在内存模式下运行速度快,但在处理大规模数据和复杂查询时性能可能受限。达梦DM8支持列存储、数据压缩、物化视图等面向联机事务分析场景的优化选项,通过表级行存储、列存储选项技术,能同时支持联机事务处理和联机分析处理业务场景,在性能优化和处理复杂业务方面表现更优 [^1]。 - **功能特性**:H2功能相对基础,主要满足基本的数据库操作需求。达梦DM8功能丰富,可配置数据守护系统(主备),实现自动快速故障恢复,有强大的容灾处理能力;还支持拓展软件包和多种工具,可实现海量数据分析处理、数据共享集群DSC)和无共享数据库集群(MPP)等扩展功能 [^1]。 - **函数支持**:H2有自己的函数体系,与标准SQL函数较为接近。达梦DM8在函数使用上与MySQL有区别,如创建表时不支持在列后直接加comment注释,需用COMMENT ON IS代替;不支持date_sub、date_format、substring_index等函数,分别用dateadd(datepart,n,date)等替代 [^1]。 ```sql -- H2示例:创建表并添加注释 CREATE TABLE test_table ( id INT, name VARCHAR(50), -- H2支持在列后直接加注释 column_comment VARCHAR(100) COMMENT 'This is a column comment' ); -- 达梦DM8示例:创建表并添加注释 CREATE TABLE test_table ( id INT, name VARCHAR(50), column_comment VARCHAR(100) ); -- 达梦DM8使用COMMENT ON IS添加注释 COMMENT ON COLUMN test_table.column_comment IS 'This is a column comment'; ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值