磁盘已满,我的查询挂在 mysql 查询上。
来自MySQL手册:
当发生磁盘已满的情况时,MySQL 会执行以下操作:
它每分钟检查一次是否有足够的空间来写入当前行。如果有足够的空间,它会继续,就像什么都没发生过一样。
每 10 分钟它会向日志文件写入一条条目,警告磁盘已满的情况。
有什么选项可以改变这种行为吗?如果它发现磁盘已满,我需要它返回。
答案1
中没有这样的选项Mysql
。
如果Mysql
需要写入磁盘并且没有可用空间,则无法写入任何内容,就是这样。
如果您有磁盘空间问题,最好的办法是使用专用监控工具监控磁盘空间使用情况。当出现警报时,请在影响Mysql
功能之前解决它。
尝试找出导致空间过载的原因并解决它。至少考虑添加更多磁盘。
磁盘已满的问题绝不是系统管理员(或 DBA)想要的!
答案2
正如前面提到的,您永远都不想让磁盘满了。假设您使用的是基于 Linux 的系统,并且这是一个问题,您可以设置一个 cron-job 来检查磁盘空间使用情况,并按规定的时间间隔通过电子邮件将其发送给您。
#!/bin/sh
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
echo $output
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge 90 ]; then
echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
mail -s "Alert: Almost out of disk space $usep%" [email protected]
fi
done