나의 잡다한 노트 및 메모

PostgreSQL 관리자(DBA)가 자주 쓰는 주요 테이블/뷰 본문

DB/PostgreSQL

PostgreSQL 관리자(DBA)가 자주 쓰는 주요 테이블/뷰

peanutwalnut 2025. 8. 23. 15:49

1. 데이터베이스/스키마/오브젝트 정보

  • pg_database
    : 클러스터에 존재하는 모든 데이터베이스 목록
    • 어떤 DB가 있는지, size, encoding 확인
     
    SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;
     
  • pg_namespace
    : 스키마(namespace) 목록
    • 스키마별 권한 관리할 때 확인
  • pg_class
    : 테이블, 인덱스, 시퀀스 등 relation 객체 정보
    • 튜플 개수, relkind(’r’=table, ’i’=index 등
     
    SELECT relname, relkind, reltuples FROM pg_class WHERE relkind='r';
     
  • pg_attribute
    : 테이블 컬럼(열) 정보

2. 사용자 / 권한

  • pg_roles
    : PostgreSQL의 사용자와 역할(Role) 정보
     
    SELECT rolname, rolsuper, rolcreaterole, rolcreatedb FROM pg_roles;
  • pg_authid
    : 인증 관련 정보 (superuser만 조회 가능)

3. 트랜잭션/진행 상태 모니터링

  • pg_stat_activity
    : 현재 실행 중인 쿼리, 세션 상태
     
    SELECT pid, usename, state, query FROM pg_stat_activity;
  • pg_locks
    : 현재 획득한 lock 목록 (Deadlock 트러블슈팅에 필수)
  • pg_stat_replication
    : Streaming Replication 상태 (복제 슬롯, 동기화 상태 등)

4. 성능 / 통계 뷰

  • pg_stat_user_tables
    : 사용자 테이블별 통계 (seq scan 횟수, index scan 횟수, dead tuple 등)
     
    SELECT relname, seq_scan, idx_scan, n_dead_tup FROM pg_stat_user_tables;
  • pg_stat_all_indexes
    : 인덱스 사용 통계
  • pg_statio_user_tables
    : 테이블 I/O 통계 (heap fetch, read, hit 등)
  • pg_statio_user_indexes
    : 인덱스 I/O 통계

5. 스토리지 / Vacuum / Freeze 관리

  • pg_class + pg_stat_user_tables 조합
    : dead tuple 확인
  • pg_stat_all_tables
    : Vacuum, Analyze 실행 통계
    • last_vacuum, last_autovacuum, last_analyze 확인 가능
  • pg_stat_progress_vacuum
    : 현재 진행 중인 vacuum 작업의 상세 상태

6. 확장 / 관리용 뷰

  • pg_extension
    : 설치된 확장 목록 (예: plpgsql, uuid-ossp, postgis)
  • pg_settings
    : 현재 설정된 GUC 파라미터 (postgresql.conf) 값 확인
     
    SELECT name, setting, unit, context FROM pg_settings WHERE name LIKE 'autovacuum%';

 

 

'DB > PostgreSQL' 카테고리의 다른 글

Postgrest 란 무엇인가? 장단점과 특징  (0) 2025.11.12
DBA가 알면 좋은 쿼리 ( SLOT )  (0) 2025.09.03
PostgreSQL Vacuum  (3) 2025.08.22
PostgreSQL tablespace  (0) 2025.08.22
PostgreSQL Subscription  (0) 2025.08.20