查看数据库占用磁盘空间的方法
文章目录
- 环境
- 文档用途
- 详细信息
环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5.8
文档用途
本文档主要介绍查看数据库占用的磁盘空间大小的方法,可以通过系统函数的方式或者查看系统目录大小的方式查看
详细信息
查看数据库占用磁盘空间的方法
一、通过系统函数查看
通过系统函数查询数据库大小得到的结果仅为数据库、模式、表等各类逻辑数据对象占用大小,不包含WAL日志、审计日志、数据库运行日志等其他部分。
1、查看全部数据库大小之和
highgo=# select pg_size_pretty(sum(pg_database_size(datname))) from pg_database;pg_size_pretty---------------------------32 MB(1 row)
注:函数pg_size_pretty()得到的结果单位是数据库认为便于观看的单位,结果不是非常准确
2、查看各个数据库大小
highgo=# select datname,pg_size_pretty(pg_database_size(datname)) from pg_database;datname | pg_size_pretty-----------+----------------highgo | 8376 kBtemplate1 | 7977 kBtemplate0 | 7977 kBtest | 8120 kB(4 rows)
二、查看数据库对应目录大小
1、数据集簇占用大小(包含WAL日志、数据库运行日志等)
[highgo@host1 base]$ cd $PGDATA[highgo@host1 data]$ du -sh $PGDATA49M
如果用户手动创建过表空间,此种情况下还需要统计该表空间所在目录的大小,表空间的路径可通过元命令\db查看确定
highgo=# \db表空间列表名称 | 拥有者 | 所在地------------+--------+--------------pg_default | sysdba |pg_global | sysdba |tb1 | sysdba | /home/hgdb_1(3 行记录)highgo=# \q[highgo@host1 home]# du -sh /home/hgdb_1/52M /home/hgdb_1/
2、单个数据库大小,首先查询数据库oid,通过oid确定数据库存放路径,查看该文件夹大小即可,默认存放路径为$PGDATA/base/oid
highgo=# select datname,oid from pg_database;datname | oid-----------+-------highgo | 13864template1 | 1template0 | 13863test | 16444tbltest | 16451(5 rows)[highgo@host1 16444]$ du -sh $PGDATA/base/164448MB