개요
PostgreSQL에서 자주 사용하는 모니터링 Query 모음
PostgreSQL 모니터링 query 모음
DB 설정값 확인
- pg_settings 확인
SELECT name, setting, boot_val, reset_val, unit FROM pg_settings ORDER BY name; - postgresql.conf
$PGDATA/postgresql.conf
- pg_settings 확인
데이터베이스 조회
- 모든 database 보기
\list /* or */ \l - database 이름만 보기
SELECT datname FROM pg_database;
- 모든 database 보기
스키마 조회
- 스키마 불러오기
\dn - pg_catalog를 통해서 스키마 불러오기
SELECT * FROM pg_catalog.pg_namespace;
- 스키마 불러오기
테이블 조회
- public 테이블 조회
\dt /* or */ SELECT * FROM pg_catalog.pg_tables; - 특정 스키마의 테이블 조회
\dt schema_name.* - |로 여러 스키마와 테이블을 필터링
\dt (public|schema_name).(a_table|b_table) - 모든 테이블 보기
SELECT table_schema, table_name FROM information_schema.tables ORDER BY table_schema, table_name; - public 테이블 리스트 확인
SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'; - 테이블 컬럼 정보 확인
SELECT table_name, column_name, data_type, ordinal_position FROM information_schema.columns WHERE table_schema = 'public' ORDER BY table_name, ordinal_position; - 인덱스 정보 확인
SELECT a tablename, a.indexname, b.column_name FROM pg_catalog.pg_indexes a, information_schema.columns b WHERE a.schemaname = 'public' AND a.tablename = b.table_name;
- public 테이블 조회
트랜잭션 정보 확인
접속된 사용자 확인
SELECT pid, datname, usename, query FROM pg_stat_activity;Active 세션 확인
SELECT datname, usename, state, query FROM pg_stat_activity WHERE state = 'active';현재 실행중인 SQL 상태 정보 확인
SELECT current_timestamp - query_start AS runtime, datname, usename, query FROM pg_stat_activity WHERE state = 'active' ORDER BY 1 DESC;1분 이상 실행되는 쿼리 확인
SELECT current_timestamp - query_start AS runtime, datname, usename, query FROM pg_stat_activity WHERE state = 'active' AND current_timestamp - query_start > '1min' ORDER BY 1 DESC;Query를 process title에 보이도록 설정하기
update_process_title = onwait 또는 blocking 되는 세션 확인
SELECT datname, usename, query FROM pg_stat_activity WHERE waiting = true;query block user 찾기
SELECT w.query AS waiting_query, w.pid AS waiting_pid, w.usename AS waiting_user, l.query AS locking_query, l.pid AS locking_pid, l.usename AS locking_user, t.schemaname ||'.' t.relname AS tablename현재 실행중인 SQL 상태 정보 확인
asdfasdf
트랜잭션 정보 확인
- 접속된 사용자 확인
- Active 세션 확인
- 현재 실행중인 SQL 상태 정보 확인
- 접속된 사용자 확인
