Skip to content

DM 异地灾备 ​

异地灾备的定义 ​

异地灾备是指在地理位置上与生产中心分离的地方建立灾备中心,通过数据复制技术将生产中心的数据同步到灾备中心,当生产中心发生灾难时,灾备中心可以接管业务,保证业务的连续性。

异地灾备的重要性 ​

  • 防止数据丢失:在本地灾难发生时,异地灾备中心保存有完整的数据副本
  • 保证业务连续性:生产中心发生灾难时,灾备中心可以接管业务
  • 符合合规要求:满足等保、分级保护等合规要求
  • 提高抗灾能力:提高系统对各种灾难的抵抗能力
  • 增强业务信心:为业务提供可靠的保障,增强业务信心

异地灾备的关键指标 ​

  • RPO(恢复点目标):灾难发生后,允许丢失的数据量
  • RTO(恢复时间目标):灾难发生后,系统恢复正常运行所需的时间
  • 数据一致性:灾备中心与生产中心的数据一致性
  • 可用性:灾备中心的可用性
  • 可靠性:灾备系统的可靠性

异地灾备的架构设计 ​

1. 同城灾备架构 ​

同城灾备是指灾备中心与生产中心位于同一城市,通常距离在几十公里以内。

特点 ​

  • 距离近,网络延迟低
  • 数据同步效率高,RPO较小
  • 建设成本相对较低
  • 易管理和维护
  • 但同一城市可能面临相同的灾难风险,如地震、洪水等

适用场景 ​

  • 对RPO和RTO要求较高的业务
  • 预算有限的场景
  • 作为异地灾备的补充

架构图 ​

2. 异地灾备架构 ​

异地灾备是指灾备中心与生产中心位于不同城市,通常距离在几百公里以上。

特点 ​

  • 距离远,网络延迟高
  • 数据同步效率相对较低,RPO较大
  • 建设成本相对较高
  • 管理和维护难度较大
  • 但可以有效防止区域性灾难

适用场景 ​

  • 对业务连续性要求极高的业务
  • 必须符合严格合规要求的业务
  • 涉及重要敏感数据的业务

架构图 ​

3. 多云灾备架构 ​

多云灾备是指利用多个云服务提供商的资源,建立跨云的灾备架构。

特点 ​

  • 利用云服务的弹性和可靠性
  • 降低基础设施成本
  • 提高抗灾能力
  • 但需要考虑云服务提供商之间的兼容性

适用场景 ​

  • 已经使用云服务的业务
  • 对成本敏感的业务
  • 追求高可用性的业务

异地灾备的技术实现 ​

1. 基于DMDataWatch的灾备方案 ​

DMDataWatch是DM数据库提供的主备复制解决方案,支持异地灾备部署。

实现原理 ​

  • 基于日志复制技术
  • 主库生成日志,通过网络传输到备库
  • 备库应用日志,保持与主库的数据一致
  • 支持异步、半同步等多种同步模式

配置步骤 ​

  1. 部署主库和备库
  2. 配置主备网络连接
  3. 配置DMDataWatch参数
  4. 启动数据同步
  5. 验证同步状态

适用场景 ​

  • 对数据一致性要求较高的场景
  • 网络条件较好的异地灾备场景
  • 预算有限的场景

2. 基于DMDSC+DMDataWatch的灾备方案 ​

结合DMDSC集群和DMDataWatch,实现更高可用性的灾备方案。

实现原理 ​

  • 生产中心部署DMDSC集群,提供高可用性
  • 灾备中心部署DMDataWatch备库,实现数据复制
  • 当生产中心的DMDSC集群发生故障时,灾备中心可以接管业务

适用场景 ​

  • 对可用性要求极高的场景
  • 核心业务系统
  • 预算充足的场景

3. 基于DMRAC+DMDataWatch的灾备方案 ​

结合DMRAC集群和DMDataWatch,实现高性能和高可用性的灾备方案。

实现原理 ​

  • 生产中心部署DMRAC集群,提供高性能和高可用性
  • 灾备中心部署DMDataWatch备库,实现数据复制
  • 当生产中心的DMRAC集群发生故障时,灾备中心可以接管业务

适用场景 ​

  • 对性能要求极高的场景
  • 高并发业务系统
  • 预算充足的场景

异地灾备的部署实施 ​

1. 部署前准备 ​

需求分析 ​

  • 业务需求分析
  • RPO和RTO目标确定
  • 预算评估
  • 合规要求分析

架构设计 ​

  • 灾备架构选择
  • 技术方案确定
  • 网络规划
  • 硬件配置
  • 软件配置

资源准备 ​

  • 服务器资源
  • 存储资源
  • 网络资源
  • 软件许可证

2. 部署实施 ​

环境部署 ​

  • 服务器安装和配置
  • 存储设备配置
  • 网络配置
  • 操作系统安装和配置

数据库部署 ​

  • DM数据库安装
  • 数据库实例创建
  • 数据库参数配置

灾备配置 ​

  • DMDataWatch配置
  • 数据同步配置
  • 监控配置
  • 告警配置

3. 测试和验证 ​

功能测试 ​

  • 数据同步测试
  • 故障切换测试
  • 业务接管测试

性能测试 ​

  • 数据同步性能测试
  • 故障切换时间测试
  • 业务恢复时间测试

可靠性测试 ​

  • 长时间运行测试
  • 各种故障场景测试
  • 灾难模拟测试

异地灾备的配置管理 ​

1. 同步参数配置 ​

根据异地灾备的特点,需要合理配置同步参数:

核心参数配置 ​

ini
-- dm.ini配置
DW_TYPE = PRIMARY
DW_MODE = ASYNC  -- 异地灾备建议使用异步模式
DW_ERROR_TIME = 60  -- 适当增大故障检测时间
OGUID = 453331
MAL_INI = 1
ARCH_INI = 1

-- dmarch.ini配置
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = STANDBY_DB
ARCH_INCOMING_PATH = /dm/arch_remote
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

2. 网络配置 ​

异地灾备的网络配置非常重要,直接影响数据同步的性能和可靠性:

网络优化 ​

  • 使用专用网络链路
  • 优化网络带宽
  • 配置QoS,保证同步流量的优先级
  • 使用压缩和加密技术

网络监控 ​

  • 监控网络带宽使用率
  • 监控网络延迟
  • 监控网络丢包率
  • 配置网络告警

3. 安全配置 ​

异地灾备的安全配置是保障灾备系统安全的重要措施:

数据加密 ​

  • 传输加密:使用SSL/TLS加密数据传输
  • 存储加密:对灾备数据进行加密存储

访问控制 ​

  • 配置严格的防火墙规则
  • 使用VPN或专线连接
  • 配置IP白名单
  • 限制访问权限

安全审计 ​

  • 配置安全审计
  • 定期查看审计日志
  • 定期进行安全评估

异地灾备的监控和维护 ​

1. 同步状态监控 ​

通过监控同步状态,可以及时发现和处理同步问题:

监控视图 ​

sql
-- 查看DataWatch状态
SELECT * FROM V$DATAWATCH;

-- 查看日志发送状态
SELECT * FROM V$ARCH_SEND_STATUS;

-- 查看日志应用状态
SELECT * FROM V$ARCH_APPLY_STATUS;

-- 查看MAL系统状态
SELECT * FROM V$MAL_INS;

监控工具 ​

  • DM管理工具:图形化监控界面
  • 第三方监控工具:如Zabbix、Prometheus等
  • 自定义监控脚本:根据需求编写自定义监控脚本

2. 灾备性能监控 ​

通过监控灾备性能,可以优化灾备配置,提高灾备系统的效率:

监控指标 ​

  • 数据同步延迟
  • 日志发送速率
  • 日志应用速率
  • 网络带宽使用率
  • 系统资源使用率

3. 灾备维护 ​

定期对灾备系统进行维护,确保灾备系统的可靠性和性能:

日常维护 ​

  • 检查同步状态
  • 查看同步日志
  • 监控系统资源
  • 备份灾备数据

定期维护 ​

  • 测试故障切换
  • 优化同步参数
  • 更新数据库软件版本
  • 检查网络连接
  • 测试业务接管流程

异地灾备的故障切换 ​

1. 故障切换触发条件 ​

  • 生产中心发生灾难
  • 生产中心网络中断
  • 生产中心数据库故障
  • 计划内维护

2. 手动故障切换流程 ​

  1. 确认生产中心故障
  2. 检查灾备中心状态
  3. 停止主库(如果可能)
  4. 将备库切换为主库
  5. 更新客户端连接配置
  6. 恢复业务访问
  7. 验证业务功能

3. 自动故障切换流程 ​

  1. 监视器检测到主库故障
  2. 自动将备库切换为主库
  3. 更新虚拟IP或DNS配置
  4. 客户端自动连接到新主库
  5. 业务自动恢复

4. 故障切换注意事项 ​

  • 确保数据一致性
  • 选择合适的切换时机
  • 准备回滚计划
  • 记录切换过程
  • 切换后验证业务功能

异地灾备的最佳实践 ​

1. 合理规划RPO和RTO ​

根据业务需求,合理规划RPO和RTO目标,选择合适的灾备方案。

2. 选择合适的同步模式 ​

根据网络条件和业务需求,选择合适的同步模式:

  • 网络条件好,对数据一致性要求高:使用半同步模式
  • 网络条件差,对数据一致性要求一般:使用异步模式
  • 兼顾性能和一致性:使用异步实时模式

3. 优化网络配置 ​

  • 使用专用网络链路
  • 优化网络带宽
  • 配置QoS,保证同步流量的优先级
  • 使用压缩和加密技术

4. 定期测试和演练 ​

定期测试和演练灾备系统,确保灾备系统的可靠性:

  • 定期测试数据同步
  • 定期测试故障切换
  • 定期进行灾难模拟演练
  • 定期更新灾备预案

5. 完善监控和告警机制 ​

  • 配置完善的监控系统
  • 监控同步状态、性能和可用性
  • 配置告警,及时发现和处理问题
  • 建立告警处理流程

6. 备份和恢复策略 ​

  • 定期备份灾备数据
  • 测试备份的可用性
  • 制定详细的恢复预案
  • 定期测试恢复流程

7. 文档和培训 ​

  • 编写详细的灾备文档
  • 培训管理和维护人员
  • 建立灾备管理团队
  • 定期更新文档和培训内容

常见问题(FAQ) ​

Q1: 如何选择合适的异地灾备方案? ​

A1: 选择异地灾备方案需要考虑以下因素:

  • 业务需求
  • RPO和RTO目标
  • 预算
  • 网络条件
  • 合规要求
  • 技术成熟度

对于大多数企业级应用,建议使用基于DMDataWatch的灾备方案,根据业务需求选择合适的同步模式。

Q2: 异地灾备的网络延迟对同步有什么影响? ​

A2: 异地灾备的网络延迟会影响数据同步的性能和RPO:

  • 延迟过高会导致日志传输延迟增加
  • 可能导致RPO增大
  • 影响同步模式的选择(高延迟环境建议使用异步模式)

Q3: 如何测试异地灾备的可靠性? ​

A3: 测试异地灾备可靠性的方法:

  • 定期测试数据同步
  • 定期进行故障切换测试
  • 进行灾难模拟演练
  • 测试各种故障场景
  • 测试业务接管流程

Q4: 异地灾备的成本如何控制? ​

A4: 控制异地灾备成本的方法:

  • 选择合适的灾备架构
  • 合理配置硬件和软件资源
  • 优化网络配置,降低网络成本
  • 利用云服务,降低基础设施成本
  • 定期优化灾备配置,提高资源利用率

Q5: 如何确保异地灾备的数据一致性? ​

A5: 确保异地灾备数据一致性的方法:

  • 选择合适的同步模式
  • 监控数据同步状态
  • 定期验证主备数据一致性
  • 优化同步参数
  • 确保主备配置一致

版本差异说明 ​

版本主要变化
DM 7支持基本的异地灾备功能,基于DMDataWatch
DM 8增强了异地灾备功能,支持更多的同步模式和架构
DM 8.1优化了异地灾备性能和可靠性,支持更灵活的配置

在部署和管理异地灾备系统时,需要注意以下几点:

  • 合理规划RPO和RTO目标
  • 选择合适的灾备架构和同步模式
  • 优化网络配置,提高同步性能
  • 配置完善的监控和告警机制
  • 定期测试和演练灾备系统
  • 制定详细的灾备预案和文档

通过合理的规划、部署和管理,可以确保异地灾备系统的可靠性和可用性,为业务提供可靠的保障。