분류 전체보기 97

통계정보 수집관련

- postgresql 은 ANALYZE 명령이나 VACUUM ANALYZE, 또는 자동 통계 수집(autovacuum을 통한 분석)으로 수집 (변경된 튜플 수) > (전체 튜플 수 * autovacuum_analyze_scale_factor + autovacuum_analyze_threshold) 📌 기본값:autovacuum_analyze_threshold = 50autovacuum_analyze_scale_factor = 0.1 (즉, 전체의 10%)예: 1,000건이 있는 테이블이면, 약 150건(50 + 1,000×0.1) 이상 변경되었을 때 자동으로 통계 수집 실행 → 즉, 테이블의 크기가 커질수록 autovacuum이 점점 더 늦게 실행되는 구조입니다. 테이블 단위로 설정해서 튜닝할 수 있..

Postgresql/admin 2025.06.10

pg DB 이중화 관리 repmgr 구축

목차repmgr 설치passwordless 설정postgresql 설정 변경 repmgr 계정생성repmgr 설정 변경repmgr primary 등록repmgr standby 등록 (primary clone)동기화 확인 1. 양쪽노드 간 repmgr 설치sudo apt install postgresql-15-repmgrpostgres@lkmpg:~$ sudo apt install postgresql-15-repmgrReading package lists... DoneBuilding dependency tree... DoneReading state information... DoneThe following additional packages will be installed: repmgr-commonThe..

Postgresql/설치 2025.04.05

pg DB 이중화 구성 (streaming replication) - primary crash

Primary DB 장애발생- Stand by > Primary DB로 전환 fail over 해야함  Standby DB Promote 1. (standby) 기존 standby 장비를 promote 승격하여 master로 승격- server promoted 되면 정상/usr/lib/postgresql/15/bin/pg_ctl -D /var/lib/postgresql/15/main/ "-o -c config_file=/etc/postgresql/15/main/postgresql.conf" promotepostgres@lkmpg:~$ /usr/lib/postgresql/15/bin/pg_ctl -D /var/lib/postgresql/15/main/ "-o -c config_file=/etc/postgr..

Postgresql/설치 2025.04.05

pg DB 이중화 구성 (streaming replication)

Streaming 이중화 방식 구성Streaming Replication은 Primary(주 서버)가 생성한 WAL(Write-Ahead Log) 파일을 Standby(대기 서버)에 실시간으로 전송하고, Standby는 이를 받아서 복제본을 지속적으로 재생합니다. 1. Primary는 데이터 변경을 WAL로 기록 2. Standby는 Primary에 연결해 WAL을 스트리밍 방식으로 수신 3. 수신한 WAL을 디스크에 저장하고, 재생(Replay)하여 데이터 일관성 유지 이중화 구성도 (async)아카이브 위치 : /backups환경파일 : /etc/postgresql/15/main/postgresql.conf데이터 디렉토리 위치 : /var/lib/postgresql/15/mainreplication ..

Postgresql/설치 2025.04.01

drop 시점을 모르는 상태에서의 특정 테이블 복구

상황 요약상황: 초기 데이터 적재 후 풀 백업 완료 → 작업자 실수로 테이블 DROP → DROP 시각 모름 → 무중단 복구 필요.목표: DB 정지 없이 DROP 직전 시점으로 테이블 복구.제약: sequence 복구도 따로 필요함초기 데이터 적재CREATE TABLE test_table ( id SERIAL PRIMARY KEY, name TEXT);INSERT INTO test_table (name) VALUES ('Alice'), ('Bob'), ('Charlie');SELECT * FROM test_table;full backup 완료 ( 테이블 별로 backup )pg_dump -Fc -f full_backup.dump -d mydbseqeunce 백업 확인postgres@lkmpg:..

pgbackrest를 사용한 PostgreSQL 15 백업 및 복구 Incrementalbackup

증분백업 테스트이번엔 full + diff 를 가지고 증분 백업을 진행한다.데이터 추가증분 데이터 확인 postgres@lkmpg:~$ sudo -u postgres psql -d testdb -c "INSERT INTO test_table (data) VALUES ('Incremental Backup Test');"INSERT 0 1증분백업postgres@lkmpg:~$ sudo -u postgres pgbackrest --stanza=demo --type=incr backup2025-03-15 13:00:22.819 P00 INFO: backup command begin 2.54.2: --exec-id=1581-421f3c55 --log-level-console=info --pg1-path=/va..

pgbackrest를 사용한 PostgreSQL 15 백업 및 복구 Differentialbackup

차등백업 테스트차등백업을 위해서 데이터 insertpostgres@lkmpg:~$ sudo -u postgres psql -d testdb -c "INSERT INTO test_table (data) VALUES ('Differential Backup Test');"INSERT 0 1 차등백업 수행postgres@lkmpg:~$ sudo -u postgres pgbackrest --stanza=demo --type=diff backup2025-03-15 12:54:08.439 P00 INFO: backup command begin 2.54.2: --exec-id=1469-c095f788 --log-level-console=info --pg1-path=/var/lib/postgresql/15/main ..

pgbackrest를 사용한 PostgreSQL 15 백업 및 복구 fullbackup

pgbackrest 설치 설정은 다른게시글 참조백업 확인현재는 backup 본이 없는 상태postgres@lkmpg:/var/lib/pgbackrest/archive/demo$ sudo -u postgres pgbackrest info stanza: demo status: error (no valid backups) cipher: none db (current) wal archive min/max (15): 000000050000000000000010/000000050000000000000011테스트를 위해 데이터 생성postgres@lkmpg:/var/lib/pgbackrest/archive/demo$ sudo -u postgres psql -c "CREATE DATABASE testdb;"sudo -..