ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

DM 数据库集群共享存储集群:架构解析与实战部署指南

DM 数据库集群共享存储集群:架构解析与实战部署指南 一、DM 数据库集群共享存储集群架构与原理1.1 DSC 集群概念与价值DM 数据库集群共享存储集群 (简称 DSC) 是达梦数据库提供的一种高可用、高性能的集群方案。与主备架构不同, DSC 允许多个数据库实例同时访问同一份磁盘数据, 从而实现了计算节点的冗余与负载均衡。其核心价值在于:高可用性: 当某个节点发生故障时, 其他节点可以无缝接管业务, 避免单点故障。高性能: 多节点并行处理请求, 提升系统整体吞吐量。资源利用率高: 共享一份存储, 降低了存储成本和数据同步开销。1.2 共享存储底层机制与 ASM在 DM 数据库集群共享存储集群中, 所有节点共享底层存储。为了保证文件的一致性, DSC 引入了达梦自动存储管理器 (ASM)。ASM 负责管理共享磁盘, 提供条带化、镜像等功能, 屏蔽了底层裸设备的复杂性。其架构如下:心跳网络客户端应用DSC 节点 1DSC 节点 2ASM 集群共享磁盘阵列通过 ASM, DSC 集群能够统一管理数据文件、控制文件和日志文件, 确保各节点读取到的数据是一致的。1.3 网络与锁集群通信与并发控制DSC 集群依赖于两种网络:业务网络: 用于客户端连接和业务数据传输。心跳网络: 用于节点间的通信、心跳检测以及锁信息的交互。为了保证多个节点并发访问同一数据块时的数据一致性, DSC 采用了分布式锁管理器 (DLM)。当节点需要修改数据时, 必须先向 DLM 申请锁。通过内部高速网络交互锁信息, DLM 确保了在高并发下的数据正确性。二、集群规划与部署环境准备与配置2.1 环境准备网络与磁盘规划部署 DM 数据库集群共享存储集群前, 需要进行严格的环境规划。以两节点 DSC 为例:节点 1 (DSC01): 业务 IP 192.168.1.11, 心跳 IP 10.0.0.11。节点 2 (DSC02): 业务 IP 192.168.1.12, 心跳 IP 10.0.0.12。共享存储: 划分至少 3 个裸磁盘, 分别用于 DCRCFG (集群配置)、VOTE (表决磁盘)、DATA (数据存储)。2.2 存储配置ASM 磁盘组划分在两个节点上配置 UDEV 规则, 绑定裸设备。假设绑定后的裸设备为 /dev/raw/raw1, /dev/raw/raw2, /dev/raw/raw3。接着, 使用 dmasmcmd 工具初始化磁盘:# 初始化 DCRCFG 磁盘 dmasmcmd create dcrdisk /dev/raw/raw1 DCR create votedisk /dev/raw/raw2 VOTE create asmdisk /dev/raw/raw3 DATA 0 0初始化完成后, 需要配置 dmdcr.ini 文件, 该文件包含了 ASM 集群和 DB 集群的配置信息。2.3 参数配置dmdcr 与 dmasvrmal 设置在两个节点上分别创建 dmdcr.ini 配置文件。节点 1 的配置如下:DCR_N_GRP 3 DCR_VTD_PATH /dev/raw/raw2 DCR_OGUID 63635 [GRP_ASM] DCR_GRP_TYPE ASM DCR_GRP_NAME GRP_ASM DCR_GRP_N_EP 2 DCR_GRP_DSK_CHK_CNT 60 [GRP_ASM_EP0] DCR_EP_NAME ASM0 DCR_EP_SEQNO 0 DCR_EP_IP 10.0.0.11 DCR_EP_PORT 9345 DCR_EP_ASM_LOAD_PATH /dev/raw [GRP_ASM_EP1] DCR_EP_NAME ASM1 DCR_EP_SEQNO 1 DCR_EP_IP 10.0.0.12 DCR_EP_PORT 9345 DCR_EP_ASM_LOAD_PATH /dev/raw同时, 配置 dmasvrmal.ini 文件用于 ASM 节点间通信:[MAL_INST0] MAL_INST_NAME ASM0 MAL_HOST 10.0.0.11 MAL_PORT 9346 [MAL_INST1] MAL_INST_NAME ASM1 MAL_HOST 10.0.0.12 MAL_PORT 9346节点 2 的配置类似, 只需将对应节点的 IP 和 SEQNO 进行调整。三、集群启动与运维管理实战指南3.1 集群启停服务顺序与命令启动 DM 数据库集群共享存储集群需要严格按照顺序执行:启动 ASM 集群: 在两个节点分别执行 dmasmsvr 命令。启动 DMCSS 服务: 在两个节点分别执行 dmcss 命令。启动数据库实例: 在两个节点分别执行 dmserver 命令。启动 ASM 的示例命令:./dmasmsvr dcr_ini/dm/data/dmdcr.ini启动数据库实例的示例命令:./dmserver /dm/data/dsc/dm.ini dcr_ini/dm/data/dmdcr.ini停止集群时, 顺序相反, 先停数据库, 再停 CSS, 最后停 ASM。3.2 日常运维监控与故障处理对于 DM 数据库集群共享存储集群, 日常运维主要关注节点状态和网络心跳。可以使用 dmcssm 工具监控集群状态:./dmcssm ini_path/dm/data/dmcssm.ini在监控界面中, 可以查看各节点 (ASM 和 DB) 的运行状态。如果发现节点被踢出, 需检查:心跳网络是否正常。磁盘 I/O 是否存在瓶颈。节点系统资源是否耗尽。3.3 测试验证故障切换与负载均衡部署完成后, 需进行高可用测试。通过 kill 掉节点 1 的 dmserver 进程, 观察节点 2 是否能正常接管。同时, 配置客户端的 JDBC 连接串, 启用负载均衡:jdbc:dm://192.168.1.11:5236,192.168.1.12:5236?epSelector1loginMode2通过此连接串, 客户端请求将均匀分布到两个节点, 实现了真正意义上的负载分担与高可用。
返回列表