会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
卷毛狒狒
博客园
首页
新随笔
联系
订阅
管理
2022年10月8日
MySQL 关闭源码解析
摘要: 前几天看大佬的公众号,发现一个有意思的问题,即平时应该如何关闭MySQL,如下几种方式,平时应该使用哪种呢: 1. mysqladmin shutdown 2. service mysqld stop 3. kill 'pidof mysqld' 4. kill -9 'pidof mysqld'
阅读全文
posted @ 2022-10-08 11:22 卷毛狒狒
阅读(323)
评论(0)
推荐(0)
2022年9月13日
MySQL半同步复制源码解析
摘要: 今天 DBA 同事问了一个问题,MySQL在半同步复制的场景下,当关闭从节点时使得从节点的数量 < rpl_semi_sync_master_wait_for_slave_count时,show full processlist 的结果不同,具体表现如下: AFTER_SYNC表现如下: 可以发现,
阅读全文
posted @ 2022-09-13 11:04 卷毛狒狒
阅读(773)
评论(0)
推荐(0)
2022年6月15日
innobackupex备份源码解析
摘要: 目前MySQL的物理备份大多数采用xtrabackupex进行,其备份过程如下图所示,这里通过解析 xtrabackup 的源码来详细看看其是如何进行备份的,xtrabackup 版本为 2.4.26。 这里只解析其全量备份的过程,通过源码可以发现很多细节,其核心详细的备份流程如下: 1. 从 lo
阅读全文
posted @ 2022-06-15 17:54 卷毛狒狒
阅读(457)
评论(0)
推荐(0)
2022年4月14日
MySQL连接的建立与使用
摘要: 在 MYSQL的启动过程中,可以看到在 mysqld_main() 函数的最后调用了 mysqld_socket_acceptor->connection_event_loop() 函数用来处理MySQL的连接,这里通过源码分析一下MySQL连接的建立与使用过程: 1. 在死循环中调用 m_list
阅读全文
posted @ 2022-04-14 19:31 卷毛狒狒
阅读(686)
评论(0)
推荐(0)
MySQL启动过程详解五:GTID的处理
摘要: MySQL启动过程中 GTID 的处理: 1. 在核心模块启动函数 init_server_components() 会调用 gtid_server_init() 初始化 gtid server 2. 调用 init_server_auto_options() 初始化并获取数据库的 server_u
阅读全文
posted @ 2022-04-14 11:59 卷毛狒狒
阅读(640)
评论(0)
推荐(1)
2022年4月13日
MySQL启动过程详解四:crash recovery
摘要: 当 MySQL关闭后,重启MySQL时,会进行 crash recovery操作,这里分析一下MySQL是如何进行的: 1. 首先在启动Innodb存储引擎时会回滚事务系统的事务列表中未在Innodb中提交的处于 TRX_STATE_ACTIVE 状态的不完整的事务【在事务的两阶段提交过程中,xa
阅读全文
posted @ 2022-04-13 11:59 卷毛狒狒
阅读(817)
评论(0)
推荐(0)
MySQL启动过程详解三:Innodb存储引擎的启动
摘要: Innodb启动过程如下: 1. 初始化innobase_hton,它是一个handlerton类型的指针,以便在server层能够调用存储引擎的接口。 2. Innodb相关参数的检车和初始化,包括系统表空间,临时表空间,undo表空间,redo文件,doublewrite文件等。 3. inno
阅读全文
posted @ 2022-04-13 10:25 卷毛狒狒
阅读(1101)
评论(0)
推荐(0)
2022年4月7日
MySQL启动过程详解二:核心模块启动 init_server_components()
摘要: mysqld_main() 函数中,init_server_components() 函数负责MySQL核心模块的启动,包括mdl系统,Innodb存储引擎的启动等等: 1. mdl子系统初始化。 2. 初始化 table definition cache 和 hostname cache hash
阅读全文
posted @ 2022-04-07 14:17 卷毛狒狒
阅读(549)
评论(0)
推荐(0)
MySQL启动过程详解一:启动整体流程
摘要: MySQL启动流程如下: 1. 设置进程名 2. 处理配置文件及启动参数以及部分模块初始化,这包括: 2.1 从配置文件中读取选项,把他们放在 argc 和 argv 已有的参数之前 2.2 处理标记为 early 的命令行选项,这其中包括:performance_schema,--help相关,b
阅读全文
posted @ 2022-04-07 14:17 卷毛狒狒
阅读(1702)
评论(0)
推荐(1)
2022年3月29日
gh-ost使用问题记录
摘要: 因为 pt-osc 对数据库性能影响较大,且容易造成死锁问题,目前我们在线更改表结构都使用 gh-ost 工具进行修改,这里记录一下使用 gh-ost 过程中的问题,以作记录;首先先复习一下gh-ost的基本实现,gh-ost的基本实现原理如下图所示: 根据源码,核心步骤如下: 1. initiat
阅读全文
posted @ 2022-03-29 18:29 卷毛狒狒
阅读(532)
评论(0)
推荐(0)
下一页
公告