MySQL InnoDB 日志管理机制中的MTR和日志刷盘

1.MTR(mini-transaction)

在MySQL的 InnoDB日志管理机制中,有一个很重要的概念就是MTR。MTR是InnoDB存储擎中一个很重要的用来保证物理写的完整性和持久性的机制。

先看下MTR在MysQL架构中的位置。

MTR是上面的逻辑层与下面物理层的交互窗口,同时也是用来保证下层物理数据正确性、完整性及持久性的机制。

2.日志刷盘的触发条件

触发条件 描述
时间 线程默认每秒刷新一次。
空间 Log Buffer空间用完了
Check Point checkPoint的时机较多,既有空间触发也有时间触发。主要分为

Sharp Checkpoint和Fuzzy Checkpoint

强一致事务要求 根据参数innodb_flush_log_at_trx_commit值不同,产生不同的行为。

3. innodb_flush_log_at_trx_commit简单介绍

参数解释

(部分内容个人理解,特别是我将log file 分为os cache 和 磁盘2种,更多内容还要求证。 )

0:每次事务提交时,根本不会去刷日志缓冲区。log buffer将每秒一次地写入到OS cache的log file中,并且log file的flush(刷到磁盘)上的Log Files操作同时进行。

1:每次事务提交时MySQL都会把log buffer的数据写入到OS cache的log file,并且flush(刷到磁盘)Log Files中去,该模式为系统默认。

2:每次事务提交时MySQL都会把log buffer的数据写入到OS cache的log file,但是flush(刷到磁盘)Log Files的操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。

注意事项

当设置为0,该模式速度最快,但不太安全,这种设置是最危险的。如果此时运气不好,mysqld进程的崩溃,那么对数据库最新的更新都会丢失,即使事务已经提交了。但一般丢失的数据都是在一秒内产生的。

当设置为1,该模式是最安全的,但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。
当设置为2,该模式速度较快,也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。

此参数可根据业务的可靠性要求进行调整,参数的选择对性能影响较大。

部分内容观点来自同行的分享,在此一并感谢!!!

原文地址:https://www.cnblogs.com/xuliuzai/p/10010529.html

时间: 2024-10-17 16:00:39

MySQL InnoDB 日志管理机制中的MTR和日志刷盘的相关文章

为什么要使用日志管理?-syslog和Windows事件日志

为什么要使用日志管理?syslog和Windows事件日志 日志管理 - 确保网络安全的先决条件日志给予您有关网络活动的第一手信息.日志管理确保日志中隐藏的网络活动数据转换为有意义的可操作的安全信息.日志管理是网络安全管理员为保护网络而要完成的首要任务.日志管理包括收集.安全存储.规范化.分析.生成报表和告警.日志收集· 日志收集必须是非侵入性的.· 需要从网络中出现的不同设备.服务器和应用程序组中收集日志.· 最好以无代理的方式收集日志.在某些网络环境中,以使用代理的方式进行的日志收集应以可选

SQL Server中的事务日志管理(9/9):监控事务日志

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 对于在我们关注下的所有数据库,在日志维护方面,我们的首要目标是最优化写性能,为了支持SQL Server写入日志的所有活动,包括数据修改,数据读取,索引维护等等.但是,留意下可能的日志碎片也是重要的,如前面文章介绍的,它会影响需要读取日志的过程性能,例如日志备份

MySQL Innodb日志机制深入分析

1.1. Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面.Innodb还有另外一个日志Undo log,但Undo log是存放在共享表空间里面的(ibdata*文件). 由于Log和Checkpoint紧密相关,因此将这两部分合在一起分析. 名词解释:LSN,日志序列号,Innodb的日志序列号是一个64位的整型. 1.1.1. 写入机制 1.1.1.1. Log写入 LSN实际上对应日志文件的偏移量,新的LS

Linux服务器管理: 日志管理(一)

1.日志管理介绍: a.日志服务:在CentOS6.x中日志服务以及由rsyslogd取代了原有的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日子文件的格式其实都是和syslogd服务相兼容的,所以会了syslogd也就会了rsyslod服务. b.rsyslogd的新特点: 基于TCP网络协议传输日志信息 更安全的网络传输方式 有日志消息的及时分析框架 后台数据库 配置文件中可以写简单的逻辑判断 与syslog配置文件相兼容 3.系统默认是启动的:

日志管理-rsyslog日志服务器及loganalyzer

一,日志基础 日志:记录时间,地点,任务,事件 格式:日期时间 主机 进程[pid]: 事件内容 rsyslog 特性: 多线程,UDP, TCP, SSL, TLS, RELP,MySQL, PGSQL, Oracle实现日志存储 强大的过滤器,可实现过滤记录日志信息中任意部分,自定义输出格式 日志分类:facility(不同类存放于不同文件) auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth), use

linux 学习 14 日志管理

第十四讲 日志管理 14.1 日志管理-简介 1.日志服务 ?在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式其实都是和syslogd服务相兼容的,所以学习起来基本和syslogd服务一致. ?rsyslogd的新特点: ?基于TCP网络协议传输日志信息; ?更安全的网络传输方式: ?有日志消息的及时分析框架: ?后台数据库: ?配置文件中可以写简单的逻辑判断: ?与sysl

第十章笔记 日志管理 同步时间

###系统日志默认分类### /var/log/messages    #系统服务及日志,包括服务的信息,报错等等/var/log/secure         #系统认证信息日志/var/log/maillog         #系统邮件服务信息/var/log/cron            #系统定时任务信息/var/log/boot.log      #系统启动信息 ###日志管理服务rsyslog### rsyslog负责采集日志和分类存放日志 *rsyslog日志分类 主配置文件 

第13章 Linux日志管理

1. 日志管理 (1)简介 在CentOS 6.x中日志服务己经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式其实都是和syslogd相兼容的. (2)rsyslogd的新特点 ①基于TCP网络协议传输日志信息 ②更安全的网络传输方式 ③有日志消息的及时分析框架 ④后台数据库 ⑤配置文件中可以写简单的逻辑判断. ⑥与syslogd配置文件相兼容 (3)查看rsyslogd服务是否启动: ①#ps aux |

ip设定与日志管理

10.15 {3.gateway 网关} [1.路由器] 主要功能是用来作nat的 dnat   目的地地址转换 snat   源地址转换 [2.网关] 路由器上和自己处在同一个网段的那个ip [3.设定网关] systemctl stop NetworkManager  #关闭网络智能管理服务 vim /etc/sysconfig/network     #全局网关 GATEWAY=网关ip vim /etc/sysconfig/network-scripts/ficfg-网卡配置文件  #网