Skip to content

DM 集群(DMRAC)

DMRAC的特点

  • 基于共享存储:多个节点共享同一存储设备,数据只有一份
  • 高可用性:节点故障时自动切换,保证业务连续性
  • 负载均衡:支持读写分离和负载均衡,提高系统性能
  • 透明性:对应用程序透明,无需修改应用代码
  • 可扩展性:支持横向扩展,增加节点数量提高系统性能
  • 自动故障检测:自动检测节点故障并进行恢复
  • 数据一致性:保证集群内数据的一致性
  • 易管理性:提供丰富的管理工具和监控视图

DMRAC的应用场景

  • 核心业务系统:对可用性和性能要求高的核心业务系统
  • 大规模数据处理:需要处理大量数据的应用场景
  • 高并发访问:需要支持大量并发用户的应用场景
  • 关键业务连续性:对业务连续性要求高的场景
  • 负载均衡需求:需要实现读写分离和负载均衡的场景

DMRAC架构

1. 整体架构

DMRAC由以下几个核心组件组成:

  • 数据库节点:运行DM数据库实例的服务器节点
  • 共享存储:存储数据库数据文件、日志文件等的共享存储设备
  • 集群管理软件:管理集群节点、资源和故障切换
  • 虚拟IP:客户端访问集群的虚拟IP地址
  • MAL系统:节点之间的通信系统
  • 锁机制:保证数据一致性的锁机制

2. 组件说明

数据库节点

  • 每个节点运行一个DM数据库实例
  • 节点之间通过MAL系统通信
  • 节点可以是主节点或备用节点
  • 支持2个或更多节点

共享存储

  • 存储数据库的所有数据文件、日志文件和控制文件
  • 支持SAN、NAS等共享存储设备
  • 推荐使用RAID 10等冗余存储方案
  • 必须保证所有节点都能访问共享存储

集群管理软件

  • 管理集群的启动、停止和状态监控
  • 实现节点故障检测和自动切换
  • 管理集群资源,如虚拟IP、服务等
  • 提供集群管理命令和工具

虚拟IP

  • 客户端通过虚拟IP访问集群
  • 虚拟IP会自动漂移到可用节点
  • 支持多个虚拟IP,实现负载均衡

MAL系统

  • 节点之间的通信系统
  • 用于传递节点状态、锁信息等
  • 支持TCP/IP协议
  • 配置独立的网络,提高可靠性

锁机制

  • 共享锁:允许多个事务同时读取数据
  • 排他锁:只允许一个事务修改数据
  • 意向锁:表示对数据的意向访问类型
  • 分布式锁:保证多个节点之间的数据一致性

3. 架构图

DMRAC部署

1. 部署准备

硬件准备

  • 服务器节点:至少2个节点,推荐3个或更多
  • CPU:建议16核以上
  • 内存:建议32GB以上
  • 存储:共享存储,建议使用SAN
  • 网络:每个节点至少2个网卡,分别用于业务网络和MAL网络

软件准备

  • DM数据库软件:DM 8及以上版本
  • 集群管理软件:DM提供的集群管理工具
  • 操作系统:支持的Linux或Windows版本
  • 共享存储软件:如iSCSI、FC等

网络规划

  • 业务网络:用于客户端访问,IP地址固定
  • MAL网络:用于节点之间通信,建议使用独立网卡
  • 存储网络:用于访问共享存储,建议使用独立网卡

2. 部署步骤

1. 安装操作系统和依赖

  • 在所有节点上安装相同版本的操作系统
  • 配置网络、防火墙等
  • 安装必要的依赖包

2. 配置共享存储

  • 配置共享存储设备
  • 创建共享存储分区
  • 格式化共享存储
  • 确保所有节点都能访问共享存储

3. 安装DM数据库软件

  • 在所有节点上安装DM数据库软件
  • 选择相同的安装路径
  • 安装集群管理组件

4. 创建数据库实例

  • 在其中一个节点上创建数据库实例
  • 数据文件、日志文件等存储在共享存储上
  • 配置实例参数

5. 配置MAL系统

  • 在所有节点上配置dmmal.ini文件
  • 配置节点信息、通信地址等
  • 确保MAL系统配置一致

6. 配置集群管理软件

  • 配置集群配置文件
  • 配置节点信息、资源信息等
  • 配置虚拟IP

7. 启动集群

  • 启动共享存储
  • 启动集群管理软件
  • 启动数据库实例
  • 验证集群状态

8. 测试集群功能

  • 测试节点故障切换
  • 测试负载均衡
  • 测试数据一致性
  • 测试应用访问

DMRAC配置管理

1. 参数配置

集群相关参数

  • CLUSTER:是否启用集群模式
  • INSTANCE_NAME:实例名称
  • PORT_NUM:端口号
  • MAL_INI:是否启用MAL系统
  • DW_INI:是否启用DataWatch
  • OGUID:集群唯一标识

配置方法

sql
-- 查看集群参数
SELECT NAME, VALUE FROM V$DM_INI WHERE NAME LIKE '%CLUSTER%' OR NAME LIKE '%MAL%' OR NAME LIKE '%OGUID%';

-- 修改集群参数
SP_SET_PARA_VALUE(2, 'CLUSTER', 1);

2. 资源管理

虚拟IP管理

sql
-- 添加虚拟IP
ALTER SYSTEM ADD VIRTUAL IP '192.168.1.100' FOR 'DMRAC_NODE1';

-- 删除虚拟IP
ALTER SYSTEM DROP VIRTUAL IP '192.168.1.100';

-- 查看虚拟IP
SELECT * FROM V$CLUSTER_VIRTUAL_IP;

服务管理

sql
-- 启动集群服务
ALTER SYSTEM START CLUSTER SERVICE;

-- 停止集群服务
ALTER SYSTEM STOP CLUSTER SERVICE;

-- 查看集群服务状态
SELECT * FROM V$CLUSTER_SERVICE;

3. 节点管理

添加节点

  1. 准备新节点,安装DM数据库软件
  2. 配置新节点的网络和共享存储访问
  3. 配置新节点的MAL系统
  4. 配置集群管理软件,添加新节点
  5. 启动新节点,加入集群

删除节点

  1. 停止要删除的节点
  2. 从集群中移除节点
  3. 清理节点的配置和数据
  4. 更新集群配置

节点状态管理

sql
-- 查看节点状态
SELECT * FROM V$CLUSTER_NODE;

-- 启动节点
ALTER SYSTEM START NODE 'DMRAC_NODE2';

-- 停止节点
ALTER SYSTEM STOP NODE 'DMRAC_NODE2';

DMRAC监控与维护

1. 监控视图

DMRAC提供了丰富的监控视图,用于监控集群状态和性能:

  • V$CLUSTER_NODE:查看集群节点状态
  • V$CLUSTER_SERVICE:查看集群服务状态
  • V$CLUSTER_VIRTUAL_IP:查看虚拟IP状态
  • V$CLUSTER_LOCK:查看集群锁状态
  • V$CLUSTER_RESOURCE:查看集群资源状态
  • V$MAL_INS:查看MAL系统状态
  • V$INSTANCE:查看实例状态
sql
-- 查看集群状态
SELECT * FROM V$CLUSTER_NODE;

-- 查看虚拟IP状态
SELECT * FROM V$CLUSTER_VIRTUAL_IP;

-- 查看集群锁状态
SELECT * FROM V$CLUSTER_LOCK;

2. 监控工具

  • DM管理工具:图形界面监控集群状态
  • dmcss命令:集群管理命令行工具
  • dmmonitor命令:集群监控命令行工具
  • 第三方监控工具:如Zabbix、Prometheus等

3. 日常维护

定期备份

  • 定期备份数据库
  • 定期备份归档日志
  • 定期备份集群配置文件
  • 定期测试备份的可用性

性能监控

  • 监控节点CPU、内存使用率
  • 监控共享存储I/O性能
  • 监控网络带宽使用情况
  • 监控数据库性能指标
  • 监控集群节点状态

日志管理

  • 定期清理数据库日志
  • 定期清理集群日志
  • 监控日志文件大小
  • 配置合理的日志策略

健康检查

  • 定期检查集群状态
  • 定期检查节点状态
  • 定期检查共享存储状态
  • 定期检查网络连接
  • 定期测试故障切换功能

DMRAC故障处理

1. 常见故障类型

节点故障

  • 节点进程崩溃
  • 节点无法连接
  • 节点硬件故障
  • 节点网络故障

共享存储故障

  • 共享存储设备故障
  • 共享存储访问失败
  • 共享存储性能下降

集群管理软件故障

  • 集群管理进程崩溃
  • 集群配置错误
  • 集群资源管理故障

网络故障

  • 业务网络故障
  • MAL网络故障
  • 存储网络故障

2. 故障处理流程

节点故障处理

  1. 集群管理软件检测到节点故障
  2. 自动将故障节点的资源转移到其他节点
  3. 虚拟IP漂移到可用节点
  4. 客户端自动连接到可用节点
  5. 修复故障节点
  6. 将故障节点重新加入集群

共享存储故障处理

  1. 立即停止所有节点
  2. 修复共享存储故障
  3. 检查共享存储数据完整性
  4. 重新启动集群
  5. 验证数据一致性

集群管理软件故障处理

  1. 停止集群管理软件
  2. 检查集群配置文件
  3. 修复配置错误
  4. 重新启动集群管理软件
  5. 验证集群状态

网络故障处理

  1. 检测网络故障类型
  2. 修复网络故障
  3. 验证网络连接
  4. 恢复集群服务
  5. 验证集群状态

DMRAC最佳实践

1. 部署最佳实践

  • 节点数量:推荐3个或更多节点,提高可用性
  • 硬件配置:节点配置建议相同,避免性能瓶颈
  • 共享存储:推荐使用SAN存储,配置RAID 10
  • 网络配置:使用独立网卡分离业务网络、MAL网络和存储网络
  • 操作系统:使用稳定的Linux版本,如CentOS 7.x

2. 配置最佳实践

  • 参数优化:根据系统负载优化数据库参数
  • 虚拟IP:配置多个虚拟IP,实现负载均衡
  • MAL配置:使用独立网络,提高通信效率
  • 日志配置:配置合理的日志大小和归档策略
  • 备份策略:制定完善的备份策略,定期备份

3. 维护最佳实践

  • 定期监控:使用监控工具实时监控集群状态
  • 定期备份:定期备份数据库和配置文件
  • 定期测试:定期测试故障切换和恢复功能
  • 文档管理:维护详细的集群文档
  • 培训:对运维人员进行集群管理培训

4. 性能优化

  • SQL优化:优化SQL语句,提高查询性能
  • 索引优化:合理设计索引,减少I/O操作
  • 缓存优化:优化缓冲区大小,提高缓存命中率
  • I/O优化:优化存储参数,提高I/O性能
  • 并行处理:合理配置并行参数,提高并行处理能力

常见问题(FAQ)

Q1: DMRAC和DMDSC有什么区别?

A1: DMRAC是基于共享存储的集群解决方案,多个节点共享同一存储设备,数据只有一份;DMDSC也是基于共享存储的集群解决方案,但采用了不同的架构设计。DMRAC支持更多节点,提供更强的负载均衡能力,而DMDSC更适合对可用性要求高的场景。

Q2: 如何选择DMRAC的节点数量?

A2: 选择节点数量需要考虑以下因素:

  • 业务对可用性的要求
  • 系统负载情况
  • 硬件成本
  • 维护成本

推荐使用3个节点,既可以保证高可用性,又可以实现负载均衡,同时成本相对合理。

Q3: 如何处理DMRAC节点故障?

A3: 当DMRAC节点发生故障时,集群管理软件会自动将故障节点的资源转移到其他节点,虚拟IP会漂移到可用节点,客户端自动连接到可用节点。运维人员需要及时修复故障节点,然后将其重新加入集群。

Q4: 如何监控DMRAC的性能?

A4: 监控DMRAC性能的方法:

  • 使用DM提供的监控视图,如V$CLUSTER_NODE、V$CLUSTER_VIRTUAL_IP等
  • 使用DM管理工具的集群监控功能
  • 使用第三方监控工具,如Zabbix、Prometheus等
  • 配置性能告警,及时发现性能问题

Q5: 如何备份DMRAC?

A5: 备份DMRAC的方法:

  • 定期备份数据库数据和日志
  • 定期备份集群配置文件
  • 定期备份共享存储
  • 使用DM提供的备份工具,如dmrman

Q6: 如何升级DMRAC?

A6: 升级DMRAC的方法:

  • 制定详细的升级计划
  • 备份数据库和配置文件
  • 停止集群服务
  • 升级集群管理软件
  • 升级数据库软件
  • 重新启动集群
  • 验证升级结果

Q7: 如何扩展DMRAC?

A7: 扩展DMRAC的方法:

  • 准备新的节点
  • 配置网络、共享存储等
  • 安装DM数据库软件和集群管理软件
  • 配置新节点的MAL系统
  • 将新节点加入集群
  • 配置虚拟IP和资源
  • 测试新节点功能

Q8: 如何实现DMRAC的负载均衡?

A8: 实现DMRAC负载均衡的方法:

  • 配置多个虚拟IP
  • 使用负载均衡器将请求分发到不同节点
  • 配置应用程序支持负载均衡
  • 优化SQL语句,减少节点间的锁竞争

Q9: 如何保证DMRAC的数据一致性?

A9: 保证DMRAC数据一致性的方法:

  • 使用DM的锁机制,保证并发访问的数据一致性
  • 配置合理的事务隔离级别
  • 定期检查数据一致性
  • 配置合适的集群参数

Q10: 如何与DataWatch结合使用?

A10: DMRAC与DataWatch结合使用的方法:

  • 将DMRAC集群作为主库
  • 配置DataWatch备库接收DMRAC集群的日志
  • 实现更高的可用性和数据保护
  • 提供更强的容灾能力

版本差异说明

版本主要变化
DM 7支持基本的集群功能,最多支持2个节点
DM 8增强了集群功能,支持更多节点和负载均衡
DM 8.1优化了集群性能和可靠性,支持更多的部署模式

在部署和使用DMRAC时,需要注意以下几点:

  • 选择合适的硬件和网络配置
  • 配置合理的集群参数和资源
  • 定期监控集群状态和性能
  • 制定完善的备份和恢复策略
  • 定期进行故障演练和恢复测试
  • 维护详细的集群文档

通过合理的部署、配置和维护,可以充分发挥DMRAC的优势,为业务提供高效、可靠的数据服务。