集群DSC介绍
DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。
DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可
用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据
库实例故障后,不会导致数据库服务无法提供。
1、概述
DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同 一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些 文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。 DMDSC集群得以实现的重要基础就是共享存储。DM 支持的共享存储有两种:裸设备和 DMASM。这两种存储的区别在于后者在前者的基础上,部署并使用了 DMASM 文件系统。为了方便对裸设备上的磁盘或文件进行管理,推荐用户使用后者。
2、DMDSC 集群主要组成
由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件 DMCSS 组成。
数据库和数据库实例
数据库(Database)是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件等),保存在物理磁盘或文件系统中。
数据库实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。通过数
据库实例,可以操作数据库,一般情况下,我们访问、修改数据库都是通过数据库实例来完成的。
共享存储
DMDSC 集群中,为了实现多个实例同时访问、修改数据,要求将数据文件、控制文件、
日志文件保存在共享存储上。DMDSC 支持使用裸设备或 DMASM 文件系统作为共享存储。
配置 DMDSC 集群需要的 DCR、Voting disk 也必须保存在共享存储上(目前仅支持
裸设备存放 DCR 和 Voting disk)。
本地归档日志也可以保存在共享存储上,不过这样会占用较为宝贵的共享存储资源。
通信网络
DMDSC 集群中,网络分为内部网络和公共网络两个部分。实际应用中一般还存在服务
器到共享存储的网络。内部网络用于数据库实例之间交换信息和数据,MAL 链路使用的就是内部网络。公共网络用于对外提供数据库服务,用户使用公共网络地址登录 DMDSC 集群,
访问数据库。
集群控制
集群控制是集群系统的重要组成部分。DMCSS 就是一款集群控制软件,专门负责监控
集群中各个节点的运行状态。DMCSS 主要功能包括:管理集群的启动和关闭,控制节点故
障处理,以及管理节点重加入流程。
3、系统特性
DMDSC 的主要特点包括:
高可用性
只要集群中有一个活动节点,就能正常提供数据库服务。
高吞吐量
多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
负载均衡
用户的连接请求被平均分配到集群中的各个节点,确保各个节点的负
载大致平衡。
4、基本概念
集群(Cluster)
是由两个或多个节点(服务器)构成的一种松散耦合的计算机节点集合,这个集合在整
个网络中表现为一个单一的系统,并通过单一接口进行使用和管理。大多数模式下,集群中
的所有计算机都拥有一个相同的名称,集群内任意一个系统都可以被所有的网络用户使用。
每个集群节点都是运行其自己进程的独立服务器,因此每个节点都有自己的运算能力。这些
进程间彼此通信进行协调,协同起来向用户提供应用程序、系统资源和数据以及计算能力。
涉及到的集群有三种:DMDSC 集群,DMCSS 集群和 DMASM 集群。
DMDSC 集群
DMDSC 集群由若干数据库实例(Instance)组成,这些实例间通过网络(MAL 链路)
连接,通过一个特殊的软件(DMCSS,集群同步服务)的协助,共同操作一个数据库。从外
部用户视角来看,他们看到的只是一个数据库。数据文件、控制文件等文件在集群中只有一
份,所有节点平等地使用这些数据文件。这份数据一般放在共享存储上,每个服务器通过光
纤连接到共享存储上。
DMDSC 支持使用裸设备或 DMASM 文件系统存放共享数据库文件。为了方便对裸设备上的磁盘或文件进行管理,DM 推荐使用 DMASM 文件系统。
裸设备(Raw Device)
一种没有经过格式化,不被 Unix/Linux 通过文件系统来读取的特殊字符设备,允许
直接访问磁盘而不经过操作系统的高速缓存和缓冲器。因为使用裸设备避免了经过操作系统
这一层,数据直接从磁盘到数据库服务器进行传输,所以使用裸设备对于读写频繁的数据库
应用来说,可以有效提高数据库系统的性能。但是裸设备的使用有很多限制,比如 Linux
主机的每个磁盘最多能划分 16 个分区,去掉一个扩展分区后,可用的只有 15 个;每个分区只支持一个裸设备;每个裸设备只能对应一个文件、裸设备一经创建大小就固定、不能动态调整等。所以实际使用时可能会出现数据库文件空间不够或者空间浪费的情况,需要根据应用实际情况提前分配好裸设备大小。
DMASM(DM Auto Storage Manager)
是一个专用的分布式文件系统。支持多个节点同时访问、修改数据文件,并减少直接使
用裸设备存在的诸多限制。DMASM 文件系统把指定的裸设备打包管理,使用 DMASM 文件系统可以方便地创建、删除、扩展、截断文件,不用担心空间不足(空间不足可以通过增加磁盘扩展空间)或空间浪费;不用考虑文件个数限制;可以方便查看空间使用情况;可以在线通过增加裸设备的方式扩展总体使用空间。
DMASM 不是一个通用的文件系统,只能通过 dmasmapi 接口访问。理论上通过
dmasmapi 接口可以存放任何文件,但在 DMDSC 集群中,一般只建议将需要在节点间共享访问的文件存在 DMASM 文件中,如数据文件、联机 Redo 日志文件、控制文件等。归档 Redo日志文件、备份集文件也可以考虑保存到 DMASM 文件系统中,避免还原、恢复等操作时节点间的文件拷贝,简化备份、还原操作。其他的一些本地配置文件比如 dm.ini 等保存在本地磁盘中。
DMDSC 集群中若配置 DMASM,则要求 DMASM 站点数和 DMCSS 站点数一致,且只能存在一个 DMCSS 组和一个 DMASM 组。这些 DMASM 站点共同构成了一个 DMASM 集群。
DMCSS(DM Cluster Synchronization Services)
DMCSS 是 DM 集群同步服务的简称,是 DMDSC 集群应用的基础,使用 DMDSC 集群或者DMASM 集群都必须要配置 DMCSS。DMCSS 负责集群环境中节点的启动、故障处理、节点重加入等操作。
每个集群节点都需要有一个 DMCSS 服务。这些 DMCSS 服务又共同构成一个 DMCSS 集群。单节点应用时,可以不配置 CSS。
DMCSSM(DM Cluster Synchronization Services Monitor)
DMCSSM(DM Cluster Synchronization Services Monitor)是 DM 集群监
视器的简称。DMCSSM 与 DMCSS 相互通信,获取并监控整个集群系统的状态信息。DMCSSM
还提供了一系列的命令来管理、维护集群。
同一个集群中,允许最多同时启动 10 个监视器,一般建议将监视器放在独立的第三方机器上。
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 必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持裸设备。在一个集群环境中只能配置一个表决磁盘。
集群中各实例启动时,通过访问 DCR 获取集群配置信息。被监控实例从 Voting Disk
读取监控命令,并向 Voting Disk 写入命令响应以及自身心跳信息;DMCSS 也向 Voting Disk 写入自己的心跳信息,并从 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 漂移),这样应用可以不用修改配置,继续访问数据库服务。
5、使用说明
目前 DMDSC 在功能上与单机版 DM 相比存在一定限制,暂不支持下列功能:
1)支持定时器,但只有控制节点上配置的定时器生效。只支持脱机配置定时器,不支持联机配置
2)支持作业,但只有控制节点上支持执行作业
3)不支持 HUGE 表
4)不支持外部表DM8 共享存储集群
5)不支持类型别名相关操作
6)不支持 table 级别的 space limit 功能
7)不支持全文索引、词库相关操作
8)不支持安全版本
9)不支持 DBMS_ALERT、DBMS_LOCK 包
10)不支持数据复制
11)不能与 MPP 集群混合使用
12)不支持为表空间文件指定 mirror_path
13)不支持闪回查询,不允许打开闪回功能