DM 数据共享集群又称为 DM 共享存储集群,英文全称 DM Data Shared Cluster,简称 DMDSC。
DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。
DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,联机日志和归档日志都需要保存在共享存储上。
DMDSC 集群主要由数据库和数据库实例、共享存储、DMASM 或 DMASM 镜像、本地存储、通信网络、集群控制软件 DMCSS、集群监视器 DMCSSM 组成。
数据库与数据库实例
**功能:**每个节点运行独立的数据库实例,包含进程和内存结构,负责处理用户请求、执行SQL操作。
所有实例共享同一份数据文件和控制文件(存储在共享存储上),用户可登录任意实例获取完整服务。例如,节点A和节点B的实例可同时修改共享数据表,通过全局锁管理(GLS)确保数据一致性。
共享存储
**功能:**存储数据文件、控制文件、联机日志等核心数据,所有节点平等访问。
**主要工作方式:**使用裸设备或DMASM文件系统管理共享存储。例如,数据文件存储在共享磁盘阵列中,节点通过高速网络(如Infiniband)并发读写,避免单点故障。
DMASM(达梦自动存储管理)
功能:
分布式文件系统:支持多节点并发访问,提供全局并发控制。
磁盘组管理:将裸设备格式化为DMASM磁盘,整合为磁盘组提供文件服务。
文件管理:支持创建、删除、扩展文件,文件可跨多个磁盘存储,突破单磁盘容量限制。
主要工作方式:
DMASM镜像:通过多副本技术(如条带化)将数据分散到不同磁盘,提升可用性。例如,主副本故障时自动切换至镜像副本。
与DMCSS协作:DMCSS通过DMASM的表决磁盘(Voting Disk)检测节点状态,触发故障转移。
本地存储
**功能:**保存节点独立的配置文件(如dm.ini)、归档日志等。
归档日志可配置为本地存储或共享存储。例如,节点A的归档日志默认存储在本地磁盘,也可通过配置写入共享存储以实现集中管理。
通信网络
功能:
内部网络(MAL链路):用于节点间交换信息、心跳检测和全局锁管理。
公共网络:对外提供数据库服务,如用户连接、应用访问。
高速缓存融合:节点间通过MAL链路传输缓存块,减少共享存储I/O。例如,节点A需访问节点B缓存的数据时,直接通过MAL链路获取,而非从磁盘读取。
故障检测:DMCSS通过MAL链路监控节点状态,超时未响应则判定为故障。
集群控制软件DMCSS
功能:
节点管理:监控集群状态,处理节点启动、故障、重加入等操作。
全局锁管理(GLS):协调多节点对共享数据的并发访问,确保数据一致性。
故障转移:自动剔除故障节点,将业务切换至存活节点。
主要工作方式:
与Voting Disk协作:通过表决磁盘记录节点状态,网络分区时根据多数原则确定存活节点。
与DMASM协作:管理DMASM磁盘组和文件,例如在节点故障时重新分配资源。
集群监视器DMCSSM
**功能:**监控集群状态,提供管理命令(如启动/停止集群、查看日志)。
主要工作方式:
独立部署:通常运行在第三方机器上,避免与集群节点耦合。
实时反馈:每秒从DMCSS获取节点状态、连接信息等,通过命令(如show cluster)展示。
组件协作流程示例
正常状态:
用户通过公共网络连接节点A的实例,执行SQL查询。
节点A的实例从共享存储读取数据,若数据在节点B的缓存中,则通过MAL链路获取。
DMCSS持续监控所有节点状态,通过Voting Disk确认节点健康。
节点故障:
节点B宕机,DMCSS通过MAL链路检测到超时,触发故障转移。
用户连接自动切换至节点A,未提交事务回滚,已提交事务不受影响。
DMCSS从存活节点中选举新控制节点,恢复集群正常运行。
存储扩展:
通过DMASM在线添加裸设备,扩展磁盘组容量。
新磁盘自动纳入条带化管理,数据均匀分布,提升I/O性能。
DMDSC 集群通过两种方式提供达梦数据库高可用解决方案。
1.使用集群控制软件 DMCSS
当出现系统故障、硬件故障、或人为操作失误时,DMCSS 可检测故障并自动将故障节点踢出集群,保证数据库服务的正常提供。
故障节点的用户连接会自动切换到活动节点,这些连接上的未提交事务将被回滚,已提交事务不受影响;活动节点的用户连接不受影响,正在执行的操作将被挂起一段时间,在故障处理完成后,继续执行。当 DMCSS 检测到故障节点恢复时,自动启动节点重加入流程,将恢复的故障节点重新加入 DMDSC 集群,将集群恢复到正常的运行状态。因此,通过部署 DMDSC 集群,可以在一定程度上避免由软、硬件故障引起的非计划停机,减少这些意外给客户带来的损失。
与同样使用共享存储的双机热备系统相比,DMDSC 具有更快的故障处理速度。双机热备系统故障切换时,需要完整地重做 REDO 日志,所有数据均需重新从磁盘加载;而 DMDSC 故障处理时(由 INI 参数 DSC_CRASH_RECV_POLICY 控制),只要重做故障节点的 REDO 日志,并且大部分数据页已经包含在处理节点的 Buffer 缓冲区中,不需要重新从磁盘加载。
2.使用 DMASM 镜像的多副本技术
如果 DMDSC 配置了 DMASM 镜像,镜像功能可提供多副本技术。当出现磁盘损坏或数据丢失时,系统无需人工干预即可利用其他镜像副本继续提供数据库服务,同时又可以自动或手动通过使用其他镜像副本进行数据恢复。
DMDSC 集群中包含多个数据库实例,数据库实例访问独立的处理器、内存,数据库实例之间通过缓存交换技术提升共享数据的访问速度,每个数据库实例都可以接收并处理用户的各种数据库请求。
与单节点数据库管理系统相比,DMDSC 集群可以充分利用多台物理机器的处理能力,支撑更多的用户连接请求,提供更高的吞吐量。与双机热备系统相比,DMDSC 集群不存在始终保持备用状态的节点,不会造成硬件资源的浪费。
DMDSC 从连接和数据两个层面提供负载均衡特性。
1.通过巧用服务名
通过配置 DM 数据库连接服务名来访问 DMDSC 集群,可以实现节点间的连接自动负载均衡。用户的数据库连接请求会被自动、平均地分配到 DMDSC 集群中的各个节点。并且连接服务名支持 JDBC、DPI、ODBC、DCI、.Net Provider 等各种数据库接口。
示例:
应用可通过配置dm_svc.conf文件或者URL后,连接数据库服务名可实现高可用,DSC控制节点一旦发生宕机,其余DSC节点可自动接管,应用可自动连接到新的控制节点。
xxdb=(DSC节点1IP:5236,DSC节点2IP:5236) TIME_ZONE= (480) LANGUAGE=(CN) [xxdb] SWITCH_TIMES=(60) --无法正常连接时,服务名遍历次数,可根据实际情况调整 SWITCH_INTERVAL=(1000) --无法正常连接时,配置的服务器IP间切换的时间间隔,单位ms,可根据实际情况调整 CLUSTER=(DSC) --标注连接的集群类型为DSC AUTO_RECONNECT=(2) LOGIN_DSC_CTRL=(1) --配置DSC数据库连接是否只连主控节点。可根据业务场景判断,如果业务中存在大量的数据增删改的情况,可配置只连接主控节点,减少DSC节点间的数据页争用,提高处理效率
2.使用镜像的条带化技术
通过配置 DMASM 镜像,使用镜像的条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现数据负载均衡。
文章
阅读量
获赞
