mysql的innodb中事务日志ib_logfile

事务日志或称redo日志,在mysql中默认以ib_logfile0,ib_logfile1名称存在,可以手工修改参数,调节

开启几组日志来服务于当前mysql数据库,mysql采用顺序,循环写方式,每开启一个事务时,

会把一些相关信息记录事务日志中(记录对数据文件数据修改的物理位置或叫做偏移量);

作用:在系统崩溃重启时,作事务重做;在系统正常时,每次checkpoint时间点,会将之前写入事务

应用到数据文件中。

引入一个问题:在m/s环境中,innodb写完ib_logfile后,服务异常关闭,会不会主库能用ib_logfile恢复数据,而

binlog没写导致从库同步时少少这个事务?从而导致主从不一致;

redo日志写入方式:

1.ib_logfile写入当前事务更新数据,并标上事务准备trx_prepare

2.写入bin-log

3.ib_logfile当前事务提交提交trx_commit

恢复方式:

如果ib_logfile已经写入事务准备,那么在恢复过程中,会依据bin-log中该事务是否存在恢复数据。

假设:

1)结束后异常,因没有写入bin-log,从库不会同步这个事务,主库上,重启时,在恢复日志中这个

事务没有commit,即rollback这个事务.

2)结束后异常,这会bin-log已经写入,从库会同步这个事务。主库依据恢复日志和bin-log,也正常恢复此事务

综上描述:bin-log写入完成,主从会正常完成事务;bin-log没有写入,主从库rollback事务;不会出现主从库不一致问题.

相关参数(全局&静态):

innodb_log_buffer_size

innodb_log_file_size

innodb_log_files_in_group

innodb_log_group_home_dir

innodb_flush_log_at_trx_commit

innodb_log_buffer_size:事务日志缓存区,可设置1M~8M,默认8M,延迟事务日志写入磁盘,

把事务日志缓存区想象形如"漏斗"状,会不停向磁盘记录缓存的日志记录,而何时写入通过参数

innodb_flush_log_at_trx_commit控制,稍后解释,启用大的事务日志缓存,可以将完整运行大事

务日志,暂时存放在事务缓存区中,不必(事务提交前)写入磁盘保存,同时也起到节约磁盘空间占用;

innodb_log_file_size:控制事务日志ib_logfile的大小,范围5MB~4G;所有事务日志ib_logfile0+

ib_logfile1+..累加大小不能超过4G,事务日志大,checkpoint会少,节省磁盘IO,但是大的事务日

志意味着数据库crash时,恢复起来较慢.

引入问题:修改该参数大小,导致ib_logfile文件的大小和之前存在的文件大小不匹配

解决方式:在干净关闭数据库情况下,删除ib_logfile,而后重启数据库,会自行创建该文件;

innodb_log_files_in_group:DB中设置几组事务日志,默认是2;

innodb_log_group_home_dir:事务日志存放目录,不设置,ib_logfile0...存在在数据文件目录下

innodb_flush_log_at_trx_commit:控制事务日志何时写盘和刷盘,安全递增:0,2,1

事务缓存区:log_buffer;

0:每秒一次事务缓存区刷新到文件系统,同时文件系统到磁盘同步,但是事务提交时,不会触发log_buffer到文件系统同步;

2:每次事务提交时,会把事务缓存区日志刷新到文件系统中去,且每秒文件系统到磁盘同步;

1:每次事务提交时刷新到磁盘,最安全;

适用环境:

0:磁盘IO能力有限,安全方便较差,无复制或复制延迟可以接受,如日志性业务,mysql损坏丢失1s事务数据;

2:数据安全性有要求,可以丢失一点事务日志,复制延迟也可以接受,OS损坏时才可能丢失数据;

1:数据安全性要求非常高,且磁盘IO能力足够支持业务,如充值消费,敏感业务;

转自:http://blog.itpub.net/26855487/viewspace-776041/

ib_logfile和mysql_bin_mysql的innodb中事务日志ib_logfile相关推荐

  1. mysql ib_logfile 数量_Mysql 事务日志(Ib_logfile)

    mysql的innodb中事务日志ib_logfile(0/1) 概念: 事务日志或称redo日志,在mysql中默认以ib_logfile0,ib_logfile1名称存在,可以手工修改参数,调节开 ...

  2. SQL Server中事务日志自动增长对性能的影响

    SQL Server中事务日志自动增长对性能的影响 SQL Server中事务日志自动增长对性能的影响(上) SQL Server中事务日志自动增长对性能的影响(下) posted on 2011-0 ...

  3. mysql数据库的事物日志在哪里_mysql数据库中事务日志的作用

    mysql数据库中事务日志的作用 发布时间:2020-06-28 18:13:39 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关mysql数据库中事务日志的作用,文章内容质量 ...

  4. SQLServer 2008中事务日志已满问题处理

    错误描述 错误原因 事务日志介绍 排查日志已满问题 解决方法 方法一:界面方式收缩日志 第一步:调整恢复模式 第二步:收缩日志文件 选项说明 第三步:调整恢复模式 方法二:命令行方式收缩日志 另请参阅 ...

  5. SQL Server中事务日志已满的原因以及解决办法

    错误描述:数据库的事务日志已满.若要查明无法重用日志中的空间的原因 ,请参阅sys.databases 中的 log_reuse_wait_desc 列 . 首先引入一下事务日志的概念(来自百度百科) ...

  6. 删除SQL数据库中事务日志方法

    DUMP TRANSACTION [数据库名] WITH NO_LOG BACKUP LOG [数据库名] WITH NO_LOG DBCC SHRINKDATABASE([数据库名])

  7. MySQL探秘(八):InnoDB的事务

     事务是数据库最为重要的机制之一,凡是使用过数据库的人,都了解数据库的事务机制,也对ACID四个基本特性如数家珍.但是聊起事务或者ACID的底层实现原理,往往言之不详,不明所以.所以,今天我们就一起来 ...

  8. mysql备份时候事务日志_SQLSERVER备份事务日志的作用

    SQLSERVER备份事务日志的作用 事务日志备份有以下3种类型 (1)纯日志备份:仅包含相隔一段时间的事务日志记录,而不包含任何大容量更改 (2)大容量操作日志备份.包括由大容量操作更改的日志和数据 ...

  9. SQL Server事务日志管理的阶梯,第5级:在完全恢复模式下管理日志

    SQL Server事务日志管理的阶梯,第5级:在完全恢复模式下管理日志 在本节中,我们将回顾在完全恢复模式下进行日志备份的原因和方法,以及如何使用这些日志备份文件与完整的数据库备份一起执行数据库恢复 ...

最新文章

  1. 如何通过机器学习还原图像色彩
  2. Java语言编码规范
  3. logm--求矩阵的对数
  4. qt 将不同的数据类型组成一个新类型_SQL 通用数据类型
  5. TEEC_Context和TEEC_InitializeContext介绍
  6. kdump需要开启吗_iPhone全新黑科技!用嘴玩手机!你会玩吗?
  7. jQuery学习笔记(一) 取值、赋值的基本方法
  8. svn is already locked
  9. linux配置路径,Linux下配置搜索路径
  10. Spark之functions
  11. 苹果手机解压缩软件_照片压缩软件哪款好用?推荐5款好用的图片压缩软件
  12. 【机器学习】第一章 - 机器学习概论 - 周志华机器学习笔记
  13. 根据传入当前页码及每页数量进行查询
  14. 无数次踩坑安装AWVS
  15. Epicor 调拨方式平负数库存 直接生成DMT格式
  16. CoppeliaSim(原Vrep)中实现多关节机械臂的正运动学仿真【CoppeliaSim与matlab共享内存通信实现】
  17. MQTT:QoS服务质量 0,1,2(Quality of Service 0, 1 2)
  18. 稀疏数组练习demo 数据结构和算法
  19. cad用键盘放大缩小_CAD放大缩小快捷键 _ 2D3D网
  20. python 列表根据汉字拼音进行排序 / 查询结果集(列表嵌套字典)根据特定key字段拼音进行整体排序

热门文章

  1. java 接口的声明和实现 总结_java知识总结(三):函数式接口
  2. web root下放置图片_Apache HTTP存在提权漏洞,威胁共享Web主机安全性
  3. jquery自定义一个放大镜
  4. sklearn之kmean(无监督聚类)
  5. win10+Vmware+centeros10连接xshell和xftp
  6. STM32跑html协议,stm32实现1588协议
  7. 认定信息网络传播行为应采用服务器标准,认定信息网络传播行为应采用“服务器标准”...
  8. 微软进一步融合 Linux,VS Code 官方支持树莓派
  9. ASP.NET Core 2.1:将VMD.RESTApiResponseWrapper.Core集成到REST API应用程序
  10. C#坏习惯:通过不好的例子学习如何制作好的代码——第4部分