微信 SQLite 数据库 损坏恢复实践
微信 SQLite 数据库 损坏恢复实践 johnwhe (何俊伟) ◊ 问题背景 ◊ 常规做法 ◊ 数据备份 ◊ Repair Kit ◊ 组合方案 SQLite 恢复 ◊ 微信聊天记录只存客户端 ◊ SQLCipher 加密数据库 问题背景 ◊ SQLite 概率性损坏 ◊ 1/20,000 ~ 1/10,000 ◊ 256MB ~1%,1GB ~1‰ ◊ 设备断电、kernel ◊ 数据备份 ◊ Repair Kit ◊ 组合方案 SQLite 恢复 ◊ .dump 命令 ◊ 来自 SQLite 命令行工具 ◊ 整个 DB 输出为 SQL 语句 常规做法 .dump 输出 ◊ 打开损坏 DB 后使用 ◊ 遇到错误前一直输出 ◊ 遇到错误,跳到下一个表 .dump 用于恢复 ◊ 成功率仅 ~30% ◊ 打不开 DB ◊ 打开了读不出数据 .dump dump 成功率 ◊ 问题背景 ◊ 常规做法 ◊ 数据备份 ◊ Repair Kit ◊ 组合方案 SQLite 恢复 ◊ 主要考虑因素 ◊ 恢复成功率 ◊ 空间大小 ◊ 性能 ◊ 加密 数据备份 备选方案 方案 优点 缺点 文件复制 + 压缩 实现简单 非原子操作 Backup API 热备份 稍慢 .dump (SELECT 输出) 有选择备份 备选方案0 码力 | 31 页 | 546.35 KB | 1 年前3NetBackup™ for SQLite 管理指南: Windows 和 Linux - 版本:10.2
. 15 重定向还原 .................................................................................. 16 灾难恢复 ..................................................................................... 17 第 4 章 NetBackup 备份 ■ 验证备份信息 ■ 查询备份 ■ 从 NetBackup 目录库文件中删除备份信息 ■ 关于还原 SQLite 备份 ■ 执行 SQLite 备份还原 ■ 重定向还原 ■ 灾难恢复 关于 SQLite 数据库备份 nbsqlite -o backup 命令使用 -S、-P、-d 和 -s 作为必需参数启动备份操作。对 于 Linux LVM 配置系统,参数 -z 是必需参数。 供给 -C 选项。 5 成功重定向还原之后,撤消在主服务器和客户端上所做的更改。 灾难恢复 灾难恢复计划恢复可能在灾难事件中丢失的数据。代理支持使用重定向还原作为灾 难恢复策略。 有关更多信息,请参见第 16 页的“重定向还原”。 17 NetBackup for SQLite 备份和还原 灾难恢复 NetBackup for SQLite 故 障排除 本章节包括下列主题: ■ 解决在使用0 码力 | 29 页 | 675.75 KB | 1 年前3NetBackup™ for SQLite 管理指南: Windows 和Linux
. 21 重定向还原 .................................................................................. 21 灾难恢复 ..................................................................................... 22 第 5 章 NetBackup 备份 ■ 验证备份信息 ■ 查询备份 ■ 从 NetBackup 目录库文件中删除备份信息 ■ 关于还原 SQLite 备份 ■ 执行 SQLite 备份还原 ■ 重定向还原 ■ 灾难恢复 关于 SQLite 数据库备份 nbsqlite -o backup 命令使用 -S、-P、-d 和 -s 作为必需参数启动备份操作。对 于 Linux LVM 配置系统,参数 -z 是必需参数。 client_name] 5 成功重定向还原之后,撤消在主服务器和客户端上所做的更改。 灾难恢复 灾难恢复计划恢复可能在灾难事件中丢失的数据。代理支持使用重定向还原作为灾 难恢复策略。 有关更多信息,请参见第 21 页的“重定向还原”。 22 NetBackup for SQLite 备份和还原 灾难恢复 NetBackup for SQLite 故 障排除 本章节包括下列主题: ■ 解决在使用0 码力 | 34 页 | 777.04 KB | 1 年前3
共 3 条
- 1