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

【Q问Q答】Qcubic数据库在极端情况下如何保障数据不丢失

快立方Qcubic 2023-07-20
384

数字经济时代,数字化系统已然成为“生产工具”,数据成为企业的“核心资产”。数据库作为企业数据存储、处理、挖潜等方面的关键载体,重要性日益凸显,一旦发生故障导致业务服务中断,造成数据丢失或损坏,将会给企业用户带来巨大损失。面对无处不在的风险和危机,保证数据库的高可用是数据库厂商的首要任务。Qcubic数据库作为一款国产自研的内存数据库,经过长时间大规模的业务生产实践考验,稳定支撑了4.2亿用户,为用户提供了稳定可靠的使用体验,全力为用户的数据安全保驾护航。下面为大家解答Qcubic数据库在极端情况下如何保障数据不丢失的高频问题:



 Qcubic数据库是如何实现数据

 持久化的?

Qcubic数据库主要是通过WAL机制

和Checkpoint机制来实现数据持久


一、WAL机制

当Qcubic在执行DML语句时,首先

会写redo log日志,redo日志就像

是一个明细文件,按照执行顺序记

录所有的数据库里的执行动作,redo

日志先写到log buffer 日志缓冲区

中,再实时同步到物理文件redo

 log file中, redo日志落到磁盘后,

事务进行提交,从而保障了数据的

安全性。


二、Checkpoint机制

在redo日志写到log buffer后,会在内

存表空间中执行要更新的操作,表空

间的数据会定时Checkpoint到磁盘的

Checkpoint image file也就是镜像文

件中等于把内存表空间的数据完整的

落盘从而保障数据的持久性。



点击问题,查看解答



 Qcubic数据库在写redo日志时发生

 掉电怎么处理?

如果在写redo日志的时候发生掉电,

redo日志还没有落盘,当前事务还

提交,因此数据库未给应用端成

执行的反馈,那么遵循事务的一

性事务将进行回滚,待数据库重

后,应用端可以重新发起请求以

便将事务继续进行处理,直至完成

用请求。


点击问题,查看解答



 Qcubic数据库在没有Checkpoint

 时发生掉电怎么处理?


当redo日志已落盘内存表空间已更新,

但是还没有Checkpoint的情况下发生

掉电,数据库重启时会先载入已有的

镜像文件的数据,再把redo日志记录

的增量操作重新执行并重新加载到内

存中,之后再次Checkpoint落盘,

这个过程是通过WAL和Checkpoint

双重机制来保障数据的一致性的。


点击问题,查看解答



 为什么要定时做Checkpoint ?

如果发生掉电时,做备份恢复需要读

取大量的redo日志会耗费很长时间,

通过Checkpoint机制可以快速加载

经落盘的Checkpoint file,再根据

Checkpoint file中记录的最新时间定

位redo日志中的LSN号,找到并加载

未落盘的数据,这样大大节省了数据

恢复时间。


点击问题,查看解答


更详细的解答请戳







往期推荐











END

文章转载自快立方Qcubic,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论