Aurora PostgreSQL 16 버전 사용 중, RDS 인스턴스 재기동 시 통계 정보가 초기화되는 문제가 발생했습니다. 이는 성능 최적화와 모니터링, 트러블슈팅에 큰 영향을 미치며, AWS 지원팀 확인 결과 Aurora PostgreSQL 15 버전부터 발생하는 문제임을 확인했습니다.이에 따라 재기동 시 통계 정보를 새로 수집하고 갱신하는 방향으로 자동화 프로세스를 설계했습니다. 이를 구현하기 위해 AWS의 EventBridge, Lambda, Aurora PostgreSQL을 활용하였습니다. 작업 개요사용 AWS 서비스AWS EventBridge: RDS 이벤트 감지AWS Lambda: 통계 쿼리 실행AWS Aurora PostgreSQL: 데이터베이스작업 흐름RDS PostgreSQL 재기동 이..
먼저, Docker가 설치되어 있어야 한다. 만약 Docker가 설치되지 않았다면 Docker 공식 사이트에서 설치할 수 있다.Docker MySQL 이미지 찾기docker search mysql Docker MySQL 이미지 받기docker pull ubuntu/mysql 네트워크 생성Docker 컨테이너들이 서로 통신할 수 있도록 Docker 네트워크를 생성한다.docker network create mysql-cluster Master 컨테이너 생성MySQL 마스터 역할을 하는 컨테이너를 생성한다.docker run --name mysql-master -d --restart unless-stopped --network mysql-cluster -e MYSQL_ROOT_PASSWORD=root -e ..
환경변수 설정과 alias까지 마쳤다면 설치했던 postgresql을 연결을 해보려고 한다. 목차1. DBeaver 설치2. 환경 설정 세팅3. 연결 확인 DBeaver 설치https://dbeaver.io/download/ Download | DBeaver CommunityDownload DBeaver Community 24.2.0 Released on September 1st 2024 (Milestones). It is free and open source (license). Also you can get it from the GitHub mirror. System requirements. DBeaver PRO 24.2 Released on September 9th, 2024 PRO version w..
PostgreSQL을 설치를 완료했다면 환경 변수 설정과 alias를 설정할 것이다. 목차1. 환경변수 설정2. alias 설정3. log 디렉토리 설정 환경변수 설정1. root 계정 전환su - 2. 현재 위치 파일 목록 확인ll 3. .profile과 .bashrc 파일 복사cp .profile /var/lib/postgresql/cp .bashrc /var/lib/postgresql/.profile 역할: 로그인 시점에서 한 번 실행되며 주로 전역적인 환경 변수를 설정하는 데 사용된다..bashrc 역할: 새로운 터미널 세션이 열릴 때마다 실행되며, 주로 쉘 세션에서 필요한 alias나 사용자 정의 명령어 설정에 많이 사용된다. 4. postgres 홈 디렉터리 이동cd /var/lib/post..
VMware에 Ubuntu까지 설치가 완료되었다면 이제 PostgreSQL을 설치할 차례다. 목차1. PostgreSQL 설치2. PostgreSQL 동작3. PostgreSQL 접속 PostgreSQL 설치1. PostgreSQL Package 저장소 생성우선 PostgreSQL 패키지 저장소를 추가해야 한다.sudo apt install -y postgresql-commonsudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh 2. PostgreSQL Package 업데이트저장소가 추가되면 패키지 리스트를 업데이트한다.sudo apt update –y 3. PostgreSQL Package 설치PostgreSQL 15 버전을 설치한다.sudo ap..
이번에 PostgreSQL Admin 교육을 받게 되어 교육 내용들을 다음에도 보기 위해 정리해 놓으려고 한다.목차1. M1에 VMware 설치하기2. Ubuntu 설치하기3. 패키지 설치 M1에 VMware 설치하기Window 노트북이 없어서 Mac에서 VMware를 설치했다. VMware Fusion 13 Pro가 개인용으로 무료로 제공되기 때문에 쉽게 다운로드할 수 있다.- 먼저 Broadcom Support에서 회원가입을 하고 아래 링크에서 VMware Fusion을 다운로드한다.VMware Fusion 다운로드 링크- "VMware Fusion 13 Pro for Personal Use"를 선택한 다음, 원하는 버전을 선택하고 다운로드 아이콘(구름 모양)을 클릭한다.처음에 다운로드가 활성화되지 ..
이기종 마이그레이션을 실습해 보고 간단하게 어떠한 과정을 거치는 알아보려고 한다.환경은 MySQL 8버전 PostgreSQL 15 버전이다. MySQL 데이터베이스 접속mysql -u root -p MySQL 데이터베이스 생성먼저 MySQL에서 데이터베이스를 생성한다.CREATE DATABASE testdb; MySQL 테이블 생성생성한 데이터베이스에 접속한 후 테이블을 생성한다.USE testdb;CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(15) NOT NULL, position VARCHAR(15), hire_date DATE); 샘플 데이터 삽입INSERT INTO employees (nam..
PostgreSQL에서 대규모 데이터를 효율적으로 관리하고 쿼리 성능을 최적화하기 위해 파티셔닝을 활용하는 방법을 단계별로 테이블을 생성하고 데이터를 삽입하며 성능 비교를 수행한다. 초기 설정 및 데이터 생성먼저 practice_org라는 테이블을 생성하고 여기에 랜덤 데이터를 삽입한다. 그런 다음 인덱스를 생성한다.-- PostgreSQL에 접속psql -U postgres-- 테이블 생성CREATE TABLE practice_org ( id serial NOT NULL, g int NOT NULL);-- 랜덤 데이터 삽입INSERT INTO practice_org(g)SELECT floor(random() * 100)FROM generate_series(0, 10000000);-- 인덱스 ..
데이터베이스의 테이블과 인덱스가 디스크에 어떻게 저장이 되고 그리고 SELECT를 했을 때 어떤 식으로 데이터를 가져오는지 정리해보려고 한다! Table 데이터베이스에서 테이블은 저장소에 비트와 바이트 형태로 저장한다.가로: row(행), 세로: column(열)emp_idemp_nameemp_birthemp_salary2000Hussein1/2/1988$100,0003000Adam3/2/1977$200,0004000Ali5/2/1982$300,000 Row_ID1. 사용자가 직접 생성하거나 수정할 수 없는 내부 시스템에 의해 관리되는 열이다.2. 데이터베이스 관리 시스템이 내부적으로 사용하고 유지 관리하는 식별자로, 각 행을 고유하게 식별하는 데 사용된다.row_idemp_idemp_nameemp_bi..
설명 한 번 트랜잭션이 커밋되면, 그 결과가 영구적으로 데이터베이스에 반영되어 시스템 장애가 발생하더라도 유지된다는 것을 보장 내용 Durability techniques 구분 설명 예시 WAL(Write ahead log) 기본 원리 데이터를 데이터베이스 파일에 직접 쓰기 전에 모든 변경 사항(트랜잭션)을 로그 파일에 먼저 기록하는 것 작동 원리 로그 기록 - 데이터 쓰기 - 회복 절차 Redo, Undo Asynchronous snapshot 장점 1. 데이터 복구 지원 2. 성능 저하 최소화 3. 데이터 일관성 보장 buffer RDB / AOF RDB 특정한 시점의 스냅샷으로 백업하는 방식 AOF 모든 쓰기 명령에 대한 로그를 남기는 방식 Redis 정리 지속성은 데이터베이스 시스템에서 중요한 특..