Files
ProjectAGiPrompt/37-灾备方案设计/XXX平台容灾备份方案设计.md
2026-07-01 10:44:16 +08:00

53 KiB
Raw Blame History

XXX平台容灾备份方案设计

文档属性 内容
文档名称 XXX平台容灾备份方案设计
文档版本 V1.0
编制日期 2026年7月
密级 机密

修订记录

版本号 修订日期 修订内容 编制人 审核人
V1.0 2026-07-01 初稿编制

目 录


1 概述

1.1 编制目的

本文档旨在为XXX平台包含飞服平台与监管平台提供一套完整的、可落地执行的容灾备份方案设计。方案以"双中心+异地灾备"为核心架构,通过定期增量备份与全量备份相结合的数据保护策略,确保在单一机房发生灾难性故障时,业务能够在规定时间内完成接管切换,恢复平台正常运行,最大程度降低数据丢失风险。

本文档将作为XXX平台容灾备份体系建设的指导性文件为后续系统部署、运维操作、灾备演练提供技术依据。

1.2 适用范围

本方案适用于以下系统与组件:

  • 飞服平台部署于电信机房主中心与移动机房灾备中心的全部Kubernetes集群及中间件服务
  • 监管平台部署于电信机房主中心与移动机房灾备中心的全部Kubernetes集群及中间件服务
  • 涉及人员:系统运维工程师、数据库管理员、网络管理员、安全管理员

1.3 术语与缩略语

术语/缩略语 全称 说明
RPO Recovery Point Objective 恢复点目标,指灾难发生后允许丢失的最大数据量,以时间度量
RTO Recovery Time Objective 恢复时间目标,指灾难发生后系统恢复服务所需的最长时间
K8s Kubernetes 容器编排平台
EMQX 高性能MQTT消息代理服务器
MySQL 关系型数据库管理系统
InfluxDB 开源时序数据库
MinIO 高性能对象存储服务
Doris Apache Doris 高性能实时分析数据库
AES Advanced Encryption Standard 高级加密标准,对称加密算法
DNS Domain Name System 域名解析系统
GSLB Global Server Load Balancing 全局服务器负载均衡
CCR Cross-Cluster Replication Doris跨集群复制

1.4 参考文档

序号 文档名称 说明
1 《XXX平台系统架构设计说明书》 平台整体架构参考
2 《信息系统灾难恢复规范》GB/T 20988-2007 国家灾难恢复标准
3 《Kubernetes官方文档》 K8s集群管理参考
4 《Velero官方文档》 K8s备份恢复工具参考
5 《Apache Doris备份恢复文档》 Doris数据备份参考

2 系统现状分析

2.1 平台概述

XXX包含两大独立运行的业务平台

  • 飞服平台:面向无人机飞行服务场景,提供无人机、机库的数据接入、业务管理、视频存储与时序数据分析等核心功能。通过域名 A.com 对外提供访问。
  • 监管平台:面向低空空域监管场景,提供探测设备、反制设备、无人机、机库的数据接入,以及多源融合分析、三维空间地图、视觉探测等核心功能。通过域名 B.com 对外提供访问。

两平台均采用Kubernetes集群部署方式运行环境相互独立互不依赖。

2.2 飞服平台架构

飞服平台的技术架构及中间件组件如下:

组件 功能职责 容灾备份需求
EMQX 负责接收和转发无人机、机库传输的实时数据MQTT协议 无需容灾备份。EMQX作为消息代理数据为实时流转性质不持久化存储业务状态
MySQL 负责存储平台所有结构化业务数据,包括用户信息、飞行计划、设备管理、权限配置等 需要容灾备份。作为核心业务数据库,数据丢失将直接影响平台业务运行
InfluxDB 负责存储平台时序数据,包括无人机飞行轨迹、传感器采集数据、设备状态监控指标等 需要容灾备份。时序数据是飞行记录与运营分析的重要依据
MinIO 负责存储无人机和机库产生的视频文件、图片资源等非结构化数据 需要容灾备份。视频数据为飞行任务执行的重要凭证

【图示说明:飞服平台技术架构图】

图片内容描述:一张分层架构图。最上层为"用户访问层"标注域名A.com通过Ingress Controller接入。中间层为"Kubernetes集群"内部包含多个Pod分别部署飞服平台的微服务应用如飞行管理服务、设备管理服务、用户服务等。底层为"中间件层"从左到右依次排列四个组件框EMQX标注灰色注明"无需备份"、MySQL标注绿色注明"需要备份"、InfluxDB标注绿色注明"需要备份"、MinIO标注绿色注明"需要备份"。各微服务与中间件之间以箭头连线表示数据流向。左侧有一条虚线箭头从外部设备图标无人机、机库指向EMQX标注"MQTT数据上报"。

2.3 监管平台架构

监管平台的技术架构及中间件组件如下:

组件 功能职责 容灾备份需求
EMQX 负责接收和转发探测设备、反制设备、无人机、机库传输的实时数据MQTT协议 无需容灾备份。EMQX作为消息代理数据为实时流转性质不持久化存储业务状态
MySQL 负责存储平台所有结构化业务数据,包括探测目标信息、反制任务记录、设备管理、权限配置等 需要容灾备份。作为核心业务数据库,数据丢失将直接影响平台业务运行
Doris 负责存储多源融合分析产生的时序数据及三维空间地图数据,承担大规模数据分析查询任务 需要容灾备份。融合分析数据和空间地图数据是监管业务的核心数据资产
MinIO 负责存储视觉探测产生的视频文件和图片数据 需要容灾备份。视觉探测数据为监管取证的重要依据

【图示说明:监管平台技术架构图】

图片内容描述:一张分层架构图。最上层为"用户访问层"标注域名B.com通过Ingress Controller接入。中间层为"Kubernetes集群"内部包含多个Pod分别部署监管平台的微服务应用如探测管理服务、反制管理服务、多源融合分析服务、三维空间地图服务等。底层为"中间件层"从左到右依次排列四个组件框EMQX标注灰色注明"无需备份"、MySQL标注绿色注明"需要备份"、Doris标注绿色注明"需要备份"、MinIO标注绿色注明"需要备份"。各微服务与中间件之间以箭头连线表示数据流向。左侧有一条虚线箭头从外部设备图标探测设备、反制设备、无人机、机库指向EMQX标注"MQTT数据上报"。

2.4 中间件组件对比

对比维度 飞服平台 监管平台
消息中间件 EMQX无需备份 EMQX无需备份
关系型数据库 MySQL MySQL
时序/分析数据库 InfluxDB DorisApache Doris
对象存储 MinIO MinIO
数据来源 无人机、机库 探测设备、反制设备、无人机、机库
访问域名 A.com B.com
部署环境 独立K8s集群 独立K8s集群

说明:飞服平台与监管平台的核心差异在于时序/分析数据库的选型不同——飞服平台使用InfluxDB监管平台使用Apache Doris。这一差异导致两个平台在数据备份的具体实施策略上存在区别但整体灾备架构和流程保持一致。


3 容灾备份需求分析

3.1 业务连续性需求

根据XXX平台的业务特性和运营要求容灾备份方案须满足以下业务连续性需求

  1. 多机房冗余部署:飞服平台与监管平台须在电信机房和移动机房分别完成一模一样的完整部署,两个机房的部署环境相互独立,互不依赖。
  2. 快速业务接管:当任一机房发生灾难性故障且无法短时恢复时,另一机房应在 2小时以内 完成业务接管,恢复平台对外服务。
  3. 域名透明切换灾备切换通过DNS域名解析实现终端用户无需更改访问地址即可无感知切换至灾备机房。
  4. 独立运行能力:灾备机房应具备独立承载全部业务的能力,无需依赖故障机房的任何资源。

3.2 RPO与RTO指标

指标 目标值 说明
RTO恢复时间目标 ≤ 2小时 从故障确认到灾备机房完成业务接管的总时间。其中DNS切换后的域名生效时间预计在10分钟以内剩余时间用于数据验证和服务确认
RPO恢复点目标 ≤ 2小时 允许丢失的最大数据时间窗口为2小时。增量备份周期设置为每2小时执行一次确保RPO不超过2小时

3.3 数据安全需求

  1. 传输加密所有跨机房的数据备份传输必须采用对称加密方式AES-256确保数据在传输过程中不被窃取或篡改保证核心业务数据不外泄。
  2. 完整性校验备份数据在传输完成后须进行一致性校验SHA-256哈希校验确保传输过程中数据未发生损坏或丢失。
  3. 访问控制:备份数据的存储和传输通道须实施严格的访问控制,仅授权运维人员可操作。
  4. 审计追踪:所有备份和恢复操作须记录完整日志,支持事后审计。

3.4 备份数据范围

3.4.1 飞服平台备份数据范围

数据源 数据类型 备份目标 备份必要性
MySQL 结构化业务数据(用户、飞行计划、设备管理等) MySQL灾备中心 必须
InfluxDB 时序数据(飞行轨迹、传感器数据、设备状态等) InfluxDB灾备中心 必须
MinIO 非结构化数据(视频文件、图片资源等) MinIO灾备中心 必须
EMQX 实时消息数据 不需要

3.4.2 监管平台备份数据范围

数据源 数据类型 备份目标 备份必要性
MySQL 结构化业务数据(探测目标、反制任务、设备管理等) MySQL灾备中心 必须
Doris 多源融合分析时序数据、三维空间地图数据 Doris灾备中心 必须
MinIO 非结构化数据(视觉探测视频、图片数据等) MinIO灾备中心 必须
EMQX 实时消息数据 不需要

4 容灾备份总体方案

4.1 设计原则

本容灾备份方案遵循以下设计原则:

原则 说明
独立性原则 每个机房独立部署完整的平台环境包括K8s集群和全部中间件机房之间不存在运行时依赖关系
一致性原则 飞服平台与监管平台采用相同的灾备架构和流程框架,仅在具体中间件备份策略上因组件差异而有所区别
自动化原则 数据备份、加密传输、一致性校验、数据导入等流程均应实现自动化运行,减少人工操作风险
安全性原则 数据传输全程采用对称加密保护,密钥独立管理,确保备份数据不外泄
可恢复性原则 增量备份保存3份副本全量备份保存1份副本确保在多种故障场景下均可恢复数据
可演练原则 灾备方案应具备定期演练能力验证切换流程和RTO/RPO指标是否达标

4.2 容灾架构模型

本方案采用 "双中心 + 异地灾备" 架构模型:

  • 主中心(电信机房):承载日常业务运行,作为业务流量的主要入口。
  • 灾备中心(移动机房):部署与主中心一模一样的完整环境,日常处于热备状态,定期接收主中心的增量备份数据。当主中心发生故障时,灾备中心快速接管业务。

该架构模型的核心特点:

  1. 主备模式:日常业务仅在主中心运行,灾备中心接收数据备份并保持就绪状态。
  2. 数据单向同步:数据从主中心向灾备中心单向同步,避免双向同步带来的数据冲突问题。
  3. 域名级切换通过DNS域名解析切换实现流量转移切换过程对用户透明。

【图示说明:双中心异地灾备架构总览图】

图片内容描述:一张横向布局的架构图,左右两侧分别表示"电信机房(主中心)"和"移动机房(灾备中心)",两侧结构完全对称。

左侧"电信机房"内部包含一个K8s集群框内含多个微服务Pod集群下方排列中间件组件MySQL、InfluxDB/Doris、MinIO、EMQX。上方有一个"DNS解析"框标注A.com / B.com指向电信机房IP。

右侧"移动机房"内部包含与电信机房完全一致的K8s集群和中间件部署。上方同样有"DNS解析"框标注灾备切换时A.com / B.com指向移动机房IP。

两个机房之间通过一条粗箭头连接,箭头从左指向右,标注"加密增量备份数据同步每2小时"。箭头上方有一个锁形图标,标注"AES-256对称加密"。箭头下方有一条虚线箭头,标注"全量备份数据同步每周日02:00"。

图的最上方居中位置有一个"用户"图标通过域名A.com / B.com访问平台虚线分别指向两个机房其中指向电信机房的线为实线日常访问指向移动机房的线为虚线灾备切换后访问

4.3 双中心异地灾备总体架构

4.3.1 主中心(电信机房)

主中心承担以下职责:

  • 运行飞服平台和监管平台的全部业务服务
  • 接收并处理全部业务流量
  • 作为数据备份的源端,定期生成增量备份和全量备份数据
  • 将加密后的备份数据传输至灾备中心

4.3.2 灾备中心(移动机房)

灾备中心承担以下职责:

  • 部署与主中心完全一致的K8s集群和中间件环境
  • 接收主中心传输的加密备份数据,执行解密和数据导入
  • 日常保持服务就绪状态(应用已部署、中间件已运行,但不对外提供服务)
  • 在主中心故障时通过DNS切换接管全部业务流量

4.3.3 K8s集群配置同步

为确保两个机房的K8s集群部署配置保持一致建议采用以下策略

  • GitOps管理所有K8s资源配置Deployment、Service、ConfigMap、Secret等纳入Git仓库统一版本管理两个机房通过相同的Git仓库同步部署配置。
  • Velero集群备份使用Velero工具定期备份K8s集群资源对象和配置信息备份文件存储至异地MinIO对象存储用于灾备恢复时快速重建集群状态。
  • 镜像仓库同步:两个机房均部署独立的容器镜像仓库,通过镜像同步机制保持镜像版本一致。

4.4 网络与域名规划

4.4.1 域名规划

平台 域名 日常解析目标 灾备切换后解析目标
飞服平台 A.com 电信机房公网IP 移动机房公网IP
监管平台 B.com 电信机房公网IP 移动机房公网IP

4.4.2 域名切换策略

  • DNS TTL设置将A.com和B.com的DNS记录TTL值设置为较短周期建议60秒~300秒以缩短灾备切换时DNS缓存失效的等待时间。
  • 切换方式通过域名管理方修改DNS A记录的解析IP地址将域名从电信机房IP切换至移动机房IP。
  • 预期生效时间DNS切换操作后由于TTL设置较短预计全网生效时间在 10分钟以内

4.4.3 网络通道

  • 两个机房之间建立专线或VPN加密隧道用于备份数据的安全传输。
  • 传输通道须满足备份数据带宽需求,确保增量备份数据能够在备份周期内完成传输。

5 飞服平台容灾备份方案

5.1 飞服平台部署架构

飞服平台在电信机房(主中心)和移动机房(灾备中心)采用完全一致的部署架构:

部署层级 组件 部署方式 说明
接入层 Ingress Controller K8s Ingress 反向代理、SSL终止、路由转发
应用层 飞服平台微服务 K8s Deployment 无状态应用,支持水平扩展
消息层 EMQX K8s StatefulSet / 独立部署 MQTT消息代理无需备份
数据层-关系型 MySQL K8s StatefulSet / 独立部署 核心业务数据存储
数据层-时序 InfluxDB K8s StatefulSet / 独立部署 时序数据存储
数据层-对象 MinIO K8s StatefulSet / 独立部署 非结构化文件存储

【图示说明:飞服平台双中心部署示意图】

图片内容描述:一张左右对称的部署示意图。左侧标注"电信机房(主中心)",右侧标注"移动机房(灾备中心)"。

左侧电信机房内部自上而下排列用户通过A.com域名访问 → Ingress Controller → 飞服平台微服务集群多个Pod → 中间件层EMQX、MySQL、InfluxDB、MinIO并排排列。外部设备无人机、机库通过MQTT连接至EMQX。

右侧移动机房的结构与左侧完全一致,但标注"灾备就绪,日常不对外服务"。

两个机房的中间件之间以三条虚线箭头连接从左指向右分别标注MySQL增量同步、InfluxDB增量同步、MinIO增量同步每条箭头上均有一个锁图标表示加密传输。EMQX之间无连接线。

5.2 飞服平台数据备份策略

飞服平台的数据备份采用 "增量备份 + 全量备份" 相结合的策略:

备份类型 执行周期 备份内容 副本数量 保留策略
增量备份 每2小时 最近2小时的变更数据 3份 滚动保留最近72小时36份
全量备份 每周日凌晨02:00 全部数据的完整快照 1份 保留最近4周4份

备份数据流向:

电信机房 MySQL     ──加密传输──→  移动机房 MySQL
电信机房 InfluxDB  ──加密传输──→  移动机房 InfluxDB
电信机房 MinIO     ──加密传输──→  移动机房 MinIO

5.3 飞服平台增量备份方案

5.3.1 MySQL增量备份

配置项 参数值
备份工具 Percona XtraBackup / mysqldump逻辑备份
备份周期 每2小时执行一次
备份范围 最近2小时内发生变更的数据
备份方式 基于Binlog的增量备份
加密算法 AES-256-CBC对称加密
传输方式 通过加密通道传输至灾备中心
一致性校验 SHA-256哈希校验
副本数量 3份

备份流程

  1. 在主中心MySQL实例上执行增量备份导出最近2小时的Binlog变更数据。
  2. 对备份文件执行AES-256-CBC对称加密处理。
  3. 生成加密后文件的SHA-256哈希校验值。
  4. 将加密备份文件和校验文件通过加密通道传输至灾备中心。
  5. 灾备中心接收文件后执行SHA-256校验确认数据完整性。
  6. 校验通过后解密备份文件并导入至灾备中心MySQL实例。
  7. 将备份文件保存3份副本本地备份存储、灾备中心存储、独立备份存储设备

5.3.2 InfluxDB增量备份

配置项 参数值
备份工具 influxd backup / influx_inspect export
备份周期 每2小时执行一次
备份范围 最近2小时内写入的时序数据
备份方式 基于时间范围的数据导出(按时间切片模拟增量备份)
加密算法 AES-256-CBC对称加密
传输方式 通过加密通道传输至灾备中心
一致性校验 SHA-256哈希校验
副本数量 3份

备份流程

  1. 在主中心InfluxDB实例上按时间范围最近2小时导出时序数据。
  2. 对导出文件执行AES-256-CBC对称加密处理。
  3. 生成加密后文件的SHA-256哈希校验值。
  4. 将加密备份文件和校验文件通过加密通道传输至灾备中心。
  5. 灾备中心接收文件后执行SHA-256校验确认数据完整性。
  6. 校验通过后解密备份文件并导入至灾备中心InfluxDB实例。
  7. 将备份文件保存3份副本。

5.3.3 MinIO增量备份

配置项 参数值
备份工具 MinIO Clientmc/ MinIO Bucket Replication
备份周期 每2小时执行一次
备份范围 最近2小时内新增或修改的对象文件
备份方式 基于修改时间的增量同步
加密算法 AES-256-CBC对称加密
传输方式 通过加密通道传输至灾备中心支持TLS加密传输
一致性校验 MD5/SHA-256哈希校验
副本数量 3份

备份流程

  1. 使用MinIO Clientmc mirror命令扫描主中心MinIO存储桶识别最近2小时内新增或修改的对象文件。
  2. 对待传输的对象文件执行AES-256-CBC对称加密处理。
  3. 生成加密后文件的哈希校验值。
  4. 将加密文件通过加密通道TLS传输至灾备中心MinIO实例。
  5. 灾备中心接收文件后,执行哈希校验,确认数据完整性。
  6. 校验通过后解密文件并存入灾备中心MinIO对应的存储桶。
  7. 将备份文件保存3份副本。

替代方案说明若两个机房的MinIO实例之间网络条件良好可考虑启用MinIO原生的 Bucket Replication桶复制 功能替代定时增量备份。Bucket Replication支持近实时的对象级自动同步可显著降低RPO但需确保传输通道已开启TLS加密。

5.4 飞服平台全量备份方案

配置项 参数值
执行时间 每周日凌晨02:00
备份范围 MySQL全量数据 + InfluxDB全量数据 + MinIO全量数据
存储位置 独立备份存储设备(与业务存储物理隔离)
副本数量 1份
保留策略 保留最近4个全量备份版本约1个月

全量备份流程

  1. MySQL全量备份使用Percona XtraBackup或mysqldump执行全库全量备份生成完整的数据备份文件。
  2. InfluxDB全量备份使用influxd backup命令执行全量数据备份生成完整的时序数据备份文件。
  3. MinIO全量备份使用mc mirror命令执行全量对象同步将所有存储桶的全部对象复制至备份存储设备。
  4. 加密处理对全部备份文件执行AES-256-CBC对称加密。
  5. 完整性校验生成所有加密备份文件的SHA-256校验清单。
  6. 存储归档:将加密备份文件和校验清单存储至独立备份存储设备。

5.5 飞服平台灾备切换流程

当电信机房发生灾难性故障,且判断无法在短时间内恢复时,启动飞服平台灾备切换流程。

5.5.1 切换触发条件

  • 电信机房出现不可恢复的硬件故障、网络中断或自然灾害
  • 经评估判断故障无法在2小时内恢复
  • 由应急指挥团队下达灾备切换指令

5.5.2 切换操作步骤

步骤 操作内容 责任人 预估耗时
1 确认电信机房故障情况,评估是否启动灾备切换 应急指挥团队 10~30分钟
2 确认灾备中心(移动机房)飞服平台各服务运行状态 运维工程师 5~10分钟
3 确认灾备中心最近一次增量备份数据已成功导入 数据库管理员 5~10分钟
4 执行灾备中心数据一致性验证(抽检核心业务表数据) 数据库管理员 10~15分钟
5 启动灾备中心飞服平台全部微服务(如处于待机状态) 运维工程师 5~10分钟
6 域名管理方将A.com的DNS A记录解析IP修改为移动机房公网IP 网络管理员 5~10分钟
7 等待DNS缓存失效确认A.com解析已指向移动机房IP 网络管理员 5~10分钟
8 执行业务功能验证(登录、核心功能操作验证) 测试工程师 10~15分钟
9 确认灾备切换完成,发布切换成功通知 应急指挥团队 5分钟

预计总切换时间60~120分钟满足RTO ≤ 2小时的目标要求。

5.5.3 切换后数据评估

灾备切换完成后,需评估数据丢失情况:

  • 确认灾备中心最后一次成功导入的增量备份时间点
  • 计算从该时间点到故障发生时间的数据丢失窗口(预计 ≤ 2小时
  • 记录数据丢失范围报告,用于后续数据补录或业务处理

【图示说明:飞服平台灾备切换流程图】

图片内容描述:一张自上而下的流程图,描述灾备切换的完整流程。

起始节点:"电信机房故障发生"。 判断节点1"故障是否可在2小时内恢复" → 是:"执行机房故障恢复流程"(流程结束)。→ 否:进入下一步。 操作节点1"应急指挥团队下达灾备切换指令"。 操作节点2"确认灾备中心服务运行状态"。 操作节点3"确认最新增量备份数据已导入"。 操作节点4"执行数据一致性验证"。 判断节点2"验证是否通过?" → 否:"人工介入处理"。→ 是:继续。 操作节点5"启动灾备中心全部微服务"。 操作节点6"DNS管理方修改A.com解析至移动机房IP"。 操作节点7"等待DNS生效验证域名解析"。 操作节点8"执行业务功能验证"。 结束节点:"灾备切换完成,发布通知"。


6 监管平台容灾备份方案

6.1 监管平台部署架构

监管平台在电信机房(主中心)和移动机房(灾备中心)采用完全一致的部署架构:

部署层级 组件 部署方式 说明
接入层 Ingress Controller K8s Ingress 反向代理、SSL终止、路由转发
应用层 监管平台微服务 K8s Deployment 无状态应用,支持水平扩展
消息层 EMQX K8s StatefulSet / 独立部署 MQTT消息代理无需备份
数据层-关系型 MySQL K8s StatefulSet / 独立部署 核心业务数据存储
数据层-分析 Apache Doris 独立部署FE + BE节点 多源融合分析与三维空间地图数据存储
数据层-对象 MinIO K8s StatefulSet / 独立部署 非结构化文件存储

与飞服平台的差异说明监管平台使用Apache Doris替代InfluxDB作为时序/分析数据库Doris除存储时序数据外还承担多源融合分析和三维空间地图数据的存储与查询任务。Doris的备份策略与InfluxDB存在显著差异需采用Doris原生的Backup & Restore机制或CCR跨集群复制方案。

【图示说明:监管平台双中心部署示意图】

图片内容描述:一张左右对称的部署示意图。左侧标注"电信机房(主中心)",右侧标注"移动机房(灾备中心)"。

左侧电信机房内部自上而下排列用户通过B.com域名访问 → Ingress Controller → 监管平台微服务集群多个Pod包括探测管理、反制管理、多源融合分析、三维空间地图等服务 → 中间件层EMQX、MySQL、Apache Doris集群【含FE和BE节点】、MinIO并排排列。外部设备探测设备、反制设备、无人机、机库通过MQTT连接至EMQX。

右侧移动机房的结构与左侧完全一致,标注"灾备就绪,日常不对外服务"。

两个机房的中间件之间以三条虚线箭头连接从左指向右分别标注MySQL增量同步、Doris增量同步、MinIO增量同步每条箭头上均有一个锁图标表示加密传输。EMQX之间无连接线。

6.2 监管平台数据备份策略

监管平台的数据备份采用 "增量备份 + 全量备份" 相结合的策略:

备份类型 执行周期 备份内容 副本数量 保留策略
增量备份 每2小时 最近2小时的变更数据 3份 滚动保留最近72小时36份
全量备份 每周日凌晨02:00 全部数据的完整快照 1份 保留最近4周4份

备份数据流向:

电信机房 MySQL  ──加密传输──→  移动机房 MySQL
电信机房 Doris  ──加密传输──→  移动机房 Doris
电信机房 MinIO  ──加密传输──→  移动机房 MinIO

6.3 监管平台增量备份方案

6.3.1 MySQL增量备份

监管平台MySQL增量备份方案与飞服平台完全一致具体参见 5.3.1 MySQL增量备份

备份内容包括:探测目标信息、反制任务记录、设备管理数据、用户权限配置等所有结构化业务数据。

6.3.2 Doris增量备份

配置项 参数值
备份工具 Apache Doris原生Backup & Restore / CCRCross-Cluster Replication
备份周期 每2小时执行一次
备份范围 最近2小时内写入或变更的分析数据、三维空间地图数据
备份方式 方案A基于分区的Snapshot备份方案B基于Binlog的CCR增量同步
加密算法 AES-256-CBC对称加密
传输方式 通过加密通道传输至灾备中心
一致性校验 SHA-256哈希校验
副本数量 3份

方案A基于Snapshot的分区备份流程

  1. 在主中心Doris集群中创建指向灾备中心对象存储如MinIO的Repository。
  2. 每2小时对新增或变更的数据分区执行BACKUP命令生成快照文件。
  3. 快照文件通过加密通道传输至灾备中心的Repository存储。
  4. 灾备中心Doris集群执行RESTORE命令从Repository中恢复最新的分区快照数据。
  5. 生成SHA-256校验值并执行一致性验证。

方案B基于CCR的增量同步流程推荐

  1. 在主中心和灾备中心的Doris集群上分别部署CCR Syncer服务。
  2. 配置主中心FE和BE节点开启Binlog参数。
  3. 通过CCR Syncer建立数据库级别或表级别的跨集群复制链路。
  4. CCR基于Binlog机制自动同步DDL和DML变更实现近实时增量同步。
  5. 定期执行数据一致性抽检,确保主备数据一致。

方案选择建议若Doris版本支持CCR功能Apache Doris 2.0+优先推荐方案BCCR跨集群复制其同步延迟更低秒级至分钟级可显著优于2小时的RPO目标。若Doris版本不支持CCR则采用方案A分区Snapshot备份

6.3.3 MinIO增量备份

监管平台MinIO增量备份方案与飞服平台完全一致具体参见 5.3.3 MinIO增量备份

备份内容包括:视觉探测产生的视频文件、图片数据等非结构化数据。

6.4 监管平台全量备份方案

配置项 参数值
执行时间 每周日凌晨02:00
备份范围 MySQL全量数据 + Doris全量数据 + MinIO全量数据
存储位置 独立备份存储设备(与业务存储物理隔离)
副本数量 1份
保留策略 保留最近4个全量备份版本约1个月

全量备份流程

  1. MySQL全量备份使用Percona XtraBackup或mysqldump执行全库全量备份生成完整的数据备份文件。
  2. Doris全量备份使用Doris原生BACKUP命令对全部数据库执行全量快照备份快照存储至远程Repository。
  3. MinIO全量备份使用mc mirror命令执行全量对象同步将所有存储桶的全部对象复制至备份存储设备。
  4. 加密处理对全部备份文件执行AES-256-CBC对称加密。
  5. 完整性校验生成所有加密备份文件的SHA-256校验清单。
  6. 存储归档:将加密备份文件和校验清单存储至独立备份存储设备。

6.5 监管平台灾备切换流程

当电信机房发生灾难性故障时,监管平台的灾备切换流程与飞服平台一致,仅在域名和数据验证环节存在差异。

6.5.1 切换触发条件

6.5.2 切换操作步骤

步骤 操作内容 责任人 预估耗时
1 确认电信机房故障情况,评估是否启动灾备切换 应急指挥团队 10~30分钟
2 确认灾备中心(移动机房)监管平台各服务运行状态 运维工程师 5~10分钟
3 确认灾备中心MySQL最近一次增量备份数据已成功导入 数据库管理员 5~10分钟
4 确认灾备中心Doris数据同步状态CCR同步延迟/最新Snapshot时间 数据库管理员 5~10分钟
5 确认灾备中心MinIO最近一次增量备份数据已成功同步 运维工程师 5~10分钟
6 执行灾备中心数据一致性验证抽检MySQL核心业务表、Doris分析数据、MinIO对象文件 数据库管理员 10~15分钟
7 启动灾备中心监管平台全部微服务(如处于待机状态) 运维工程师 5~10分钟
8 域名管理方将B.com的DNS A记录解析IP修改为移动机房公网IP 网络管理员 5~10分钟
9 等待DNS缓存失效确认B.com解析已指向移动机房IP 网络管理员 5~10分钟
10 执行业务功能验证(登录、探测/反制功能、三维地图、多源融合分析等核心功能验证) 测试工程师 10~15分钟
11 确认灾备切换完成,发布切换成功通知 应急指挥团队 5分钟

预计总切换时间70~135分钟满足RTO ≤ 2小时的目标要求。

6.5.3 切换后数据评估

与飞服平台一致,灾备切换完成后需评估数据丢失情况(参见 5.5.3 切换后数据评估)。特别注意:

  • 如采用Doris CCR方案需额外确认CCR同步的最后成功偏移量评估Doris数据的丢失范围。
  • 如采用Doris Snapshot方案需确认最后一次成功Snapshot的时间点。

【图示说明:监管平台灾备切换流程图】

图片内容描述:一张自上而下的流程图,与飞服平台灾备切换流程图结构类似,但增加了以下差异节点:

在"确认最新增量备份数据已导入"步骤中拆分为三个并行确认操作①确认MySQL备份导入状态、②确认Doris同步状态CCR延迟/Snapshot时间、③确认MinIO备份同步状态。三个并行操作完成后汇聚至"执行数据一致性验证"节点。

DNS修改步骤中标注域名为B.com。业务功能验证步骤中标注"验证探测/反制功能、三维地图、多源融合分析"。其余流程与飞服平台一致。


7 数据备份安全机制

7.1 加密传输方案

7.1.1 加密算法选型

配置项 参数值
加密算法 AES-256-CBC高级加密标准256位密钥CBC模式
加密类型 对称加密
加密工具 OpenSSL
适用范围 全部跨机房传输的备份数据MySQL、InfluxDB、Doris、MinIO备份文件

7.1.2 加密流程

备份源文件 → AES-256-CBC加密 → 生成加密文件(.enc) → 加密传输 → 接收端解密 → 恢复数据

加密操作示例

# 加密
openssl enc -aes-256-cbc -salt -pbkdf2 \
  -in backup_data.sql \
  -out backup_data.sql.enc \
  -pass file:/path/to/keyfile

# 解密
openssl enc -aes-256-cbc -d -pbkdf2 \
  -in backup_data.sql.enc \
  -out backup_data.sql \
  -pass file:/path/to/keyfile

7.1.3 传输通道安全

  • 机房间网络通道通过专线或VPN建立加密隧道确保传输链路安全。
  • MinIO传输启用TLS/SSL证书加密确保MinIO Client与MinIO Server之间的数据传输安全。
  • 端口控制:仅开放备份数据传输所需的特定端口,关闭所有非必要端口。

7.2 数据一致性校验

7.2.1 校验机制

校验阶段 校验方式 说明
备份文件加密后 生成SHA-256哈希值 在源端生成加密文件的校验值
传输完成后 SHA-256哈希对比 在目标端重新计算哈希值,与源端校验值对比
数据导入后 业务数据抽检 对核心业务表的记录数、关键字段进行抽样比对

7.2.2 校验操作示例

# 源端生成校验文件
sha256sum backup_data.sql.enc > backup_data.sql.enc.sha256

# 目标端校验
sha256sum -c backup_data.sql.enc.sha256

7.2.3 校验失败处理

  • 校验失败时,自动触发告警通知运维人员。
  • 系统自动重新从源端获取备份文件,执行重传操作。
  • 连续3次重传失败后升级告警等级要求人工介入排查。

7.3 密钥管理

管理要求 具体措施
密钥存储 加密密钥存储于独立的密钥管理系统中,严禁与备份数据同存储
密钥分发 密钥仅在主中心和灾备中心的备份服务器上部署,通过安全通道分发
密钥更新 每季度定期更换加密密钥,更换前后新旧密钥并行使用一个备份周期
密钥备份 密钥以离线方式备份至安全介质,由安全管理员保管
访问控制 仅授权运维人员可访问密钥文件,严格限制文件系统权限

7.4 访问控制与审计

控制维度 具体措施
账号管理 备份操作使用专用服务账号,与业务账号隔离
权限控制 备份服务账号仅具备数据读取和备份文件写入权限,不具备数据修改或删除权限
操作审计 全部备份操作、传输操作、恢复操作记录至审计日志日志保留不少于6个月
网络隔离 备份传输通道与业务网络逻辑隔离,避免备份流量影响业务性能

8 自动化运维方案

8.1 备份自动化调度

8.1.1 增量备份调度

全部增量备份任务通过Kubernetes CronJob或系统Cron定时任务实现自动化调度

飞服平台增量备份任务调度表

任务名称 Cron表达式 执行时间说明 目标组件
mysql-incremental-backup 0 */2 * * * 每2小时整点执行 MySQL → MySQL
influxdb-incremental-backup 10 */2 * * * 每2小时的第10分钟执行 InfluxDB → InfluxDB
minio-incremental-sync 20 */2 * * * 每2小时的第20分钟执行 MinIO → MinIO

监管平台增量备份任务调度表

任务名称 Cron表达式 执行时间说明 目标组件
mysql-incremental-backup 0 */2 * * * 每2小时整点执行 MySQL → MySQL
doris-incremental-backup 10 */2 * * * 每2小时的第10分钟执行 Doris → Doris
minio-incremental-sync 20 */2 * * * 每2小时的第20分钟执行 MinIO → MinIO

说明各任务执行时间错开10分钟避免多个备份任务同时运行对系统资源造成过大压力。

8.1.2 全量备份调度

任务名称 Cron表达式 执行时间说明 备注
full-backup-weekly 0 2 * * 0 每周日凌晨02:00执行 飞服平台和监管平台统一执行

8.1.3 备份脚本架构

/opt/disaster-recovery/
├── bin/
│   ├── mysql-backup.sh          # MySQL增量/全量备份脚本
│   ├── influxdb-backup.sh       # InfluxDB增量/全量备份脚本(飞服平台)
│   ├── doris-backup.sh          # Doris增量/全量备份脚本(监管平台)
│   ├── minio-sync.sh            # MinIO增量/全量同步脚本
│   ├── encrypt.sh               # AES-256加密脚本
│   ├── decrypt.sh               # AES-256解密脚本
│   ├── verify-checksum.sh       # SHA-256校验脚本
│   └── transfer.sh              # 跨机房传输脚本
├── conf/
│   ├── backup.conf              # 备份配置文件
│   └── alert.conf               # 告警配置文件
├── logs/
│   └── backup-YYYYMMDD.log      # 备份日志文件
└── keys/
    └── .backup.key              # 加密密钥文件权限600

8.2 数据导入自动化

灾备中心的数据导入流程同样实现自动化运行:

  1. 灾备中心部署数据接收服务,自动监听备份数据传输。
  2. 接收到加密备份文件后自动执行SHA-256校验。
  3. 校验通过后,自动执行解密操作。
  4. 解密后的数据自动导入至对应的中间件实例MySQL、InfluxDB/Doris、MinIO
  5. 导入完成后,生成导入状态报告并记录日志。

8.3 异常告警与人工介入机制

8.3.1 告警分级

告警级别 触发条件 通知方式 处理要求
P1-紧急 备份任务连续3次执行失败 电话 + 短信 + 企业微信 15分钟内人工介入
P2-重要 单次备份任务执行失败 短信 + 企业微信 30分钟内人工介入
P2-重要 数据校验失败(含自动重试) 短信 + 企业微信 30分钟内人工介入
P3-一般 备份任务执行超时(超过预设阈值) 企业微信 1小时内确认处理
P3-一般 备份存储空间低于阈值(<20% 企业微信 24小时内扩容处理

8.3.2 人工介入场景

以下场景需要运维人员人工介入处理:

  1. 增量备份任务连续3次执行失败需排查数据源或传输链路问题。
  2. 数据校验连续3次重传后仍失败需排查传输通道或加密密钥问题。
  3. 数据导入至灾备中心后一致性抽检不通过,需排查数据库状态。
  4. 全量备份执行失败或耗时异常,需排查存储空间和系统资源。
  5. 灾备中心服务健康检查异常,需排查灾备环境运行状态。

8.4 监控与日志

8.4.1 监控指标

监控项 监控内容 采集频率 告警阈值
备份任务状态 各备份任务的执行状态(成功/失败/进行中) 每次任务执行时 失败即告警
备份数据量 每次备份生成的数据量大小 每次任务执行时 偏差超过50%告警
备份耗时 每次备份任务的执行时长 每次任务执行时 超过预设阈值告警
传输带宽利用率 机房间传输通道的带宽使用情况 每5分钟 超过80%告警
备份存储空间 备份存储设备的剩余空间 每小时 低于20%告警
灾备中心服务状态 灾备中心各中间件和微服务的运行状态 每分钟 异常即告警

8.4.2 日志管理

日志类型 内容 保留周期
备份执行日志 备份任务的启动时间、执行步骤、数据量、耗时、完成状态 90天
传输日志 文件传输的起止时间、文件大小、传输速率、传输结果 90天
校验日志 哈希校验的文件名、源端校验值、目标端校验值、校验结果 90天
导入日志 数据导入的起止时间、导入数据量、导入结果 90天
操作审计日志 人工操作的操作人、操作时间、操作内容、操作结果 180天

9 灾备演练方案

9.1 演练目标

  1. 验证灾备切换流程的完整性和可操作性。
  2. 验证RTO和RPO指标是否达到设计目标。
  3. 检验运维团队对灾备切换流程的熟练程度。
  4. 发现灾备方案中的潜在问题并持续改进。

9.2 演练计划

演练类型 演练周期 演练范围 说明
桌面推演 每季度1次 全流程 以文档推演方式走读灾备切换全流程,不涉及实际操作
备份恢复演练 每季度1次 数据备份与恢复 实际执行备份数据的恢复操作,验证数据可用性
切换演练 每半年1次 全流程切换 实际执行灾备切换操作(可在维护窗口期执行),验证端到端切换能力

9.3 演练流程

9.3.1 演练前准备

  1. 制定演练方案,明确演练目标、范围、步骤和人员分工。
  2. 通知相关业务方演练时间和可能的影响。
  3. 确认灾备中心环境运行状态正常。
  4. 准备演练记录表和评估清单。

9.3.2 演练执行

  1. 按照灾备切换流程逐步执行操作。
  2. 记录每个步骤的实际执行时间和结果。
  3. 记录演练过程中遇到的问题和异常情况。
  4. 完成业务功能验证,确认灾备环境服务正常。

9.3.3 演练回切

  1. 演练完成后,将业务流量切回主中心。
  2. 确认主中心业务恢复正常。
  3. 验证回切过程中的数据一致性。

9.3.4 演练总结

  1. 编制演练报告,汇总演练过程、执行耗时、发现问题。
  2. 评估RTO和RPO指标是否达标。
  3. 针对发现的问题制定改进措施和整改计划。
  4. 更新灾备方案文档(如有必要)。

9.4 演练评估标准

评估维度 达标标准 说明
RTO ≤ 2小时 从启动切换到业务恢复对外服务的总耗时
RPO ≤ 2小时 数据丢失时间窗口不超过2小时
切换成功率 100% 所有业务功能均正常可用
数据完整性 100% 备份数据与源数据一致性校验通过
流程规范性 100% 所有步骤按照文档规范执行

10 具体操作手册(待完善)

说明:本章节为具体操作手册的预留章节,将在方案评审通过后,根据实际部署环境编写详细的操作步骤指南。每份操作手册应包含:前置条件、操作步骤、验证方法、回滚方案、常见问题处理。

10.1 MySQL备份与恢复操作手册

(待完善)

主要内容规划:

  • MySQL增量备份操作步骤Percona XtraBackup / mysqldump
  • MySQL增量备份数据恢复步骤Binlog回放
  • MySQL全量备份操作步骤
  • MySQL全量备份数据恢复步骤
  • MySQL备份文件加密/解密操作
  • MySQL数据一致性校验操作
  • 常见故障排查指南

10.2 InfluxDB备份与恢复操作手册

(待完善)

主要内容规划:

  • InfluxDB按时间范围导出操作步骤
  • InfluxDB数据导入恢复步骤
  • InfluxDB全量备份操作步骤
  • InfluxDB全量备份恢复步骤
  • InfluxDB备份文件加密/解密操作
  • InfluxDB数据一致性校验操作
  • 常见故障排查指南

10.3 MinIO备份与恢复操作手册

(待完善)

主要内容规划:

  • MinIO增量同步操作步骤mc mirror
  • MinIO Bucket Replication配置步骤可选方案
  • MinIO全量同步操作步骤
  • MinIO TLS证书配置步骤
  • MinIO对象文件加密/解密操作
  • MinIO数据一致性校验操作
  • MinIO生命周期管理配置
  • 常见故障排查指南

10.4 Doris备份与恢复操作手册

(待完善)

主要内容规划:

  • Doris Repository创建与配置步骤
  • Doris Snapshot备份操作步骤BACKUP命令
  • Doris Snapshot恢复操作步骤RESTORE命令
  • Doris CCR Syncer部署与配置步骤
  • Doris CCR跨集群复制链路建立步骤
  • Doris Binlog参数配置步骤
  • Doris数据一致性校验操作
  • 常见故障排查指南

10.5 灾备切换操作手册

(待完善)

主要内容规划:

  • 灾备切换前检查清单
  • 飞服平台灾备切换详细操作步骤
  • 监管平台灾备切换详细操作步骤
  • DNS域名解析修改操作步骤
  • 业务功能验证检查清单
  • 切换后数据丢失评估操作步骤
  • 灾备切换通知模板

10.6 灾备回切操作手册

(待完善)

主要内容规划:

  • 原主中心故障恢复确认流程
  • 数据回同步操作步骤(灾备中心 → 主中心)
  • 回切前数据一致性校验步骤
  • DNS域名解析回切操作步骤
  • 业务功能验证检查清单
  • 回切后增量备份恢复正常调度确认

附录A 备份任务Cron表达式汇总

A.1 飞服平台

任务名称 Cron表达式 执行说明
MySQL增量备份 0 */2 * * * 每2小时整点00:00, 02:00, 04:00 ...
InfluxDB增量备份 10 */2 * * * 每2小时的第10分钟00:10, 02:10, 04:10 ...
MinIO增量同步 20 */2 * * * 每2小时的第20分钟00:20, 02:20, 04:20 ...
全量备份(全部组件) 0 2 * * 0 每周日凌晨02:00

A.2 监管平台

任务名称 Cron表达式 执行说明
MySQL增量备份 0 */2 * * * 每2小时整点00:00, 02:00, 04:00 ...
Doris增量备份 10 */2 * * * 每2小时的第10分钟00:10, 02:10, 04:10 ...
MinIO增量同步 20 */2 * * * 每2小时的第20分钟00:20, 02:20, 04:20 ...
全量备份(全部组件) 0 2 * * 0 每周日凌晨02:00

附录B 灾备切换检查清单

B.1 切换前检查

序号 检查项 检查内容 检查结果 检查人
1 故障确认 确认主中心故障性质和预计恢复时间 □ 通过 □ 不通过
2 灾备中心K8s集群 确认K8s集群各节点运行正常 □ 通过 □ 不通过
3 灾备中心MySQL 确认MySQL实例运行正常且最新备份已导入 □ 通过 □ 不通过
4 灾备中心InfluxDB/Doris 确认InfluxDB/Doris实例运行正常且最新备份已导入 □ 通过 □ 不通过
5 灾备中心MinIO 确认MinIO实例运行正常且最新备份已同步 □ 通过 □ 不通过
6 灾备中心EMQX 确认EMQX实例运行正常可接收设备连接 □ 通过 □ 不通过
7 灾备中心微服务 确认全部微服务Pod运行正常 □ 通过 □ 不通过
8 DNS管理权限 确认域名管理操作权限就绪 □ 通过 □ 不通过

B.2 切换后验证

序号 验证项 验证内容 验证结果 验证人
1 DNS解析 确认域名已解析至灾备中心IP □ 通过 □ 不通过
2 平台登录 确认用户可正常登录平台 □ 通过 □ 不通过
3 核心业务功能 确认核心业务功能操作正常 □ 通过 □ 不通过
4 设备连接 确认外部设备可正常连接EMQX □ 通过 □ 不通过
5 数据查询 确认历史数据可正常查询 □ 通过 □ 不通过
6 数据丢失评估 确认数据丢失时间窗口 ≤ 2小时 □ 通过 □ 不通过

文档结束