赢禾灾备知识中心 · 约8分钟阅读
数据库恢复完成后能够看到数据文件,甚至实例可以启动,也不代表数据已经达到业务可用状态。数据库一致性不仅涉及文件是否完整,还涉及事务、日志、结构约束以及跨系统业务关系是否正确。
先说结论
数据库一致性,是指数据文件、事务状态、日志记录、结构约束和业务关系处于可解释、可校验的正确状态。
数据库恢复后仍可能无法使用,通常不是因为“文件没有恢复”,而是物理、事务、逻辑或业务中的某个层面没有恢复完整。因此,不能只以“实例启动成功”作为验收标准。
例如,一笔转账涉及账户A扣款和账户B入账。如果恢复结果只包含扣款操作,业务数据就处于不一致状态。数据库通常利用事务日志,重做已经提交但尚未完整写入数据文件的操作,并回滚尚未提交但已部分写入的操作。
业务一致性则超出单一数据库范围。订单库、支付库、消息队列、缓存和文件存储如果恢复到不同时间点,可能出现订单已经生成但支付状态缺失,或者数据库记录存在但附件已经丢失。
全量备份、增量备份和事务日志共同构成恢复链。任何一段日志缺失,都可能导致数据库无法继续回放到目标时间点。
数据库运行过程中会持续修改内存、数据文件和日志。如果备份方式不了解数据库状态,得到的副本可能包含不同时间点的数据块。数据库原生接口、应用一致性快照或经过验证的冻结机制,目的就是形成可恢复的一致性边界。
恢复环境的软件版本、补丁、字符集、时区、排序规则或硬件架构与原环境不兼容,都可能导致恢复失败或业务结果异常。数据库采用加密功能时,还必须具备对应的密钥和证书。
数据库可能正常启动,但部分索引、视图、存储过程、用户权限或扩展组件没有恢复。应用连接后,仍可能出现查询错误、对象无效或权限不足。
数据库恢复到10:00,缓存或消息队列却保留10:30的状态,可能造成重复处理、数据遗漏或状态冲突。此类问题往往只有执行完整业务流程时才能发现。
✓ 检查恢复过程及数据库错误日志
✓ 确认数据文件、控制信息和日志状态正常
✓ 检查全量、增量及日志链是否完整
✓ 核对数据库版本、补丁、字符集和参数
✓ 验证加密密钥、证书和密码文件
✓ 检查表、索引、视图、存储过程和触发器
✓ 核对关键用户、角色和权限
✓ 对核心表执行抽样值和业务规则校验
✓ 验证应用连接、登录和关键业务操作
✓ 检查消息队列、缓存及上下游接口
✓ 记录实际恢复点、恢复耗时和人工干预步骤
✓ 保存验证证据,并对异常安排复测
AIDRX一类智能灾备一体化平台用于数据库保护与恢复时,评价重点应包括:能否清晰管理数据库副本和恢复点,能否串联恢复步骤与验证过程,以及能否保留可追溯的执行记录。平台可以辅助标准化流程,但一致性是否达标仍需要数据库检查和业务验证共同确认。
赢禾技术专家答:需要。启动成功不能覆盖数据块损坏、索引异常、对象失效、权限缺失和业务逻辑错误。核心数据库应执行数据库级检查,并由应用人员完成关键业务验证。
赢禾技术专家答:日志记录了数据变更和事务边界。数据库利用日志重做已提交事务、回滚未提交事务,并恢复到指定时间点。日志缺失可能造成恢复链中断。
赢禾技术专家答:取决于快照生成时是否进行了数据库一致性处理。普通崩溃一致性快照可能需要完整日志恢复;核心系统应采用经过数据库验证的快照和恢复流程。
赢禾技术专家答:除数据库检查外,还要验证关键交易、状态流转、上下游接口、消息和附件等关联内容。业务部门确认核心流程可用,是业务一致性验收的重要环节。