外观
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. 节点管理
添加节点
- 准备新节点,安装DM数据库软件
- 配置新节点的网络和共享存储访问
- 配置新节点的MAL系统
- 配置集群管理软件,添加新节点
- 启动新节点,加入集群
删除节点
- 停止要删除的节点
- 从集群中移除节点
- 清理节点的配置和数据
- 更新集群配置
节点状态管理
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. 故障处理流程
节点故障处理
- 集群管理软件检测到节点故障
- 自动将故障节点的资源转移到其他节点
- 虚拟IP漂移到可用节点
- 客户端自动连接到可用节点
- 修复故障节点
- 将故障节点重新加入集群
共享存储故障处理
- 立即停止所有节点
- 修复共享存储故障
- 检查共享存储数据完整性
- 重新启动集群
- 验证数据一致性
集群管理软件故障处理
- 停止集群管理软件
- 检查集群配置文件
- 修复配置错误
- 重新启动集群管理软件
- 验证集群状态
网络故障处理
- 检测网络故障类型
- 修复网络故障
- 验证网络连接
- 恢复集群服务
- 验证集群状态
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的优势,为业务提供高效、可靠的数据服务。
