数据库管理326期 2025-05-16
数据库管理-第326期 数据库如何做到极致的高可用(20250516)
作者:胖头鱼的鱼缸(尹海文) Oracle ACE Pro: Database PostgreSQL ACE Partner 10年数据库行业经验 拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证 墨天轮MVP,ITPUB认证专家 圈内拥有“总监”称号,非著名社恐(社交恐怖分子) 公众号:胖头鱼的鱼缸 CSDN:胖头鱼的鱼缸(尹海文) 墨天轮:胖头鱼的鱼缸 ITPUB:yhw1809。 除授权转载并标明出处外,均为“非法”抄袭

本期不考虑实现数据库高可用的成本或者难度,只是从尽可能多的角度去探讨我们要考虑的内容。
1 服务器
对于服务器来说,我们要考虑的主要是:
- 本机磁盘应当做高可用RAID,避免单块磁盘故障影响服务器运行
- 多网卡,每张网卡多网口,避免单网卡/网口影响服务器网络
- 多电源,避免单个电源模块故障影响服务器运行
其余的CPU、内存如果有故障降级机制更好,即可以通过屏蔽故障组件的方式,让其余正常组件仍然能够提供服务。关于主板基本上就没有冗余的可能性了(但不代表主板模块不可以)。
2 网络
这里需要考虑的其实就是网络设备的高可用,即每套网络设备应当都有双机双活,在单边出现故障时网络依然能够正常联通。
3 存储
如果有使用存储设备,则需要考虑:
- 存储内部磁盘的高可用性,即通过RAID等手段避免单块磁盘故障影响存储运行
- 存储设备双活/多活,即存储通过实时同步复制、多副本分布式等方式实现多点多活,避免单设备故障影响存储运行
- 链路冗余,存储至使用服务器的链路也应当实现多路多活
4 IDC
对于IDC或者说叫机房来说,主要需要提供的是:
- 多路外部电源:避免一路电力丢失影响IDC运行
- 内部UPS:避免外部电力异常影响IDC运行,短时间支撑
- 内部发电机:应急情况下较长时间的支撑
- 消防:消防事故快速处置,避免影响扩大
5 操作系统
在操作系统我们需要考虑:
- 分区:将操作系统、软件、数据独立分区,在任意分区异常时避免对其他内容的影响,操作系统和软件均可通过重建分区后重新部署快速恢复
- 网卡配置:针对多网口和不同需求配置不同类型的bond以实现高可用
- 配置记录:一定要做好所有操作系统配置的记录,用于系统重装和故障排查
6 数据库
- 组件高可用:对于数据库本身的设计,需要高可用,类似于Oracle PMON、SMON
- 多节点:每个类型节点都必须要有对等的冗余节点,例如:Oracle RAC集群就需要多个节点;分布式集群对于访问节点、元数据节点、数据节点都需要高可用,数据节点每个分片需要考虑主备或多副本
- 跨IDC部署:为避免IDC级别故障,建议各类型节点和数据主备/副本节点跨IDC部署,如果安全性要求更高,IDC还应当跨城市
- 备份:无论数据库高可用做的多么完善,都需要进行统一的离线备份,最好附加异地存储,以确保极端情况下的数据恢复需求
- 配置记录:一定要做好所有数据库配置的记录,用于数据库重装和故障排查
7 维护
维护工作主要包含:
- 巡检:制定巡检计划,按时按期完成巡检,排查运行中从硬件、操作系统到数据库的各类隐患,及时排除隐患
- 监控:对数据库设计的方方面面完成监控,并实现实时告警,减少故障发现时间,提升处置响应效率
- 演练:对于硬件、数据库的高可用要做到定期演练,确保其正常发挥作用;对于备份也需要定期验证其有效性
总结
本期从数据库涉及的方方面面探讨了如何实现较高层级的数据库高可用。
老规矩,知道写了些啥。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




