我们的 Google Cloud MySQL 数据库在几天之内使用空间意外大幅增加。从 15 GB 增加到 16TB!这显然也给我们的计费带来了问题,因为 SQL 存储的成本急剧增加。
通过 Google Cloud SQL System Insights 检查存储后,我们注意到存储量的增长是由于 Google SQL 调用的tmp_data
。您可以在这里看到存储量是如何飙升的:
重新启动数据库实例可清除此问题tmp_data
并将数据库存储使用量恢复到之前预期的 15 GB。
SQL 日志似乎也没有显示任何重要信息,除了达到限制时与没有可用存储相关的错误消息。
我想了解是什么原因导致了这个问题。首先,我尝试查找是什么tmp_data
原因,但我找不到可靠的答案来解释这代表什么。
问题:
tmp_data
Google Cloud MySQL 中有什么?- 我可以调查什么来了解问题可能是什么?
由于使用了这么多的磁盘空间,我的直觉告诉我去检查一下 InnoDB 的历史记录列表
下次 tmp_data 开始攀升时,请多次运行此操作:
如果这个数字很高并且还在增加,这就明显表明 MVCC 信息正在不断积累。
然后,请运行这个:
这将显示所有被“永久”卡住的交易。只需终止这些交易即可。