磁盘空间诊断

PolarDB PostgreSQL数据库主体空间主要被用户数据和WAL日志占用。

查询数据空间

查询数据空间包括以下内容:

  • 数据库

    通过PG客户端执行\l+ ,可以查看每个数据库的空间占用情况注意该操作需要遍历目录树,会有较高的CPUIO开销。

  • 对于占用空间较大的数据库,可以通过客户端连接到该数据库,执行\d+ 查看该数据库每个表的空间占用情况。

查询WAL日志

执行以下SQL可查看当前WAL日志占用空间:

SELECT pg_size_pretty(SUM(size)) FROM pg_ls_waldir();

PolarDB PostgreSQL默认回收WAL日志。WAL日志用于确保在内存中的数据尚未写入磁盘之前,若发生崩溃,内存中的数据将会面临丢失的风险。当内存中的数据成功写入磁盘后,相应的WAL日志将会被回收。

如果存在WAL日志占用空间较大问题,需要关注是否存在非活跃复制槽等非预期场景导致WAL日志累积。

说明

对于存在活跃状态为false的复制槽问题,可通过SELECT * FROM pg_replication_slots;进一步检查。