RDS MySQL 存储已满...当数据库使用率低时
RDS MySQL Storage Full ... When DB usage is low
我的一个暂存 RDS 表上的 Storage Full 并试图找出哪个 DB/Tables 大...但发现它们实际上非常小:
SELECT
table_schema as `Database`,
table_name AS `Table`,
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
ORDER BY (data_length + index_length) DESC;
SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;
最大的数据库只有 16.7 MB 那么什么填满了我的 10GB RDS?
从模式来看,我怀疑一些 cron ...确实有一个 cron 插入数据 ...但是正如您从 table/db 大小中看到的那样,它并没有那么大 ...还有什么可以正在填写我的 RDS? backup/logs 等是否算作存储空间?
更新:
我注意到 7 月 26 日数据库可用存储量出现峰值,我尝试查看一般查询日志以确定发生了什么。我注意到那里
PURGE BINARY LOGS TO 'mysql-bin-changelog.097019'
想知道它是否无法随后清除日志?
SHOW BINARY LOGS;
查看日志的数量和大小。然后我们可以讨论清除其中的一些。
SHOW VARIABLES LIKE '%log%'
查找提到的文件;向我们展示输出,以便我们讨论尺寸。
"general log"可以长得很快;不使用时将其关闭。并删除它的日志。
"slow log" 非常适合调试性能问题。用pt-query-digest
总结一下,再折腾一下
"error log"应该不大。如果是,那么您可能遇到了更严重的问题。
expire_logs_days
的当前设置是什么?
我的一个暂存 RDS 表上的 Storage Full 并试图找出哪个 DB/Tables 大...但发现它们实际上非常小:
SELECT
table_schema as `Database`,
table_name AS `Table`,
round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`
FROM information_schema.TABLES
ORDER BY (data_length + index_length) DESC;
SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;
最大的数据库只有 16.7 MB 那么什么填满了我的 10GB RDS?
从模式来看,我怀疑一些 cron ...确实有一个 cron 插入数据 ...但是正如您从 table/db 大小中看到的那样,它并没有那么大 ...还有什么可以正在填写我的 RDS? backup/logs 等是否算作存储空间?
更新:
我注意到 7 月 26 日数据库可用存储量出现峰值,我尝试查看一般查询日志以确定发生了什么。我注意到那里
PURGE BINARY LOGS TO 'mysql-bin-changelog.097019'
想知道它是否无法随后清除日志?
SHOW BINARY LOGS;
查看日志的数量和大小。然后我们可以讨论清除其中的一些。
SHOW VARIABLES LIKE '%log%'
查找提到的文件;向我们展示输出,以便我们讨论尺寸。
"general log"可以长得很快;不使用时将其关闭。并删除它的日志。
"slow log" 非常适合调试性能问题。用pt-query-digest
总结一下,再折腾一下
"error log"应该不大。如果是,那么您可能遇到了更严重的问题。
expire_logs_days
的当前设置是什么?