我们有一个MySQL Master运行在具有500GB数据库的1TB SSD上。从下面的屏幕快照中可以看到,由于ibtmp1
的空间过大,我们的空间不足。现在是194GB。
“当数据文件达到最大大小时,查询将失败,并显示表已满的错误。”
因此,我们有两个问题:
我确定该手册具有误导性或我们误解了,因为肯定不能保证MySQL的默认设置允许它填充磁盘然后失败吗?
答案 0 :(得分:2)
我非常喜欢MySQL,但是在某些情况下您只能拍额头。这就是其中之一。但是首先要注意的是:
当您拥有如此庞大的ibtmp1文件时,您要么拥有
在所有情况下,我都会立即采取措施,并尽可能消除这些查询。在innodb状态监视器中或您用于识别这些查询的任何工具中查看您的慢速查询日志。
要回答您的问题,请不要期望MySQL在任何地方都使用合理的默认值。
我不了解您,但是对我来说,由于磁盘已满而无法停止工作的DB。当查询失败时,它会很轻松。请记住,我们最有可能谈论的是错误的查询。
我为所有服务器配置的最大大小为10GB,对此我非常慷慨。
[mysqld]
innodb_temp_data_file_path=ibtmp1:12M:autoextend:max:10G
还要记住,您必须重新启动MySQL服务器以收缩ibtmp1文件。与设置innodb_temp_data_file_path
选项相同。因此,额头耳光。