C. 高可用架构 — 数据完整性
概述
- 数据的问题
- 数据的可访问性(可用性)
- 数据的完整性
- 手段:主动探测和快速修复能力
- 衡量指标
- 在线时间
- 延迟
- 规模
- 创新速度
- 隐私
- 备份与存档
- 备份:能够快速恢复
- 存档:存储,以满足审核,取证和合规要求
- 难点
- 核心:复制机制和冗余并不意味着可恢复性
- 如果该环境使用了混合交易型和非交易型的备份和恢复方案,那么最终恢复的数据不一定是正确的
- 如果某个服务必须在不停机的情况下更新,那么不同版本的逻辑可能同时并行操作数据
- 如果所有其他有交互关系的服务不是同步更新,那么在更新过程中各服务的不同版本之间可能会有多种组合,那么就更加增大了数据以外丢失和损坏发生的概率
数据丢失的事故类型(总计24种类型)
- 根源问题
- 用户行为
- 操作员错误
- 应用程序Bug
- 基础设施缺陷
- 硬件故障
- 自然灾害
- 影响范围
- 广泛
- 范围很窄
- 发生速度
- 快速发生
- 缓慢持续
数据恢复
- 备份策略/恢复策略
- 时间点恢复:把每块数据恢复到一个特定的时间点
- 分级备份策略
- 复制
- 缺点:在发现数据有问题之前,就已经将损坏的数据记录以及错误的删除动作更新到多个副本上
- 数据导出
- 优点
- 一定程度上解决了用户错误和应用程序层面的Bug问题
- 缺点
- 数据转换过程总的Bug
- 本地文件存储问题
- 以及两种格式之间潜在的语义区别
- 优点
- 复制
- 数据备份频率,技术栈越底层的地方进行数据快照所需要的时间越长
- 数据库层,某个交易可能只需要几秒钟复制
- 数据库快照导出成一个文件可能需要40分钟的时间
- 一个完整的文件系统备份可能需要几个小时
- 保留期
- 数据备份保存的时间
- 难点
- 将恢复数据和现有数据进行合并会将整个恢复过程变得复杂