📚 残梦三生

记录技术成长,分享学习心得

← 返回首页

深入理解redo log如何保证持久性

分类:数据库 | 日期:2023-11-28

什么是 redo log?

redo log(重做日志)是数据库系统中用于保证数据持久性和故障恢复的重要机制。它记录了所有对数据库的修改操作。

redo log 的作用

1. 故障恢复

当系统发生故障后重启,可以通过重放 redo log 来恢复未写入磁盘的数据。

2. 提高性能

通过将写操作顺序写 log,然后异步刷盘,可以大大提高写入性能。

redo log 的工作原理

1. 写入

当执行修改操作时,先将修改内容写入 redo log buffer。

2. 刷盘

根据配置的策略,定期将 redo log buffer 刷入磁盘。

3. 检查点

定期执行检查点操作,将脏页刷入磁盘,并更新检查点位置。

4. 恢复

系统重启后,从检查点位置开始重放 redo log。

WAL (Write-Ahead Logging)

redo log 采用 Write-Ahead Logging 策略,即先写日志,再写数据。这是数据库持久性的基石。

总结

redo log 是数据库持久性的重要保障,理解它的工作原理对于数据库设计和运维都至关重要。