PostgreSQL
26개PostgreSQL 내부 구조 연재와 운영 기록
PostgreSQL · 운영
PostgreSQL 운영 12/12
PostgreSQL 운영 12: 데이터 손상이 의심된다invalid page 에러가 뜰 때, 손상 범위를 어떻게 파악하고 무엇을 먼저 살리는가
PostgreSQL · 운영
PostgreSQL 운영 11/12
PostgreSQL 운영 11: 메모리가 모자란다쿼리 몇 개 때문에 모든 세션이 끊겼다면, 메모리를 누가 얼마나 쓰는지 보고 한도를 어떻게 잡는가
PostgreSQL · 운영
PostgreSQL 운영 10/12
PostgreSQL 운영 10: 주기적으로 I/O가 튄다몇 분마다 응답 시간이 튀고 디스크 쓰기가 몰린다면, 체크포인트를 어떻게 확인하고 무엇을 조정하는가
PostgreSQL · 운영
PostgreSQL 운영 9/12
PostgreSQL 운영 9: 접속이 안 된다애플리케이션이 DB에 접속하지 못할 때, 에러 메시지로 원인을 가르고 들어갈 수 없는 상황에서도 되살리는 법
PostgreSQL · 운영
PostgreSQL 운영 8/12
PostgreSQL 운영 8: standby가 뒤처진다standby의 데이터가 늦을 때 어디서 늦는지 나눠 보고, 쿼리 취소와 primary bloat 사이에서 무엇을 고르는가
PostgreSQL · 운영
PostgreSQL 운영 7/12
PostgreSQL 운영 7: wraparound 경고가 떴다must be vacuumed within 경고가 보이거나 쓰기가 거부될 때, 무엇을 확인하고 어떤 순서로 되살리는가
PostgreSQL · 운영
PostgreSQL 운영 6/12
PostgreSQL 운영 6: 디스크가 찬다데이터는 그대로인데 디스크가 찬다면 무엇이 차지하고 있고, 가득 차면 어떻게 되며, 어떻게 되살리는가
PostgreSQL · 운영
PostgreSQL 운영 5/12
PostgreSQL 운영 5: 테이블과 인덱스가 계속 커진다행 수는 그대로인데 테이블과 인덱스가 커질 때, 얼마나 부풀었는지 재고 어떻게 줄이는가
PostgreSQL · 운영
PostgreSQL 운영 4/12
PostgreSQL 운영 4: 긴 트랜잭션과 idle in transactionVACUUM이 돌아도 dead tuple이 줄지 않을 때, 무엇이 붙잡고 있는지 찾고 어떻게 막는가
PostgreSQL · 운영
PostgreSQL 운영 3/12
PostgreSQL 운영 3: 쿼리가 갑자기 느려졌다코드도 쿼리도 그대로인데 어제까지 빠르던 쿼리가 느려졌다면, 무엇이 바뀐 것인가
PostgreSQL · 운영
PostgreSQL 운영 2/12
PostgreSQL 운영 2: 세션들이 멈춰 있다세션이 줄줄이 멈췄을 때 누가 막고 있는지 찾고, 어떻게 풀고, 어떻게 막는가
PostgreSQL · HA
Patroni HA 3/3
Patroni HA 3: 운영할 때 주의할 점설정 변경, DCS 장애, failover 데이터 유실, split-brain, 방치된 slot을 재현해 본다
PostgreSQL · HA
Patroni HA 2/3
Patroni HA 2: 3노드 클러스터 구성하기Rocky Linux 9에 etcd 3대, Patroni 3대, HAProxy를 올리고 switchover와 failover를 해 본다
PostgreSQL · 운영
PostgreSQL 운영 1/12
PostgreSQL 운영 1: 진단 도구상자장애가 났을 때 원인을 찾으려면 무엇을 미리 켜 두고, 어디부터 봐야 하는가
PostgreSQL · HA
Patroni HA 1/3
Patroni HA 1: Patroni의 구조와 동작 원리primary가 죽었을 때 누가, 무엇을 근거로 새 primary를 정하는가
PostgreSQL · 인터널
PostgreSQL extension은 어떻게 동작하는가control 파일, SQL 스크립트, 공유 라이브러리가 CREATE EXTENSION과 dlopen을 거쳐 서버 프로세스 안에서 돌기까지
PostgreSQL · 인터널
PostgreSQL 인터널 10/10
PostgreSQL 인터널 10: 쿼리 처리 과정SQL 한 줄이 결과가 되기까지: 파서, 플래너, 실행기와 통계 정보
PostgreSQL · 인터널
PostgreSQL 인터널 9/10
PostgreSQL 인터널 9: 스트리밍 복제와 Replication Slotstandby는 primary의 변경을 어떻게 따라가고, replication slot은 왜 디스크를 채우는가
PostgreSQL · 인터널
PostgreSQL 인터널 8/10
PostgreSQL 인터널 8: 체크포인트와 장애 복구 과정장애가 나도 커밋한 데이터가 사라지지 않는 이유, 그리고 복구는 어디서부터 시작하는가
PostgreSQL · 인터널
PostgreSQL 인터널 7/10
PostgreSQL 인터널 7: WAL모든 변경은 왜 먼저 WAL에 적히고, WAL 레코드에는 무엇이 들어 있는가
PostgreSQL · 인터널
PostgreSQL 인터널 6/10
PostgreSQL 인터널 6: 트랜잭션 ID wraparound32비트 트랜잭션 ID가 한 바퀴 돌면 무슨 일이 생기고, PostgreSQL은 어떻게 막는가
PostgreSQL · 인터널
PostgreSQL 인터널 5/10
PostgreSQL 인터널 5: VACUUM과 Autovacuumdead tuple은 누가 언제 어떻게 정리하는가
PostgreSQL · 인터널
PostgreSQL 인터널 4/10
PostgreSQL 인터널 4: MVCCPostgreSQL은 어떻게 읽기와 쓰기가 서로를 막지 않게 하는가
PostgreSQL · 인터널
PostgreSQL 인터널 3/10
PostgreSQL 인터널 3: 데이터 저장 구조테이블의 행은 디스크에 어떤 모양으로 저장되는가
PostgreSQL · 인터널
PostgreSQL 인터널 2/10
PostgreSQL 인터널 2: 메모리 구조shared buffers, work_mem, WAL buffers는 어디에 어떻게 쓰이는가
PostgreSQL · 인터널
PostgreSQL 인터널 1/10
PostgreSQL 인터널 1: 프로세스 구조postmaster와 backend, 백그라운드 프로세스가 각각 무슨 일을 하는지