暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据安全必读:AntDB-M数据持久化设计之CHECK POINT功能

摘要:

在现代数据库管理系统中,数据的安全性和可靠性是至关重要的。AntDB-M作为一款支持内存存储引擎的数据库,特别设计了Check Point(简称CK)功能来确保内存中的数据能够安全地持久化到磁盘上,防止意外情况导致数据丢失。本文将详细介绍CK功能的好处、整体流程以及如何实现数据的持久化。

1.CK的好处

1.1数据持久化

  • 将内存中保存的数据和表结构等信息写入到磁盘文件中,确保数据的长期保存。

1.2缩短数据库恢复时间

  • 数据库恢复时,先加载CK生成的文件,然后加载redo日志。由于redo日志记录了数据库的操作,使用redo日志恢复相当于重新执行操作,这比直接加载CK生成的数据文件要慢。

1.3节省磁盘空间

  • CK前的数据已经写入到数据文件中,对应的redo日志文件可以被删除,从而节省磁盘空间。

2.CK的整体流程

image_MqGSEUIAh.png

加DDL锁

  • CK操作过程中,不允许对表进行修改表结构的动作。加DDL锁可以防止DDL操作,同时为了减少DDL锁持有时间,在拿到DDL锁后,将当前所有表加上读锁,记录当前表列表,然后释放DDL锁。

加DB锁

  • DB锁主要用于与事务做排它操作,保证DB锁加锁后,没有事务正在提交或回滚。持有DB锁后,记录当前的事务号作为CK的事务号。

获取正在进行的事务列表

  • 加上DB锁后,记录正在进行的事务,并提取它们的undo数据,回写到CK文件中,以保证CK文件中的数据是事务完整的。

解锁DB锁

  • 解锁DB锁后,事务可以正常提交或回滚。提交或回滚时会记录当前事务执行过的操作,并记录restore信息。

dump表数据

  • 一个表对应一个线程,将表数据写入到磁盘中。在此过程中,所有事务执行的修改操作都会记录restore信息。

等待之前记录的所有事务结束

  • 在表数据全部落地之后,等待之前加DB锁时获取的事务都提交或回滚,按照需要将它们的undo数据覆盖restore信息。

restore

  • 将之前所有的restore信息回写到CK文件中。对于表空间来说,restore中记录了oid,根据oid可以计算出这一行在CK文件中的偏移量,然后将行数据写入到CK文件中。

记录表结构文件

  • 表结构文件记录了表元数据。在数据库恢复时,将之前对应事务号的表结构文件恢复到对应目录。

删除临时文件

  • 在dump文件和restore过程中操作的文件,操作的都是以.tmp作为后缀的临时文件,操作完成后删除这些文件。

记录表列表

  • 表列表文件记录了CK事务号和当前CK对应的表列表。在数据库通过CK恢复时,加载表列表文件,读取事务号和表列表,再根据表列表和事务号信息获取需要加载的表和表对应的文件。

CK流程结束后会生成三类文件:表数据文件,表结构文件和表列表文件,如下图。

image_1_EFx43YggwS.png

3.AntDB-M的CHECK POINT操作

AntDB-M提供命令实现CK操作,支持手动执行或设置成定时任务自动执行该命令。执行CK的过程中不阻塞业务的执行,确保业务的连续性和数据的安全性。

具体命令如下:

check point engine=mdb
复制

总结

AntDB-M的CHECK POINT功能是确保数据安全和提高数据库恢复效率的关键。通过本文的介绍,读者可以了解CK的重要性和执行流程,以及如何在AntDB-M中实现数据的持久化。AntDB-M灵活的CK操作方式,使得数据库管理更加高效和可靠。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论