PG 12

PostgreSQL: timeout 관련 파라미터

※ Timeout-related Parameters in PostgreSQL.※ Version: PostgreSQL 16. 안녕하세요. 듀스트림입니다. PostgreSQL은 약 400개 정도의 파라미터를 설정 가능하도록 설계되어 있습니다.오늘은 가장 많이 사용하는 카테고리 중 하나인 timeout 관련 파라미터를 살펴보겠습니다.statement_timeoutSQL 쿼리 실행에 허용된 최대 시간을 설정합니다. 초과 시 쿼리가 자동으로 중단됩니다.타임아웃은 명령이 서버에 도착한 시점부터 서버에서 완료될 때까지 측정됩니다.단순 쿼리 메시지에 여러 SQL 문이 포함된 경우, 타임아웃은 각 문에 개별적으로 적용됩니다.쿼리 관련 메시지(예: Parse, Bind, Execute, Describe)가 도착하면 타임아..

PostgreSQL 2024.12.28

PostgreSQL: 쉘 스크립트로 PostgreSQL 고가용성(HA) 구현

※ Implement PostgreSQL High Availability with a shell script. 안녕하세요. 듀스트림입니다. 이번 포스팅에서는 오픈 소스 HA 도구를 사용하기 전에 고가용성의 기본 원리를 학습하기 위해, 간단한 쉘 스크립트로 고가용성(HA) 로직을 구현해보겠습니다.  ※ Primary 서버와 Standby 서버의 각 로컬에서 동작하는 쉘 스크립트로 백그라운드 수행을 염두에 두고 작성하였습니다. ※ 이중화 구성은 이전 포스팅 참고 부탁드립니다. PostgreSQL DBMS 이중화 구성하기※ Setting up PostgreSQL DBMS Replication Configuration.※ Version: Linux 8.10 (Rocky), PostgreSQL 16.4.이전 포스..

PostgreSQL 2024.12.11

PostgreSQL: 고가용성(HA) 도구 비교 - Patroni vs repmgr

※ Comparison of PostgreSQL HA Tools. 안녕하세요. 듀스트림입니다.오늘은 PostgreSQL의 HA(High Availability) 도구들을 살펴보겠습니다.현재 PostgreSQL에서 가장 많이 사용되고 있는 오픈 소스 HA 도구는 Patroni와 repmgr이 있습니다. 두 도구의 차이를 아래 표로 비교해 보았습니다.구분Patronirepmgr최소 노드 수3개 이상2개 이상 (Witness 노드 사용 시 3개 이상)스플릿 브레인 방지 여부✅ (외부 키-값 스토어 사용)🟡 (repmgr만으로는 완전 방지 불가)외부 의존성Etcd, Consul, Zookeeper 등 필요완전한 스플릿 브레인 방지 시 외부 의존 필요자동 장애 조치✅✅ (repmgrd 사용 시 가능)자동 클러스..

PostgreSQL 2024.12.10

PostgreSQL: 이중화 장애 처리, 원상 복구 방법

※ PostgreSQL Redundancy Failure Handling Methods(Replication Failover, Failback).※ Version: Linux 8.10 (Rocky), PostgreSQL 16.4. 장애가 발생하지 않는 것이 최선이지만, "장애가 발생하지 않은 것은 장애 발생 직전의 상태일 뿐"이라는 말처럼, 우리는 장애가 발생할 수밖에 없는 현실을 받아들여야 합니다. 이번 포스팅에서는 이중화된 PostgreSQL장애가 발생했을 때, 어떻게 처리하는지에 대해 다루도록 하겠습니다.1. Standby 장애 시Standby 서버 장애 시에는 장애 시간이 오래되지 않았다면, 단순 DBMS 기동만으로도 장애가 해결될 수 있습니다.하지만, 일정 시간이 경과되어 단순 기동만으로 복제가..

PostgreSQL 2024.12.09

PostgreSQL: DBMS 이중화 구성 방법

※ Setting up PostgreSQL DBMS Replication Configuration.※ Version: Linux 8.10 (Rocky), PostgreSQL 16.4.이전 포스팅에서 우리는 주요 파라미터 설정을 하고 PostgreSQL 싱글 서버 구성을 완료했습니다. 이번 글에서는 DBMS(Database Management System) 이중화 구성을 실습해 보겠습니다.본격적인 실습에 앞서, DBMS 이중화란 무엇이며, 이를 구성하는 이유는 무엇인지 살펴보겠습니다.DBMS 이중화?• DBMS 이중화는 데이터베이스 관리 시스템의 가용성(Availability)과 안정성(Reliability)을 높이기 위한 기술입니다.• 하나의 시스템에 장애가 발생해도 다른 시스템이 이를 이어받아 서비스 ..

PostgreSQL 2024.12.05