首页 > 数据库 >MySQL Others -- 服务正常关闭流程

MySQL Others -- 服务正常关闭流程

时间:2022-08-28 19:00:07浏览次数:88  
标签:25T17 03 00 -- 08 MySQL Note 2022 Others

MySQL正常关闭流程

下面信息抄自爱可生开源社区

当MySQL服务收到关闭服务的SIGINT 信号后,进行如下处理:

  • 启动关机进程
  • 创建shutdown线程(如果需要)
  • 停止接受新连接
  • 处理已建立连接
  • 关闭存储引擎
  • 关闭服务

1、启动关闭进程

可以有多种方式来启动关机进程,如:

  • 使用mysqladmin执行shundown命令
  • 使用service mysqld stop通知mysql服务关闭
  • 使用kill mysqd_pid通知mysql服务关闭

2、创建shutdown线程(如果需要)

根据触发关机的方式不同来决定是否需要创建一个shutdown线程来执行关闭操作。

3、停止接受新连接

为了预防在关闭系统过程再接收新任务,MySQL 会关闭 TCP/IP 端口、socket 等通道来阻止接受新的客户端连接。

4、处理已建立连接

对于已建立连接,则会:

  • 对于空闲状态的连接,直接关闭。
  • 对于未提交的事务,直接回滚。
  • 对于主节点上执行的Binlog Dump线程,直接关闭。
  • 对于从节点上执行SQL线程和IO线程,如果SQL线程正在执行语句或执行事务,则等待语句或事务执行完成并关闭SQL线程,或用户发出KILL QUERY或KILL CONNECTION来停止SQL线程。

5、关闭存储引擎

MySQL Server层会刷新所有表缓存并关闭所有已打开的表。

每个存储引擎执行对其管理的表和对象执行必要的操作,如InnoDB存储引擎会刷新缓冲池中脏页数据和更新表空间的LSN。

6、服务器退出

根据服务关闭情况向管理进程返回"退出代码"

MySQL正常关闭日志

MySQL正常关闭过程中Error日志记录信息为:

2022-03-25T17:17:58.165016+08:00 0 [Note] Giving 1 client threads a chance to die gracefully
2022-03-25T17:17:58.165059+08:00 0 [Note] Shutting down slave threads
2022-03-25T17:17:58.165070+08:00 3 [Warning] SEMISYNC: Forced shutdown. Some updates might not be replicated.
2022-03-25T17:17:58.165092+08:00 3 [Note] Semi-sync replication switched OFF.
2022-03-25T17:17:58.165654+08:00 0 [Note] Forcefully disconnecting 0 remaining clients
2022-03-25T17:17:58.165680+08:00 0 [Note] Event Scheduler: Purging the queue. 0 events
2022-03-25T17:17:58.165919+08:00 0 [Note] Binlog end
2022-03-25T17:17:58.167688+08:00 0 [Note] Shutting down plugin 'rpl_semi_sync_slave'
2022-03-25T17:17:58.167719+08:00 0 [Note] Shutting down plugin 'rpl_semi_sync_master'
2022-03-25T17:17:58.167745+08:00 0 [Note] Stopping ack receiver thread
2022-03-25T17:17:58.167831+08:00 0 [Note] unregister_replicator OK
2022-03-25T17:17:58.167843+08:00 0 [Note] Shutting down plugin 'ngram'

省略shutting down plugin

2022-03-25T17:17:58.167985+08:00 0 [Note] Shutting down plugin 'InnoDB'
2022-03-25T17:17:58.168053+08:00 0 [Note] InnoDB: FTS optimize thread exiting.
2022-03-25T17:17:58.168140+08:00 0 [Note] InnoDB: Starting shutdown...
2022-03-25T17:18:00.704250+08:00 0 [Note] InnoDB: Shutdown completed; log sequence number 63089498676
2022-03-25T17:18:00.705160+08:00 0 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2022-03-25T17:18:00.705183+08:00 0 [Note] Shutting down plugin 'MEMORY'

省略shutting down plugin

2022-03-25T17:18:00.705547+08:00 0 [Note] Shutting down plugin 'binlog'
2022-03-25T17:18:00.706904+08:00 0 [Note] /opt/soft/mysql57/bin/mysqld: Shutdown complete

从错误日志中可以发现:

  • 在关闭存储引擎之前,MySQL会关闭半同步插件和半同步消息确认进程。

其他

使用正常非暴力方式关闭MySQL服务时,如果该MySQL服务是半同步复制的主节点,可能会导致部分事务在事务提交前未收到从节点返回的确认信息。

参考资料

标签:25T17,03,00,--,08,MySQL,Note,2022,Others
From: https://www.cnblogs.com/gaogao67/p/16633390.html

相关文章

  • 股市预测,销量预测,病毒传播...一个时间序列建模套路搞定全部!
    股市预测,销量预测,病毒传播...一个时间序列建模套路搞定全部!https://juejin.cn/post/7120117834750885919时间序列建模工具库有很多,比较知名的有Uber开源的......
  • 模板——数据结构
    线段树维护区间最值以及满足最值的个数structSGT{ intmx[N<<2],tg[N<<2],su[N<<2]; #definemid((l+r)>>1) #definelc(u<<1) #definerc((u<<1)|1) voidbld(......
  • 2.Linux相关基础操作
    1.用户操作1.添加用户useraddaaa2.指定目录useradd-d/home/aaaaaa3.删除用户userdelaa4.删除用户及目录userdel-raaa5.查看用户信息idaa6.切换用户su......
  • 2022 百度之星初赛 第二场 A
    A题:题目:  双指针,莫队回滚,线段树,归并树都可以过线段树:做法1.给每个节点存当前区间前k大的数做法2.存最大值和它的位置#defineintllconstintN=1e5+10;......
  • 3.Linux更新数据源
    在一个没有安装vim等命令的Linux环境中,没办法更新数据源,没办法软件的安装等的解决方案:编辑数据源vi/etc/apt/sources.list删除全部内容并修改为debhttp://mirrors......
  • Java集合
    集合框架组成部分:1.Collection(存放单列数据):List接口存放数据可以允许重复ArrayList底层基于数组数据结构实现LinkedList底层基于链表数据结构实现Set接口不允许存......
  • 假期第五周总结
    这周,我和朋友们集体去了延吉旅游,玩了一周,第一天,我们坐高铁乘车到了延吉,第一次来到延吉,我被这边的人文风情给震撼到了,或许是临界边境,这边的人都比较有朝鲜族的风情,我跟朋友......
  • 《热力学·统计物理(第五、六版)》汪志诚
    https://wwz.lanzouy.com/iywAm0agikza密码:hpj1链接:https://caiyun.139.com/m/i?065CtborcdlGK 提取码:H4QL 复制内容打开中国移动云盘手机APP,操作更方便哦......
  • Linux上安装jdk 1.8
    1、下载jdk1.8这里贴个oracle官网链接 https://www.oracle.com/java/technologies/downloads/ 里面的jdk版本基本都有2、将压缩包上传到Linux服务器中我使用的是wi......
  • 前端Day10
    视口(viewport):浏览器显示页面内容的屏幕区域。分为布局视口、视觉视口、理想视口。布局视口: 视觉视口: 理想视口: meta视口标签:width=device-width:布局视口宽......