标题: 磁盘写满之后,数据库show status受到阻塞的原因 [打印本页] 作者: hy2014051202 时间: 2017-6-26 22:47 标题: 磁盘写满之后,数据库show status受到阻塞的原因 1..以下所有讨论都基于mysql 5.5.37版本及官方文档,不保证适用于其他版本。
2.下文中提到的磁盘满,指的是数据文件(数据文件,日志文件,配置文件)所在磁盘分区。
3.由于篇幅问题,最后面的代码部分,只有关键的函数及逻辑判断部分。
1.如果主库上打开binlog,那么当磁盘满之后,每10分钟,
数据库会报告一条Disk is full writing './mysql-bin.000001' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space),
也就是说bin log写满了,等待磁盘空间,这与文档描述相同。
2,如果在主库上关闭binlog,当磁盘满了之后,任何插入行为都会失败,
报错为[ERROR] ./mysqld: The table 'x' is full,官方文档没有提到这个情况,此处的表x是innodb表。
上面是对主库所在磁盘写满之后,数据库实例的反应,下面讲讲我们遇到的情况:从库磁盘写满之后,show status及show slave status会被卡住,但其他select操作不受影响。