注册

关于脏页何时持久化的问题?

小灰灰_oO 2024/01/15 1018 6 已解决

根据官方文档“DM8备份与还原”,我有一个关于脏页到底何时持久化的问题?
数据库异常关闭,是根据归档文件进行重做恢复数据的。正常在内存中修改数据,产生脏页以后。有一个刷盘线程负责把REDO日志包写入联机日志中,另外还有一个归档线程将上面刷盘线程写完的REDO日志包写入归档日志中。
那两份文档中

  • 联机日志写入的日志包LSN就可能是1~100的
  • 归档日志中,写入的日志LSN可能就是1~60的。
    问题1:
    检查点LSN(CKPT_LSN)这会是60,还是会比60小?
    问题2:
    检查点是在REDO联机日志文件上的,而不是在归档日志文件上,对吧?
    问题3
    上面检查点LSN我先假设是60,LSN<=检查点的,都是已经刷盘的。那也就意味这1~60对应的脏页已经持久化保存了。这会如果异常关机,下次重启时候。系统会自动拷贝REDO日志里面LSN为61~100的日志包到归档日志中,并进行重做。
    按上面这个流程来看,脏页真正刷盘持久化到硬盘上,应该是由归档线程负责的了,REDO联机日志文件只是暂存(中转站)而已,刷盘线程并不是真的刷盘持久化
    我的理解是否正确?
回答 0
暂无回答
扫一扫
联系客服