728x90
반응형

Backend/Relational Databases 5

[Relational Databases] Datasource Routing

사용자에 따라서 데이터베이스를 다르게 지정하고 싶다는 생각을 했습니다. 그래서 사용자에 따른 다른 데이터베이스를 적용하는 법을 알아보았습니다. 개요 User를 간단하게 만들고 Repository와 Controller를 만들어서 API를 구축하였습니다. 그리고 회사에 따라 DB를 변경하여 저장하고 조회하는 기능을 구현해보겠습니다. 구조 구조는 다음과 같습니다. User API 부분은 기본적인 코드라서 Database Routing 부분만 설명드리겠습니다. 전체코드는 아래에 깃허브 링크를 참고해주세요. 1. application.properties 설정 #company01과 company02는 제가 설정한 이름입니다. 임의로 이름을 지정하시면 됩니다. #저는 두 회사의 하나의 서비스를 공급할 때, 데이터베이..

[Relational Databases] DB Index 설정

인덱스를 사용하는 이유 일반적으로 SQL 서버에 데이터를 저장할 때 내부적으로는 아무런 순서 없이 저장합니다. 이때, 데이터 저장 영역은 Heap이라고 합니다. Heap 에서는 인덱스가 없는 테이블의 데이터를 찾을 때 전체 데이터 페이지의 처음 레코드부터 끝 페이지 마지막 레코드 까지 모두 조회하게 됩니다. 이러한 검색 방식을 풀 스캔(Full Scan) 또는 테이블 스캔(Table Scan) 이라고 합니다. 다음과 같은 검색의 속도를 향상 하기 위해 인덱스를 사용하게 됩니다. 사용 예시 다음과 같은 테이블이 있다고 가정하겠습니다. Create Table User ( uuid Binary(16) Primary Key, name Varchar(20) Not Null, age Integer Not Null,..

[Relational Databases] Database Replication 구현

Database Replication 개념 [Relational Databases] Database Replication 개념 DB Replication 초기 서버를 구성할 때는 하나의 서버와 하나의 데이터베이스를 구성하지만, 사용자 많아지고, 데이터베이스에 많은 Query가 발생하게 되면 이 트래픽을 처리하기 힘든 상황까지 오게 lakelight.tistory.com Database Replication 구현 Database Replication을 진행하기에 앞서 준비해야할 것들이 있습니다. 먼저 VirtualBox를 설치하고 ubuntu-20.04.4-desktop-amd64.iso (이미지 파일) 을 다운받습니다. Ubuntu 20.04.4 LTS (Focal Fossa) Select an imag..

[Relational Databases] MHA 개념

MHA Master High Availability의 약자로 Master DB의 고가용성을 위해 페이스북에 의해 개발되었으며 GPL v2 라이센스 기반의 오픈소스 입니다. Master / Slave 구조의 Replication 환경에서 Master DB에 장애가 발생했을 때 사람이 직접 Master DB를 변경하면 서비스 중단 시간이 길어지므로 이를 자동화 할 수 있는 기능을 만든 것입니다. MHA에 의해서 자동 Fail-Over(Master 승격)을 지원하고 Slave 중 가장 최신의 Slave DB를 Master DB로 승격시켜 고가용성을 유지 시키는 역할을 하게 됩니다. MHA의 기능 Master DB의 네트워크 단절(통신불가 or 3306 포트 접속 불가) 시 Fail-Over을 진행합니다. Fa..

[Relational Databases] Database Replication 개념

DB Replication 초기 서버를 구성할 때는 하나의 서버와 하나의 데이터베이스를 구성하지만, 사용자 많아지고, 데이터베이스에 많은 Query가 발생하게 되면 이 트래픽을 처리하기 힘든 상황까지 오게됩니다. Query의 대부분을 차지하는 Select를 어느 정도 해결하기 위해 Replication 이라는 방법이 나오게 되었습니다. Replication은 두 개 이상의 DBMS 시스템을 Master / Slave로 나눠서 동일한 데이터를 저장하는 방식입니다. Master DBMS에는 데이터의 수정사항을 반영하고, Rplication 하여 Slave DBMS에 실제 데이터를 복사합니다. 즉, Replication은 실시간 복제본 데이터베이스 서버를 운용하는 것을 의미합니다. 기준이 되는 서버는 마스터 ..

728x90
반응형