Postgresql/admin 4

postgresql에서 외부 데이터 조회하는 방법

목적 : postgresql에서 oracle 또는 mysql 데이터를 조회한다. 방안 : oracle_fdw, mysql_fdw 활용주요 기능데이터 조회 및 수정SQL 쿼리의 통합 실행데이터 통합설치방법oracle_fdwgit clone https://github.com/laurenz/oracle_fdw.gitcd oracle_fdwmakesudo make installCREATE EXTENSION oracle_fdw;CREATE SERVER oracle_serverFOREIGN DATA WRAPPER oracle_fdwOPTIONS (dbserver '//oracle_host:1521/service_name');CREATE USER MAPPING FOR postgresSERVER oracle_serve..

Postgresql/admin 2025.03.13

sql plan 변경 모니터링

목적: 기존의 sql의 실행계획이 변경되었는지 모니터링하여 장애 예방한다.방안: extension 중 pg_store_plans를 활용 주기적으로 변경된 plan이 있는지 확인한다.plan 변경 감지 쿼리WITH plan_changes AS ( SELECT p.queryid, s.query, p.plan AS new_plan, LAG(p.plan) OVER (PARTITION BY p.queryid ORDER BY p.calls) AS old_plan FROM pg_store_plans p JOIN pg_stat_statements s ON p.queryid = s.queryid)SELECT queryid, ..

Postgresql/admin 2025.03.13

기본 모니터링 쿼리

카탈로그 정보pg_catalog : tables, views, functions, indexes, fdw, trigger, constraints, rules, users, groups 등등 정보 저장 pg_attribute : 테이블 및 다른 pg_class object columns에 대한 정보 저장 pg_index : 인덱스에 대한 정보 저장 pg_depend : object dependent에 대한 정보 pg_rewrite : 테이블 및 view 에 대한 rules 정보  pg_constraint : 테이블에 constraint 정보  pg_stat_statements : db에서 수행된 쿼리에 대한 통계 정보 pg_buffercache : cache에 대한 deeper 한 정보 informatio..

Postgresql/admin 2025.02.13

VACUUM type 에 따른 redo 발생량 차이

일반적으로 다음과 같은 순서로 REDO 로그량이 많이 발생합니다:VACUUM FULL > VACUUM > VACUUM FREEZE [테스트 시나리오]데이터 준비100만 건의 초기 데이터 생성각 VACUUM 테스트 전에 서로 다른 패턴으로 데이터 업데이트/삭제각 VACUUM 유형별 특징VACUUM FULL: 테이블 전체 재작성으로 가장 많은 REDO 발생일반 VACUUM: 삭제된 레코드 정리VACUUM FREEZE: 트랜잭션 ID 에이징 처리측정 방법pg_current_wal_lsn() 함수로 WAL 위치 측정pg_wal_lsn_diff() 함수로 발생한 REDO 로그량 계산pg_size_pretty() 함수로 읽기 쉽게 포맷팅결과 분석각 VACUUM 유형별 REDO 로그 발생량 비교 제공VERBOSE 옵..

Postgresql/admin 2024.11.13