自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 mysql 8.0 源码笔记:REDO日志(3)

版本mysql-8.0.22 社区版源码结合源码来介绍redo日志的各个模块。redo日志的写入写入系统磁盘redo日志刷盘是将所有的redo文件进行fsync,确保系统缓存中的redo日志内容存储到磁盘上。redo刷盘由用户线程执行、或者系统后台线程执行。刷盘接口为统一的接口、相关变量定义log_t *log_sys| flushed_to_disk_lsn //当前磁盘刷新到的位置刷新磁盘刷新磁盘的源码如下:log_flush_low| const lsn_t last

2021-04-05 16:45:12 239

原创 mysql 8.0 源码笔记:REDO日志(2)

版本mysql-8.0.22 社区版源码结合源码来介绍redo日志的各个模块。redo日志的写入写入系统缓存log buffer是循环使用,需要将log buffer中的内容,持续的写入到系统缓存中。有较多的地方会将log buffer中的内容写入系统缓存,比如commit、比如后台线程持续的写入等等。相关变量定义log_t *log_sys| write_lsn // 当前写入系统缓存的最大的LSN| current_file_lsn // 通过LSN计算对应物理文

2021-04-02 17:33:47 465 2

原创 mysql 8.0 源码笔记:REDO日志(1)

版本mysql-8.0.22 社区版概述redo日志中记录了Innodb引擎对于数据页的修改,主要作用是用来在崩溃恢复过程中,保证数据的完整性。Innodb引擎采用WAL机制来记录数据,即修改数据时,将redo日志优先记录到磁盘中,真正的数据修改会在后续刷脏过程中记录到磁盘。如果此时数据库意外退出,可以通过redo日志来恢复修改的数据。源码后续结合源码来介绍redo日志的各个模块。文件redo log的文件以格式ib_logfile[N]来命名,通过如下参数控制:innodb_log_fi

2021-04-01 13:53:54 344

原创 mysql源码学习笔记:插件的安装和卸载

mysql支持插件的开发,以插件的方式实现mysql的附加功能,既可以减少对mysql服务器源码的入侵,也可以实现动态的插拔。可以较好的实现我们需要的功能。本文从源码层面分析mysql插件框架相关内容。

2017-08-18 00:14:55 1413 1

原创 mysql源码学习笔记:基于binlog的recovery机制

mysql开启binlog后,对于事务引擎的DML操作,会以内部二阶段提交的方式对binlog和date文件进行写入。在非正常关闭后,重启mysql时,会根据binlog对事务引擎进行未完成事务进行恢复。本文在源码层面分析了mysql server根据binlog恢复事务的具体流程。

2017-08-17 22:40:03 949 2

原创 mysql源码学习笔记:系统变量variables

本文从源码层面分析mysql的系统变量的定义、装载、更新等行为。

2017-08-17 22:25:01 1086

转载 mysql高可用方案对比

MySQL常见高可用方案1.   概述我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面:Ø  如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断。Ø  用作备份、只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致。Ø  当业务发生数据库切换时,切换前后的数据库内容应当一致,

2017-05-02 12:58:07 9861 2

原创 mysql源码学习笔记:文件读写模块IO_CACHE

概述IO_CACHE为mysql读写文件的模块,在mysql操作文件时,通过该模块与文件进行交互。该模块类似于mysql的文件缓存,通过对文件的整读、整写来提高mysql的io效率。读写binlog、读写relay log等文件操作均是通过该模块进行。

2017-04-30 21:55:09 1122 1

原创 mysql源码学习笔记:内存管理模块MEM_ROOT

源码为mysql-5.7.16社区版。MEM_ROOT为mysql的内存管理模块,用于统一申请和释放内存,减少在堆中的内存申请操作的次数,以提升性能。这种内存管理的方法可以移植到其他的应用程序中,用于解决内存管理问题。

2017-03-30 23:30:12 1228

原创 mysql 随机产生show命令失败

mysql-5.6.21/percona-5.6.21 随机发生show 命令失败的情况,失败因为创建临时表时由于临时表对应的数据文件存在,从而无法再次创建,导致show命令失败。

2017-03-21 16:18:51 727

原创 MySQL从机持续发生core dump现象

mysql-5.6.21/percona-5.6.21 主从复制过程中,从机发生core dump现象,且使用新的从机搭建复制,仍然发生core dump现象

2017-03-21 16:07:09 1514 1

原创 MySQL所有操作hang住问题的故障排查

MySQL-5.5.24社区版,无法正常连接数据库,发生hang住的情况,同时对已经存在的连接,执行所有操作均发生hang住的情况。

2017-03-21 15:54:45 5742

原创 mysql 源码学习笔记:客户端连接处理流程

mysql通过监听本地unix sock和tcp连接的端口,分别处理本机和远程客户端的连接,以每个客户端连接对应一个线程的(默认)方式,处理客户端发送的命令。版本为mysql-5.7.16社区版,这里对服务器端的源码做分析,不对客户端的源码作分析。

2017-03-14 23:46:12 1678

原创 mysql 源码学习笔记:配置文件和命令行参数的装载

mysql可以通过加载配置文件或者在启动时输入命令行参数的方式来完成初始化系统变量、装载插件等操作。本文主要梳理了装载配置文件和命令参数的过程,以及配置文件内容和命令行参数生效的过程。mysql版本为mysql-5.7.16 社区版

2017-03-14 22:43:16 1837

原创 mysql 源码学习笔记:mysqld启动流程

mysql 5.7.16 源码学习笔记:mysqld启动流程主要介绍mysqld启动过程中,对各个模块的启动顺序,为后续深入学习打下基础。

2016-12-20 20:52:13 4233 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除