代码之家  ›  专栏  ›  技术社区  ›  Jiew Meng

数据库使用率低时,RDS MySQL存储已满

  •  6
  • Jiew Meng  · 技术社区  · 6 年前

    我的一个临时RDS表的存储空间已满,并试图找出哪个DB/表很大。。。但发现它们其实很小:

    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;
    

    enter image description here

    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; 
    

    enter image description here

    最大的数据库只有16.7MB,那么我的10GB的RDS有什么用呢?

    enter image description here

    从模式上看我怀疑某个亲信。。。确实有一个cron正在插入数据。。。但是从表/db大小可以看出它并没有那么大。。。还有什么可以填充我的RDS?备份/日志等是否算作存储?

    更新 :

    我注意到在7月26日,数据库空闲存储出现了峰值,我试图查看常规查询日志来确定发生了什么。我注意到了

     PURGE BINARY LOGS TO 'mysql-bin-changelog.097019'
    

    不知道它是否无法随后清除日志?

    1 回复  |  直到 6 年前
        1
  •  8
  •   Rick James diyism    6 年前
    SHOW BINARY LOGS;
    

    看看你的日志有多少,有多大。然后我们可以讨论清除其中的一些。

    SHOW VARIABLES LIKE '%log%'
    

    找出上面提到的文件;显示输出以便我们讨论大小。

    “通用日志”可以快速增长;不使用时将其关闭。把它的日志去掉。

    “慢日志”非常适合调试性能问题。使用 pt-query-digest 总结一下,然后扔掉。

    “错误日志”不应太大。如果是,那么你可能会有更严重的问题。

    当前的设置是什么 expire_logs_days ?