반응형
설치·접속: PostgreSQL 설치와 접속
부제: 이 서버 안에 어떤 DB가 있고 누가 소유·인코딩인지 한눈에 훑는다
psql -c '\l' # 데이터베이스 목록 (psql 안에서도 동일)
psql -c '\l+' # 용량·설명까지 붙은 상세 목록
psql -l # 목록만 보고 바로 종료하는 셸 플래그
List of databases
Name | Owner | Encoding | Locale Provider | Collate | Ctype | ICU Locale | ICU Rules | Access privileges
-----------+----------+----------+-----------------+---------+---------+------------+-----------+-----------------------
postgres | postgres | UTF8 | libc | C.UTF-8 | C.UTF-8 | | |
shop | postgres | UTF8 | libc | C.UTF-8 | C.UTF-8 | | |
template0 | postgres | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | =c/postgres +
| | | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | libc | C.UTF-8 | C.UTF-8 | | | =c/postgres +
| | | | | | | | postgres=CTc/postgres
(4 rows)\l(소문자 엘)은 접속한 서버 클러스터에 존재하는 모든 데이터베이스를 나열한다. psql 셸 안에서 치는 메타명령이지만 psql -c '\l'처럼 셸에서 바로 뽑을 수도 있다. template0·template1은 새 DB를 만들 때 골격이 되는 템플릿이라 항상 보인다. 인코딩이나 Collate가 어긋난 DB를 찾을 때, 혹은 새 서버에 어떤 DB가 올라와 있는지 파악할 때 제일 먼저 치는 명령이다.
이렇게도 쓴다
용량과 설명까지 확인한다. (+ 를 붙이면 상세 컬럼 추가)
psql -c '\l+'
접속하지 않고 셸에서 바로 목록만 확인한다.
psql -l
특정 DB만 패턴으로 걸러 본다.
psql -c '\l shop'
DB 이름만 뽑아 셸 스크립트에 넘긴다. (조합: -At + tail)
psql -Atc 'SELECT datname FROM pg_database WHERE NOT datistemplate'
각 DB 용량을 사람이 읽기 좋은 단위로 정렬한다. (SQL 조합)
psql -c "SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database ORDER BY pg_database_size(datname) DESC;"반응형
'명령어 > DB' 카테고리의 다른 글
| [PostgreSQL] \dt 데이터베이스의 테이블 목록을 본다 (0) | 2026.07.30 |
|---|---|
| [PostgreSQL] \x 넓은 결과를 세로로 펼쳐 본다 (0) | 2026.07.30 |
| [PostgreSQL] \i SQL 파일을 실행한다 (0) | 2026.07.30 |
| [PostgreSQL] \d 테이블·객체의 구조를 뜯어본다 (0) | 2026.07.30 |
| [PostgreSQL] work_mem와 정렬 spill — 큰 ORDER BY가 디스크로 새는 순간 잡아내기 (0) | 2026.07.23 |