Oracle脏页,Innodb与Oracle的日志和脏页刷盘机制整理

本文详细介绍了InnoDB存储引擎的redo log刷盘策略,包括master thread、事务提交和innodb_log_buffer的刷新条件,以及checkpoint的sharp和fuzzy策略。同时,对比了Oracle的LGWR进程如何触发redolog刷盘和checkpoint机制。内容涵盖了数据库日志管理的关键细节,对于理解数据库性能优化具有重要意义。
摘要由CSDN通过智能技术生成

innodb redolog 刷盘策略:1.master thread 每秒刷新一次

2.事务提交时刷新redo到磁盘

3.innodb_log_buffer剩余空间小于1/2时,刷新redo到磁盘。

innodb checkpoint 刷脏数据策略:innodb checkpoint分为sharp checkpoint,fuzzy checkpoint,类似于oracle的完全检查点和增量检查点。

sharp checkpoint发生在数据库关闭时将所有脏页都刷新到磁盘。

fuzzy checkpoint又分为:

master thread checkpoint

flush_lru_list checkpoint

async/sync flush checkpoint

dirty page too much checkpoint

master thread checkpoint:

master thread发生checkpoint,每秒或每十秒从缓冲池脏页列表刷新一定比例的页回磁盘,这是一个异步的过程。

flush_lru_list checkpoint:

innodb存储引擎需要保证lru列表中有差不多N个空闲页可用。如果没有N个空闲页,会触发checkpoint将lru列表尾端的脏页移除。

N为innodb_lru_scan_depth的参数值。

async/sync flush checkpoint:

在重做日志文件不可用的情况下,需要强制将脏页列表中的一些脏页刷回磁盘。具体的刷页规则如下:

(lsn:占8字节累增的值,表示已经写入的日志文件总字节数,记录数据库的变化。类似于oracle中scn号)

checkpoint_age = redo_lsn - checkpoint_lsn

async_water_mark = 75% * total_redo_log_size(多个重做日志文件总大小)

sync_water_mark = 90% total_redo_log_size

若单个重做日志文件为1G,一共定义了两个重做日志文件,则total_redo_log_size=2G,

async_water_mark=1.5G,sync_water_mark=1.8G

当checkpoint_age

当async_water_mark

当sync_water_mark

以上的刷新操作均由page cleaner thread完成

dirty page too much checkpoint:

当脏页列表中的脏页超过innodb_max_dirty_page参数值时,会导致innodb强制checkpoint刷新一部分脏页。该参数值默认为75

oracle redolog 刷盘策略:oracle 刷新redolog是通过后台进程LGWR完成的

LGWR的触发条件:

①commit

②重做日志缓存区中有1/3的重做日志未被写入磁盘

③重做日志缓冲区中有大于1M的重做日志未被写入磁盘

④每隔3秒

oracle checkpoint 刷脏页策略:oracle checkpoint 触发DBWR进程刷新脏数据

oracle checkpoint分为完全检查点和增量检查点,其中1,2,3,6触发增量检查点,4,5,7触发完全检查点

1.当发生日志切换的时候

2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL,fast_start_mttr_target参数设置的时候

3.当运行ALTER SYSTEM SWITCH LOGFILE的时候

4.当运行ALTER SYSTEM CHECKPOINT的时候

5.当运行alter tablespace XXX offline|online|begin backup|end backup|read only|read write的时候

6.buffer pool中脏页达到一定比例

7.shutdown immediate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值