본문 바로가기
DB 인사이드 | PostgreSQL Replication - Function 이번 문서에서는 PostgreSQL Replication과 관련된 Function에 대해 알아보겠습니다. Function List WAL 관련 Function pg_current_wal_lsn pg_current_wal_flush_lsn pg_current_wal_insert_lsn pg_walfile_name pg_walfile_name_offset pg_switch_wal pg_wal_lsn_diff Standby Server 관련 Function pg_is_in_recovery pg_last_wal_receive_lsn pg_last_wal_replay_lsn pg_last_xact_replay_timestamp pg_get_wal_replay_pause_state pg_is_wal_replay_p.. 2023. 6. 29.
DB 인사이드 | PostgreSQL Replication - Trouble Shooting 📢 본 문서는 PostgreSQL Replication 설정 시 발생할 수 있는 내용을 다룹니다. PostgreSQL Replication 구성에 대한 내용은 PostgreSQL Replication - 구성을 참조하세요. 1. ssh-keygen 설정 2. listen_addresses 설정하지 않았을 경우 3. pg_hba.conf 설정하지 않았을 경우 4. max_wal_senders를 1 이하로 설정했을 경우 5. hot_standby 설정 6. Replication User 접속 불가 7. PostgreSQL Database Encoding/locale 옵션이 다른 경우 8. recovery.conf 9. postgresql.conf 위치 확인 10. pg_hba.conf 위치 확인 11. On.. 2023. 5. 25.
DB 인사이드 | PostgreSQL Replication - 구성 시작하며 본 문서에서는 앞서 설명한 다양한 Replication 방식의 설정에 대해 알아보도록 하겠습니다. 이 중 가장 많이 언급되는 Log Shipping, Streaming, Logical Replication방식으로 환경 구성을 진행하며, 그 과정에서 직접적인 연관이 없거나 발생 가능한 이슈에 대해서는 별도 문서인 PostgreSQL Replication - Trouble Shooting을 통해 다루도록 하겠습니다. 구성을 위한 환경은 다음과 같으며, Replication Slot 관련 설정은 포함되지 않습니다. Case Replication 방법 Main Server (10.10.45.230) Standby Server (10.10.45.231) 1 Log Shipping CentOS 7.9 / .. 2023. 5. 25.
DB 인사이드 | PostgreSQL Replication - 종류 Replication은 Data 저장과 백업하는 방법과 관련이 있는 Data를 호스트 컴퓨터에서 다른 컴퓨터로 복사하는 것을 말한다. Replication은 RDBMS에서 추가적으로 제공하거나 여러 대의 Database Server의 부하를 맞추어 줄 용도로 제공한다. Database Replication에서 사용되는 것은 대부분 Database 관리 영역인데 보통 Master/Slave 관계를 갖는 원본과 복사본 사이를 다룬다. — 위키백과 (Replication) Database Replication Database를 Replication(복제)하는 이유는 크게 Database의 부하분산(Load Balancing), 고가용성(High Availability), 백업등으로 나눌 수 있습니다. Main.. 2023. 4. 27.
DB 인사이드 | PostgreSQL HOT - 2. Update 동작 과정 시작하며 앞선 문서를 통해 Page Layout, HOT, Fillfactor, Single-page Vacuuming 등 HOT Update를 이해하기 위해 필요한 개념들에 대해 살펴보았습니다. 본 문서에서는 이러한 개념들을 활용하여 Update가 동작하는 다양한 케이스에 대해 확인해 보도록 하겠습니다. PostgreSQL의 Update PostgreSQL에서 Update는 이전 버전(변경 전)의 Tuple을 유지하는 방법을 통해 다중 버전 관리(MVCC)를 구현합니다. 즉 Update가 발생하면 새로운 버전의 Tuple을 생성한 후 이전 버전은 논리적으로 Delete 처리(Tuple을 유효하지 않은 것으로 표시)하는 것으로 대체합니다. 이러한 MVCC 기반의 Update 동작 방식을 수행 대상에 따른.. 2023. 3. 30.
DB 인사이드 | PostgreSQL HOT - 1. Page와 관리 시작하며 PostgreSQL HOT Series에서는 HOT(Heap Only Tuple) Update의 동작과정을 이해하며, 궁극적으로 성능 최적화 및 모니터링 방안을 확립하기 위한 내용을 다룰 예정입니다. 이를 위해, 우선 본 문서에서는 다음과 같은 Page 및 관련 개념들에 대한 설명을 진행하겠습니다. 해당 개념들은 모두 유기적으로 연결되어 있으며, Series전반에 걸쳐 자주 언급되므로 정확한 이해를 필요로 합니다. Page Layout HOT Single-page Vacuuming Fillfactor 1. Page Layout 📢 페이지란 디스크 상의 표현으로 블록이라 부르며 0부터 순차적으로 번호가 지정되는데 이 번호를 블록 번호라고 합니다. PostgreSQL의 모든 테이블과 인덱스는 고정 .. 2023. 2. 22.
DB 인사이드 | PostgreSQL Vacuum - Monitoring : XMIN’s Horizon Vacuum Series를 통한 Vacuum 동작원리에 이어 이번에는 Monitoring 시 주의해야 할 사항에 대해 이야기해 보도록 하겠습니다. PostgreSQL에 익숙하지 않은 사용자의 경우 Vacuum의 중요성만 인지할 뿐, 단순히 Autovacuum을 Enable 시키거나 Job(Cron)을 통한 Manual Vacuum을 수행하는 것으로 필요한 처방을 다 했다고 생각하곤 합니다. 하지만, MVCC 모델에서 파생된 복잡/다양한 메커니즘은 비단 [Auto]vacuum Operation뿐만 아니라 일반적인 Database 운영 과정까지 지대한 영향을 끼칩니다. 본 문서에서는 그중 idle in transaction상태의 Session이 Vacuum Operation과 맞물렸을 때 발생하는 상황에 대.. 2023. 1. 19.
DB 인사이드 | PostgreSQL Setup - Migration & Upgrade 성능 및 주의사항 ※ 목차 ※ 업그레이드 주의사항 Role & Tablespace Extension 업그레이드 성능 Backup 성능 Restore 성능 pg_upgrade 성능 필요 Disk 여유공간 정리 Data 검증 Object 개수 확인 Procedure 개수 확인 Trigger 개수 확인 Sequence Last Value 확인 PostgreSQL의 신규 기능들을 사용하기 위해서, 혹은 EOL 등의 이유로 PostgreSQL Major 업그레이드를 고려할 수 있습니다. PostgreSQL Major 업그레이드하는 방법은 여러 가지가 존재하며 어떠한 업그레이드 방법을 사용할지, Database 다운타임을 최소한으로 줄일 수 있는 방법은 무엇인지 등에 대한 충분한 검증이 필요할 것입니다. 본 문서에서는 앞서 소개한 .. 2022. 11. 23.
DB 인사이드 | PostgreSQL Setup - Major Upgrade ※ 목차 ※ Major Upgrade Test Data Major Upgrade Using pg_dumpall Major Upgrade Using pg_dump Major Upgrade Using pg_upgrade Major Upgrade Using pg_upgrade Link Option Major Upgrade Using pg_upgradecluster(Only Debian계열) PostgreSQL의 신규 기능들을 사용하기 위해서, 혹은 EOL 등의 이유로 PostgreSQL 업그레이드를 고려할 수 있습니다. Major버전 업그레이드의 경우 시스템 테이블과 Data 파일의 내부 아키텍처의 변화에 따라 버전 간의 호환성이 유지되지 않기 때문에 pg_dump, pg_restore, pg_upgrade .. 2022. 9. 28.