본문 바로가기
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.
DB 인사이드 | PostgreSQL Setup - Minor Upgrade ※ 목차 ※ Upgrade PostgreSQL Minor Version on Linux Upgrade PostgreSQL Minor Version on Windows Upgrade PostgreSQL Minor Version on Linux 목차 PostgreSQL의 Minor버전 릴리즈는 Major버전의 아키텍처를 변경(변형) 하지 않는 선에서 자주 발생하는 버그, 보안 및 데이터 손상 문제에 대해서만 수정된 내용을 제공합니다. Major버전 내부 아키텍처 변경이 없기 때문에 Minor버전 간의 호환성을 유지할 수 있습니다. Linux에서 Minor Version Upgrade는 세가지 방법이 존재합니다. 첫 번째로, yum, apt를 통한 Minor Upgrade가 있습니다. 인터넷이 연결되어 있고,.. 2022. 9. 28.
DB 인사이드 | PostgreSQL Setup - Installation 본 문서에서는 Linux와 Windows에서 PostgreSQL 여러 설치 방법에 대해 설명하도록 하겠습니다. ※ 목차 ※ Install Overview Install PostgreSQL on Linux (CentOS - yum) Install PostgreSQL on Linux (CentOS - rpm) Install PostgreSQL on Linux (Ubuntu - apt) Install PostgreSQL on Linux (Ubuntu - dpkg) Install PostgreSQL on Linux (Source File) Install PostgreSQL on Windows (설치관리자) Install PostgreSQL on Windows (Binary File) 부록 1. 외부 접속을 위한.. 2022. 8. 25.
DB 인사이드 | PostgreSQL Setup - Version & Utility ※ 목차 ※ PostgreSQL 버전 정책 1. PostgreSQL 릴리즈 정책 2. PostgreSQL 릴리즈 현황 3. PostgreSQL 버전 표기 PostgreSQL 업그레이드 1. PostgreSQL Minor 업그레이드 2. PostgreSQL Major 업그레이드 PostgreSQL 응용프로그램 1. pg_dump 2. pg_dumpall 3. pg_restore 4. pg_upgrade 5. initdb 6. pg_upgradecluster 7. pg_dropcluster 8. pg_lsclusters 9. pg_ctlcluster PostgreSQL 버전 정책 1. PostgreSQL 릴리즈 정책 목차 PostgreSQL은 매년 한 번씩 Major버전을 릴리즈합니다. Major버전 릴리즈.. 2022. 8. 25.
DB 인사이드 | MySQL Architecture - 8. InnoDB : 동작 원리 앞서 MySQL의 InnoDB Architecture와 그 구성 요소들에 대해 알아보았습니다. 본 문서에서는 해당 내용을 바탕으로 MySQL의 Connection 생성 및 사용자 요청 처리, 주요 Thread의 동작 방식에 대한 내용을 InnoDB 스토리지 엔진 사용을 토대로 설명하도록 하겠습니다. Connection 생성 과정 MySQL의 Connection 생성 및 동작방식은 InnoDB 외 다른 스토리지 엔진에서도 모두 동일합니다. MySQL Server는 하나의 OS 프로세스로 실행되며, 내부적으로 여러 개의 Thread가 동시에 작업을 수행합니다. 이때, MySQL은 자체 Thread 구현 방식을 가지고 있지 않으므로 OS의 Thread 관리 방식에 의존하여 동작합니다. MySQL의 Connec.. 2022. 7. 27.
DB 인사이드 | MySQL Architecture - 7. InnoDB : On-Disk Structure 본 문서에서는 MySQL에 주요 스토리지 엔진인 InnoDB의 On-Disk Structure에 대해 알아보도록 하겠습니다. InnoDB의 디스크 구조 관련 항목은 아래와 같으며, InnoDB는 모든 Data를 디스크 상의 Tablespace라는 논리적인 공간에 저장합니다. Tablespace Table Index Doublewrite Buffer Redo Log Undo Log Tablespace Tablespace는 Data를 저장하는 데 사용되는 가장 큰 논리적 단위이며, 내부적으로 Segment → Extent → Page → Row의 형태로 구성됩니다. MySQL의 Tablespace는 저장하는 데이터의 종류와 방식에 따라 5가지로 분류가 가능한데, 각각의 Tablespace에 대해 알아보도록 .. 2022. 7. 27.
DB 인사이드 | MySQL Architecture - 6. InnoDB : In-Memory Structure 본 문서에서는 주요 스토리지 엔진인 InnoDB Architecture 중 In-Memory Structure에 대해 다루도록 하겠습니다. In-Memory Structure의 주요 구성 요소는 다음과 같으며, 각각 순서대로 알아보도록 하겠습니다. Buffer Pool Change Buffer Adaptive Hash Index Log Buffer Buffer Pool InnoDB Buffer Pool은 테이블 및 인덱스 Data의 캐싱을 목적으로 하는 메인 메모리 영역입니다. Buffer Pool에는 테이블 및 인덱스 Data 뿐만 아니라 아래 그림과 같이 다양한 유형의 Data 역시 캐싱되며 Buffer Pool List를 이용하여 목록을 관리합니다. Buffer Pool을 사용하면 자주 사용하는 D.. 2022. 7. 27.
DB 인사이드 | MySQL Architecture - 5. SQL 처리과정 본 문서에서는 Client가 Query를 전달한 후 내부적인 처리 과정에 대해 알아보도록 하겠습니다. Query Cache 먼저 Query를 분석하기 전에 MySQL Server는 Query Cache를 확인합니다. Query Cache는 Select문에 대한 전체 결과 집합을 저장하고 있습니다. Client가 Query 수행 시 제일 먼저 거치는 단계로, Query를 분석하기 전에 MySQL Server는 Query Cache를 참조합니다. Client가 이미 캐시에 있는 것과 동일한 Query를 실행하면 Server는 SQL Parser, Optimizer 단계를 건너뛰고 결과를 직접 반환합니다. 📢 테이블의 Data가 변경되면 Query Cache의 내용 역시 달라지므로 변경된 테이블과 관련된 정보.. 2022. 6. 30.