数据库中的undo日志、redo日志、检查点

1Undo 日志记录某数据被修改前的值,可以用来在事务失败时进行rollback

2Redo 日志记录某数据块被修改后的值,可以用来恢复未写入data file的已成功事务更新的数据

3Undo/Redo日志 两者结合

例:某一事务的事务序号为T1,其对数据X进行修改,设X的原值是5,修改后的值为15

Undo日志为<T1, X, 5>Redo日志为<T1, X, 15>Undo/Redo日志为<T1, X, 5, 15>

4checkpoint是为了定期将db buffer的内容刷新到data file。当遇到内存不足、db buffer已满等情况时,需要将db buffer中的内容/部分内容(特别是脏数据)转储到data file中。在转储时,会记录checkpoint发生的”时刻“。在故障回复时候,只需要redo/undo最近的一次checkpoint之后的操作


幂等性:在日志文件中的操作记录应该具有幂等性。幂等性,就是说同一个操作执行多次和执行一次,结果是一样的。

日志文件在故障恢复中,可能会回放多次,如果操作记录不满足幂等性,会造成数据错误。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值