查看数据库占用磁盘空间的方法

网友投稿 939 2022-10-14

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

查看数据库占用磁盘空间的方法

目录

环境

文档用途

详细信息

环境

系统平台:N/A

版本:6.0,5.6.5,4.5.2,4.3.4.9

文档用途

本文用于指导在日常生产运维工作中如何查看数据库占有磁盘空间大小的方法。

详细信息

一、通过系统函数查找

通过系统函数查询数据库大小得到的结果仅为数据库、模式、表等各类逻辑数据对象占用大小,不包含WAL日志、审计日志、数据库运行日志等其他部分。

1、查看全部数据库大小之和

highgo=# select sum(pg_database_size(datname)) from pg_database; sum ---------- 33227060(1 row)highgo=#highgo=#highgo=# select pg_size_pretty(sum(pg_database_size(datname))) from pg_database; pg_size_pretty---------------- 32 MB(1 row)highgo=# select sum(pg_database_size(datname)) 1024/1024 as "SIZE M" from pg_database; SIZE M --------------------- 31.6877937316894531(1 row)

(左右滑动查看完整内容)

注:函数pg_database_size()得到的结果单位为字节,函数pg_size_pretty()得到的结果单位是数据库认为便于观看单位,结果不是非常准确,存在四舍五入。

2、查看某几个数据库大小之和,使用过程中将函数内的参数填写对应数据库名称即可。

highgo=# select sum(pg_database_size(pg_database.datname))/1024/1024 as "SIZE M" from pg_database where datname in('highgo','template0'); total_size------------ 16744602(1 row)highgo=# select pg_size_pretty(sum(pg_database_size(pg_database.datname))) as total_size from pg_database where datname in('highgo','template0'); total_size------------ 16 MB(1 row)highgo=# select sum(pg_database_size(pg_database.datname))/1024/1024 as "SIZE M" from pg_database where datname in('highgo','template0'); SIZE M --------------------- 15.9688968658447266(1 row)

(左右滑动查看完整内容)

3、查看单个数据库大小明细,使用过程中将函数内的参数填写为对应数据库名称即可。

highgo=# SELECT pg_database_size('highgo'); pg_database_size------------------ 8576663(1 row)highgo=# SELECT pg_size_pretty(pg_database_size('highgo')); pg_size_pretty---------------- 8376 kB(1 row)highgo=# SELECT pg_database_size('highgo')/1024/1024 as "SIZE M"; SIZE M-------- 8(1 row)

(左右滑动查看完整内容)

4、查看数据库集群内各数据库大小明细

highgo=# select datname,pg_size_pretty(pg_database_size(datname)) from pg_database; datname | pg_size_pretty-----------+---------------- highgo | 8376 kB template1 | 7977 kB template0 | 7977 kB test | 8120 kB(4 rows)

(左右滑动查看完整内容)

二、通过查看数据库对应目录大小确定磁盘使用空间

1、数据集簇占用大小,包含WAL日志、数据库运行日志等。如果用户手动创建过表空间,此种情况下还需要统计该表空间所在目录的大小,表空间的路径可通过元命令\db查看确定。

[highgo@host1 base]$ cd $PGDATA[highgo@host1 data]$ du -sh49M .

注:windows环境下找到对应文件夹,鼠标右键查看大小即可。

2、数据库各类逻辑对象大小之和,不包含WAL日志、数据库运行日志等,只需查看base、global两个文件夹大小。如果用户手动创建过表空间,此种情况下还需要统计该表空间所在目录的大小,表空间的路径可通过元命令\db查看确定。

[highgo@host1 data]$ du -sk base global 32616 base584 global[highgo@host1 data]$ du -sm base global 32 base1 global

(左右滑动查看完整内容)

注:windows环境下找到对应文件夹,鼠标右键查看大小即可。

3、单个数据库大小确定。首先查询数据库oid,通过oid确定数据库存放路径,查看该文件夹大小即可,默认存放路径为$PGDATA/base/oid;如果数据库使用的是用户自建的表空间,则数据库存放路径为$PGDATA/pg_tblspc/oid

highgo=# select datname,oid from pg_database; datname | oid -----------+------- highgo | 13864 template1 | 1 template0 | 13863 test | 16444 tbltest | 16451(5 rows)[highgo@host1 16451]$ cd $PGDATA/base/16444[highgo@host1 16444]$ du -sm8 .[highgo@host1 16444]$ du -sk8140 .

(左右滑动查看完整内容)

注:windows环境下找到对应文件夹,鼠标右键查看大小即可。

上一篇:Oracle硬核之library cache 内存结构剖析
下一篇:distri.lua的web运维工具
相关文章

 发表评论

暂时没有评论,来抢沙发吧~