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的优势,为业务提供高效、可靠的数据服务。