背景
在数据库系统中,保证数据库可以由错误状态恢复到正确状态的机制,称为备份与恢复。数据库的备份是一个长期的过程,恢复可看作是备份的一个逆过程,恢复的效果、好坏,很大程度上是依赖于备份的策略。此外,数据库管理员在数据恢复时采用的步骤正确与否,将直接影响最终的恢复结果。
WAL日志
WAL即 Write Ahead Log(预写日志),是数据库系统中常见的一种手段,用于保证数据操作的完整性的一种标准方法。其中心概念是数据文件(存储着表和索引)的修改必须在这些动作被日志记录之后才被写入。利用WAL日志进行恢复的方法能最大程度上恢复数据库系统未落盘数据,能明显提高数据库可用性和容错容灾能力。
WAL日志机制
在任何时间,优炫数据库在数据集簇目录的ux_wal/子目录下都保持有一个预写式日志(WAL)。该日志存在的目的是为了保证系统崩溃后的安全。如果系统崩溃,可以“重放(replay)”从最后一次检查点以来的日志项来恢复数据库,保证数据一致性。
WAL日志文件默认16MB的情况下,并分为若干页,每页8KB。
熟悉优炫数据库的伙伴们都知道,WAL日志写入是在缓存中进行的,WAL日志在数据库恢复、高可用、流复制、逻辑复制等模块中扮演着极其重要的角色。