이 장에서는 디스크 사용을 모니터링하는 방법에 대해 설명합니다. 롤 토토 데이터베이스 시스템. 현재 릴리스에서 데이터베이스 관리자는 온 디스크 스토리지를 많이 제어 할 수 없습니다. 레이아웃, 따라서이 장은 대부분 유익하며 운영 체제로 디스크 사용을 관리하는 방법 몇 가지 아이디어 도구.
각 테이블에는 기본 힙 디스크 파일이 있습니다. 데이터가 저장됩니다. 긴 열 값을 저장하려면 A도 있습니다.토스트관련 파일 테이블의 OID를 기반으로 명명 된 테이블 (실제로pg_class.relfilenode) 및 색인토스트테이블. 또한 5 월도 있습니다 기본 테이블과 관련된 인덱스가됩니다.
세 곳에서 디스크 공간을 모니터링 할 수 있습니다.PSQL사용진공정보,PSQL사용contrib/dbsize, 그리고를 사용하여 명령 줄에서contrib/oid2name. 사용PSQL최근 진공 청소기 (또는 분석 된) 데이터베이스, 디스크를보기 위해 쿼리를 발행 할 수 있습니다. 모든 테이블 사용 :
play =# relfilenode, relpages를 선택하십시오 PG_CLASS에서 재생-# Play-# 여기서 relname = '고객'; Relfilenode | 재선 ------------+--------- 16806 | 60 (1 행)
각 페이지는 일반적으로 8 킬로 바이트입니다. (기억하다,Relpages|진공and분석.) 에 사용 된 공간을 보여주세요토스트테이블, 표시된 heap relfilenode를 기반으로 쿼리를 사용하십시오. 위에:
play =# relname, relpages를 선택하십시오 PG_CLASS에서 재생-# play-# where relname = 'pg_toast_16806'또는 Play-# relname = 'pg_toast_16806_index' relname의 Play-# 주문; Relname | 재선 --------------------------------------- PG_TOAST_16806 | 0 pg_toast_16806_index | 1
인덱스 사용을 쉽게 표시 할 수 있습니다 :
play =# c2.relname, c2.relpages를 선택하십시오 PG_CLASS C, PG_CLASS C2, PG_INDEX의 PLAY-# play-# 여기서 c.relname = 'customer'및 Play-# c.oid = i.indrelid 및 Play-# c2.oid = i.indexrelid C2.RelName의 Play-# 주문; Relname | 재선 --------------------------------------- customer_id_indexdex | 26
를 사용하여 가장 큰 파일을 쉽게 찾을 수 있습니다PSQL:
play =# relname, relpages를 선택하십시오 PG_CLASS에서 재생-# Relpages Desc의 Play-# 주문; Relname | 재선 --------------------------------------- bigtable | 3290 고객 | 3144
Contrib/dbsize함수로드 테이블의 크기를 찾을 수있는 데이터베이스에 또는 내부 데이터베이스PSQL필요없이진공/분석.
당신도 사용할 수 있습니다Contrib/Oid2Name디스크 사용을 표시하려면. 보다readme.oid2name예제. 여기에는 포함됩니다 각 데이터베이스에 대한 디스크 사용을 표시하는 스크립트.