본문 바로가기

PostgreSQL & EPAS

(9)
PostgreSQL & EDB PAS - 실행 계획 재사용( Plan Reuse) 글을 작성하기 전에 이 포스팅에서는 PostgreSQL SQL 처리 과정 시 리소스를 줄일 수 있는 실행 계획 재사용 여부에 대해 확인해보려고 합니다. 실행계획 재사용에 대해 확인을 위해 SQL 처리 과정에 대한 내용도 간단하게 포함되어 있습니다. 추후 PostgreSQL SQL 처리 과정에 대한 포스팅도 작성 할 예정입니다. PostgreSQL & EDB PAS - 실행 계획 재사용( Plan Reuse) 결론을 먼저 기술하자면, PostgreSQL은 세션 전체적으로 실행계획을 공유하지 않습니다. 각 세션마다 실행 계획을 공유할 수 있으나 그것은 특정한 PREPARE 구문 사용시에만 적용됩니다. SQL Parsing SQL요청이 Client로부터 들어오게 되면 DB 내부에서 다양한 과정을 거쳐 쿼리가 ..
pgday.Seoul 2022 후기 글을 작성하기 전에 해당 포스팅은 개인적으로 참석한 pgday.Seoul 2022 의 후기로 발표 세션들을 들으며 정리한 내용, 개인적으로 생각했던 내용들이 포함되어 있습니다. http://pgday.postgresql.kr/ 에 발표자료가 상세 세션 정보 및 발표자료들이 공유되어 있습니다. 저는 단순한 참여자로 혹시 Pgday 지침에 어긋나는 내용이 있다면 댓글로 달아주시면 수정 하거나 비공개 처리 하도록하겠습니다. Pgday란?? 세계 여러곳에서 개최되는 PostgreSQL 행사로 PostgreSQL Day에서 따온것으로 추측된다. 우리나라에서는 7년동안 개최되었으며 코로나로 인해 온라인으로 진행하였다가 오프라인으로 진행되었다. 서로 소속된 회사에 관계없이 자유로운 분위기 속에서 PostgreSQL에..
PostgreSQL 파티션의 목적 및 프루닝 조건 글을 작성하기 전에 PostgreSQL은 버전에 따른 파티셔닝 구성의 발전이 이루어져 왔으며 11버전에 이르러서야 파티션 테이블의 장점이 도드라졌습니다. 파티셔닝에 대해서는 추후 포스팅에 상세하게 정리할 예정이지만, 파티션 구성의 목적 및 프루닝 조건에 특이점을 미리 포스팅에 정리하겠습니다. PostgreSQL 파티션의 목적 및 프루닝 조건 작성자가 운영하는 서버들에 대해서는 50GB 이상의 단일 테이블의 경우 파티션테이블로 전환을 검토하고 있다. 파티셔닝 구성의 제약조건은 분명히 있지만 장점이 많기 때문에 전환을 검토하는 것인데 이부분을 관리적 차원, 성능적 차원으로 정리하려고 한다. 관리적 차원의 파티셔닝의 장점 - 대용량 테이블을 파티션으로 전환함으로써 각각의 테이블에 대한 관리를 용이하게 함 - ..
PostgreSQL Manual Vacuum Tuning 글을 작성하기 전에 Vacuum은 PostgreSQL의 MVCC 구현 방식으로 인해 필수적이며, 기본적으로 Manual Vacuum 외에 autovacuum process에 의해 수행됩니다.(off로 설정되어 있어도 autovacuum_freeze_max_age가 넘어서게 되면 자동 수행) 그러나 작성자가 운영하는 서비스에서는 autovacuum parameter 변경을 통해서 빈공간회수와 Transaction ID Wraparound(TXID 겹침)이 해결 되지 않아 manual Vacuum 을 수행하였는데 그로 인한 Vacuum의 부하와 그를 줄이는 방법에 대해 정리하겠습니다. 추후 Vacuum 장애 History 포스팅에 해당 포스팅을 링크로 달아 놓겠습니다. PostgreSQL Manual Vac..
PostgreSQL 백업/복구 제약사항 검토(EPAS와 비교하여) 글을 작성하기 전에 MongoDB Enterprise Edition 에서는 OpsManager등을 활용하여 시점복구가 가능하지만 MongoDB Community 버전에서는 데이터 백업은 Dump로만 수행 가능하여 시점복구(Point in Time Recvoery)가 불가하다. (그러나 MongoDB는 대부분 ReplicaSet 과 Sharding 환경으로 구성되어 복구가 필요할 확률이 적을 수 있음) 이와 같은 사례를 검토하기 위해 PostgreSQL(오픈소스) 와 EPAS(상용) 에 대한 백업/복구 제약사항을 검토하였다. PostgreSQL 백업/복구 제약사항 검토(EPAS와 비교하여) pg_dump vs 아카이브 로그 방식 - PostgreSQL & EPAS는 pg_dump를 활용해 백업을 받을 수 ..
PostgreSQL & EPAS Client tool - psql 활용 PostgreSQL & EPAS Client tool - psql 활용 개발업무 시 pgadmin, dbeaver , workbench 등과 같은 GUI 기반 클라이언트 툴도 자주 활용 하지만, PostgreSQL & EPAS에서 리눅스 상의 CLI Client 도구인 psql이 매우 편리하게 구성되어 있어 이 내용을 소개한다. (mysql에서는 자동완성 기능을 제공하지 않으며 sqlplus, tbsql 등 에서는 컬럼길이를 지정해야 하므로 매우 불편) 자동 완성 기능 psql 접속 시 다양한 구문에 대한 자동완성 기능을 제공한다. SQL 구문, 내부 파라미터등의 일부를 기술하고 Tab버튼을 누르게 되면 자동완성이 되고, 리스트들을 출력 해준다. 직관적인 오브젝트 확인 psql 접속 시 간단한 명령어를 ..
PostgreSQL & EPAS System Architecture - 2. Memory PostgreSQL & EPAS Architecture - 2.Memory Overall PostgreSQL & EPAS 서버에서 사용하는 메모리 구조는 크게 2가지로 분류할 수 있다. 1.Shared Memory - PostgreSQL Server 내 모든 프로세스들이 사용하는 공유 메모리 영역 2.Local Memory - Postmaster에서 생성한 backend process(세션) 마다 할당되는 메모리 Shared Memory Shared buffers - 데이터에 대한 Select, DML을 수행하기 위해 디스크 영역에 있는 Data를 캐싱하는 메모리 공간 - 실제 메모리의 25%를 할당하여 사용하는 것으로 권장 - 페이지 교체 알고리즘으로 Clock Sweep 알고리즘을 사용 WAL buf..
PostgreSQL & EPAS System Architecture - 1. Process 글을 작성하기 전에 최근(22.04) Oracle, PostgreSQL, MySQL core Architecture의 출판사인 Exem 사에서 PG Architecture 에 대한 글이 올라왔는데, 매우 정리가 잘되어 있어 이 포스트는 간단한 내용 및 버전 별 변동 사항을 중점으로 정리할 것입니다. internal 구조 기반 아키텍처를 상세하게 알고 싶으시다면 https://exem.tistory.com/1645?category=1010730 링크를 참고하시길 추천드립니다. PostgreSQL & EPAS Architecture PostgreSQL & EPAS는 동일한 엔진 아키텍처를 사용하고 있음, 오라클 아키텍처와 유사성이 있으나 EDB PAS를 운영하기 위해서는 PostgreSQL의 아키텍처를 알아..
PostgreSQL & EDB PAS 란? PostgreSQL PostgreSQL 이란 대표적인 오픈소스 객체 관계형 데이터베이스(ORDBMS)의 하나로, 1986년 POSTGRES 프로젝트의 일부로 시작되어 30년 이상 발전해가고 있는 데이터베이스 중에 하나이다. - University Postgres (1986~1993), Postgres95(1994~1995), PostgreSQL (1996~cureent) 현재 2022년 기준 글로벌 DB 엔진 4위에 랭크되어 있으며, 오픈소스 DBMS 중에서는 2위를 차지하고 있다. (전체 2위인 MySQL의 경우 상용라이선스가 존재하지만 오픈소스로 분류 ) 우리나라에서는 PostGIS 확장모듈을 활용한 지리정보처리를 위한 DBMS로 많이 알려져 있으나, 출시 초기부터 ACID를 준수하며 OLTP,OLA..