对checkpoint not completed的理解

Posted mfmdaoyou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对checkpoint not completed的理解相关的知识,希望对你有一定的参考价值。

如果数据库存在两个日志组log1和log2,首先。-->log1-->log2-->log1,此时(log2切换到log1)触发checkpoint。该checkpoint will flush dirty block to datafile,从而触发DBWn书写dirty buffer,等到log1覆盖的dirty block所有被写入datafile后才干使用log1(循环使用),如果DBWn写入过慢,LGWR必须等待DBWn完毕,则这时会出现“checkpoint not completed!”


别人的回答是

log1-> log2, trigger checkpoint 1
after log2 is full,
log2-> log1, trigger checkpoint 2
but if checkpoint 1 is still not finished, then LGWR must wait. This is "logfile switch (checkpoint incompleted)" event.


我的理解是

1.检查点完毕。才干顺利切换。

2.checkpoint1堵塞了log2->log1的切换。

3.没有可用的redo日志,会堵塞数据正常使用。这时数据库是短暂hang住的。(原因例如以下)


不知道对不正确,请高人指正~

技术分享

Before a change is done in the buffer cache a change vector (file, block, row, value) about this change is written to the redo buffer. First the change of the undo block to be made soon is tracked (L). Then the change is done in the buffer cache (M). Then the change of the table block to be made soon is tracked (N). Then the insert to the table block is done in the buffer cache (O). All actions up to now where done by the server process (P). Finally it returns the control to the client process (Q).

redo无法试用。导致事务不能正常进行。

以上是关于对checkpoint not completed的理解的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL checkpoint_completion_target参数说明

checkpoint_completion_target值的设置

Key in_hidden/batch_normalization/beta not found in checkpoint

FlinkFlink 任务报错 Could not perform checkpoint for operator

TensorFlow报错:ValueError The passed save_path is not a valid checkpoint

TensorFlow报错:ValueError The passed save_path is not a valid checkpoint