我们有一个运行在1TB SSD上的MySQL Master,数据库为500GB。 正如您从下面的屏幕截图中看到的,我们正在耗尽空间,因为ibtmp1
增长得太大了。 现在是194GB。
MySQL手册说:
“当数据文件达到最大大小时,查询将失败,并出现一个错误,指示表已满。”
因此,我们有两个关切:
我确信手册是误导或者我们是误解,因为肯定不可能MySQL的默认设置允许它填满磁盘然后失败?
我真的很喜欢MySQL,但是有些事情你只能拍脑门。 这是其中之一。 但最重要的是:
当您拥有如此庞大的ibtmp1文件时,您要么
在所有情况下,我会立即采取行动,如果可能的话,摆脱这些疑问。 请查看innodb状态监视器中的慢速查询日志或用于识别这些查询的任何工具。
要回答您的问题,不要指望MySQL在任何地方都使用合理的默认值。
我不知道你怎么想,但对我来说,DB因为磁盘满而停止工作是不可能的。 当查询失败时,就不那么痛苦了。 请记住,我们讨论的查询很可能是错误的。
我已经将所有服务器的最大大小配置为10GB,我对此非常慷慨。
[mysqld]
innodb_temp_data_file_path=ibtmp1:12M:autoextend:max:10G
还要记住,您必须重新启动MySQL server来收缩ibtmp1文件。 设置INNODB_TEMP_DATA_FILE_PATH
选项时也是如此。 所以才拍前额。