이 장에서는 디스크 사용량을 모니터링하는 방법에 대해 설명합니다. PostgreSQL 데이터베이스 시스템. 현재 릴리스에서는 데이터베이스 관리자는 디스크상의 저장소에 대해 많은 제어권을 갖고 있지 않습니다. 레이아웃에 대해 설명하므로 이 장은 대부분 정보를 제공하고 다음 내용을 제공할 수 있습니다. 운영 체제로 디스크 사용량을 관리하는 방법에 대한 몇 가지 아이디어 도구.
각 테이블에는 대부분의 데이터가 저장됩니다. 긴 열 값을 저장하려면 다음도 있습니다.토스트다음과 연관된 파일 테이블의 OID를 기반으로 이름이 지정된 테이블(실제로는pg_class.relfilenode) 및 색인은토스트테이블. 또한 기본 테이블과 연결된 인덱스여야 합니다.
다음 세 곳에서 디스크 공간을 모니터링할 수 있습니다: frompsql사용 중진공정보, 출처psql사용 중기여/dbsize및 명령줄에서 다음을 사용하여contrib/oid2name. 사용psql최근에 진공청소기를 청소한 상태에서 (또는 분석된) 데이터베이스인 경우 쿼리를 실행하여 디스크를 볼 수 있습니다. 모든 테이블의 사용법:
play=# SELECT relfilenode, relpages
pg_class에서 플레이-#
play-# WHERE relname = '고객';
relfilenode | 다시 페이지
-----------+----------
16806 | 60
(1행)
각 페이지는 일반적으로 8KB입니다. (기억하다,relpages다음에 의해서만 업데이트됩니다.진공그리고분석.) 받는 사람 사용된 공간을 표시토스트테이블, 표시된 힙 relfilenode를 기반으로 한 쿼리를 사용하세요. 위에:
play=# SELECT relname, relpages
pg_class에서 플레이-#
play-# WHERE relname = 'pg_toast_16806' 또는
플레이-# relname = 'pg_toast_16806_index'
플레이-# ORDER BY relname;
이름 | 다시 페이지
-------+------------
pg_toast_16806 | 0
pg_toast_16806_index | 1
색인 롤 토토도 쉽게 표시할 수 있습니다.
play=# SELECT c2.relname, c2.relpages
플레이-# pg_class c, pg_class c2, pg_index i에서
play-# WHERE c.relname = '고객' AND
플레이-# c.oid = i.indrelid AND
플레이-# c2.oid = i.indexrelid
플레이-# ORDER BY c2.relname;
이름 | 다시 페이지
-------+------------
고객_ID_색인덱스 | 26
다음을 사용하여 가장 큰 파일을 쉽게 찾을 수 있습니다.psql:
play=# SELECT relname, relpages
pg_class에서 플레이-#
플레이-# ORDER BY relpages DESC;
이름 | 다시 페이지
-------+------------
빅테이블 | 3290
고객 | 3144
기여/dbsize함수 로드 테이블의 크기를 찾을 수 있는 데이터베이스에 또는 내부의 데이터베이스psql필요 없이진공/분석.
또한 다음을 사용할 수 있습니다.contrib/oid2name디스크 롤 토토을 표시합니다. 보다README.oid2name예를 들어. 그것은 다음을 포함합니다 각 데이터베이스의 디스크 사용량을 보여주는 스크립트입니다.