开发者社区 > 数据库 > 正文

当数据库异常宕机重启时,数据库实例需要确定每个事务最终要提交还是回滚。为了保证数据的一致性,在Aur

已解决

当数据库异常宕机重启时,数据库实例需要确定每个事务最终要提交还是回滚。为了保证数据的一致性,在Aurora 中对存储服务层Redo 日志定义了哪些概念?

展开
收起
云上静思 2022-09-12 11:09:40 478 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    定义的概念如下:

    • 卷完整点(Volume Complete LSN,VCL)。表示存储服务拥有VCL 之前的所有完整的日志。在故障恢复时,所有LSN 大于VCL 的日志都要被截断。

    • 一致性点(Consistency Point LSNs,CPLs)。对于MySQL(InnoDB)而言,每个事务在物理上由多个Mini-Transaction 组成,而每个Mini-Transaction 是最小原子操作单位,例如B 树分裂可能涉及多个数据页的修改,那么这些页修改对应的一组日志就是原子的,当重做日志时,也需要以Mini-Transaction为单位。CPL 表示一组日志中最后一条日志的LSN,一个事务由多个CPL 组成,所以称之为CPLs。

    • 卷持久点(Volume Durable LSN,VDL)。表示所有CPLs 中已持久化的最大LSN,VDL≤VCL,为了保证不破坏Mini-Transaction 原子性,所有大于VDL的日志都需要被截断。例如,VCL 是1007,假设CPLs 是900、1000、1100,则VDL 是1000,那么需要截断1000 以后的日志。

    VDL 表示了数据库处于一致状态的最新位点,在故障恢复时,数据库实例以PG 为单位确认VDL,截断所有大于VDL 的日志。

    以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。

    2022-09-12 11:53:34
    赞同 展开评论 打赏

数据库领域前沿技术分享与交流

相关电子书

更多
阿里云数据库运维实战手册 立即下载
传统数据库上云最佳实践-友邦保险 立即下载
数据库游戏行业最佳实践 立即下载