微信 SQLite 数据库 损坏恢复实践
◊ 问题背景 ◊ 常规做法 ◊ 数据备份 ◊ Repair Kit ◊ 组合方案 SQLite 恢复 ◊ 微信聊天记录只存客户端 ◊ SQLCipher 加密数据库 问题背景 ◊ SQLite 概率性损坏 ◊ 1/20,000 ~ 1/10,000 ◊ 256MB ~1%,1GB ~1‰ ◊ 设备断电、kernel crash、空间不足 问题背景 ◊ 问题背景 ◊ 常规做法 打开损坏 DB 后使用 ◊ 遇到错误前一直输出 ◊ 遇到错误,跳到下一个表 .dump 用于恢复 ◊ 成功率仅 ~30% ◊ 打不开 DB ◊ 打开了读不出数据 .dump 成功率 ◊ 问题背景 ◊ 常规做法 ◊ 数据备份 ◊ Repair Kit ◊ 组合方案 SQLite 恢复 ◊ 主要考虑因素 ◊ 恢复成功率 ◊ 空间大小 ◊ 性能 ◊ 加密 数据备份 备选方案 恢复速度(条/秒) 原始 dump 实现 我们的方案 5469 13916 1088 1545 72% 28% 恢复成功 恢复失败 线上恢复率 备份未覆盖 备份损坏 时效问题 ◊ 问题背景 ◊ 常规做法 ◊ 数据备份 ◊ Repair Kit ◊ 组合方案 SQLite 恢复 SQLite 损坏情况 41% 59% 表损坏 初始化失败 可以打开 数据部分损坏0 码力 | 31 页 | 546.35 KB | 1 年前3
共 1 条
- 1