#PostgreSQL · 9개
Flyway로 Spring Boot 스키마 버전 관리
운영 DB 스키마를 누가 언제 어떻게 바꿨는지 추적이 안 돼서 곤란했던 경험은 대부분 있을 것이다. 개발 DB에서는 되던 쿼리가 운영에서 컬럼이 없다고 터지고, ALTER 문은 누군가의 로컬 메모나…
Testcontainers로 Spring Boot 통합 테스트에 진짜 DB와 Kafka 띄우기 - @ServiceConnection, 컨테이너 재사용, CI 설정
통합 테스트를 H2 인메모리 DB로 돌려놓고 운영은 PostgreSQL로 하는 프로젝트를 자주 본다. 나도 예전엔 그렇게 했다. 빠르고 편하니까. 문제는 방언(dialect) 차이에서 터진다. H2…
PostgreSQL 17 네이티브 증분 백업 - pg_basebackup --incremental로 뜨고 pg_combinebackup으로 복구본 합성하기
EC2에서 직접 굴리는 PostgreSQL의 백업 스크립트를 손보다가, 그동안 pg_basebackup 으로 매번 전체본을 통째로 떠오던 게 눈에 걸렸다. DB가 수백 GB로 커지면 이 전체 백업 …
pg_stat_statements로 느린 쿼리 찾고 auto_explain으로 실행계획 보기 - RDS/EC2 PostgreSQL 튜닝
운영 DB가 갑자기 느려졌다는 이야기를 들으면 제일 먼저 하는 일이 "어떤 쿼리가 느린지"부터 특정하는 것이다. 그런데 막상 접속해서 pg_stat_activity 를 들여다봐도 그 순간 마침 도는…
PostgreSQL XID wraparound로 DB가 멈췄을 때: 'database is not accepting commands' 진단과 복구
새벽에 애플리케이션이 통째로 쓰기를 못 하고 로그에 database is not accepting commands 가 찍히면 대부분 여기서 처음 XID wraparound라는 단어를 검색하게 된다.…
pg_wal이 계속 커져 디스크가 꽉 찰 때: 남아 있는 복제 슬롯 정리와 max_slot_wal_keep_size 설정
DB 스토리지 경고를 받고 급하게 접속해 본 경험은 운영을 해본 사람이라면 한 번쯤 있을 것이다. 그런데 막상 들어가 보면 테이블은 그대로인데 pg_wal 만 부풀어 있는 경우가 꽤 있다. 스토리지…
Spring Boot JPA N+1 쿼리 진단과 해결: generate_statistics, fetch join, @EntityGraph, @BatchSize
코드 리뷰나 성능 점검을 하다 보면 JPA N+1 얘기를 반복해서 하게 된다. 목록 화면 하나 열었을 때 쿼리가 몇 개 나가는지 물어보면 답이 바로 안 나오는 경우가 많고, 원인을 찾은 뒤에도 fe…
Springboot - PostgreSQL - DataSource - Maven 연동
1. 배경 Springboot 기반으로 PostgreSQL 연동하여 작업 실행. 2. Maven Dependency dependency groupid org.postgresql /groupid ar…
PostgreSQL 설치 방법
1. 개요 2. apt 설치 및 삭제 2.1. 설치 Ubuntu 기준으로 하여, apt로 설치한다. $ sudo apt install postgresql Reading package lists...…