系統平臺:
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 -sh
49M . |
注:windows環境下找到對應資料夾,滑鼠右鍵檢視大小即可。
2、資料庫各類邏輯物件大小之和,不包含WAL日誌、資料庫執行日誌等,只需檢視base、global兩個資料夾大小。如果使用者手動建立過表空間,此種情況下還需要統計該表空間所在目錄的大小,表空間的路徑可通過元命令\db檢視確定。
[highgo@host1 data]$ du -sk base global
32616 base
584 global
[highgo@host1 data]$ du -sm base global
32 base
1 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 -sm
8 .
[highgo@host1 16444]$ du -sk
8140 .
|
注:windows環境下找到對應資料夾,滑鼠右鍵檢視大小即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994931/viewspace-2839538/,如需轉載,請註明出處,否則將追究法律責任。