백엔드/DB

데이터 이중화

코딩 화이팅 2025. 3. 19. 15:58

데이터 베이스 이중화

시스템 오류로 인한 데이터베이스 중단이나 물리적인 손상 발생 시 이를 복구하기 위해 데이터베이스를 복제하여 관리하는 것

Oracle RAC (Real Application Cluster)

  • 서로 다른 인터페이스를 사용하여 사용자가 다른 인터페이스로 접속하더라도 같은 데이터를 조회하고 변경할 수 있게 구성
  • 서로 다른 인터페이스에서 변경된 데이터도 디스크를 거치지 않고 바로 조회할 수 있어 속도가 빨라졌다.
  • 인터페이스에서 다른 인터페이스의 변경된 내용을 가지고 올 수 있는 기술을 Cache Fusion(캐시 퓨전) 이라고 한다.
  • 인터페이스는 private Network로 서로 연결되어 있고 연결된 인터페이스의 작업은 물리적인 작업에 관계없이 작동하게 된다.

SAN Network

  • SAN Network는 여러 개의 서버 또는 컴퓨터에 연결할 수 있는 스토리지 디바이스 네트워크, 여러 개의 디스크 어레이, 스위치, 서버로 구성되어 있기 때문에 일부가 다운되더라도 데이터에 접근하는 것이 가능하고 운영체제에서는 하나의 드라이브로 인식한다.

Mysql Replication

  • 데이터베이스 서버 별도 데이터를 저장하고 Master의 데이터를 복제하는 방식으로 이중화를 구성한다.
  • 이 경우에 Slave 서버는 Master 서버의 로그기록을 읽고 데이터를 업데이트하는 방식으로 데이터를 업데이트 함으로 Slave 서버는 읽기만 가능하고 쓰기는 Master 서버에서만 수행
  • Master 서버 장애시 Slave 중 1개가 Master로 전환되고 Master 서버에 부하가 많이 발생하면 Master 서버는 쓰기만 Slave 서버는 읽기만 수행
  • Master : 데이터 베이스 복사를 하는 메인 DB
  • Slave : Master의 데이터를 받아 동기화하는 보조 DB, 여러 대 사용 가능
  • Slave는 Master와 동기화 되어 있지만 Master는 Slave와 동기화 되어 있지 않다.

데이터베이스 이중화 종류

  • Eager 기법 : 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 직시 전달하여 변경 내용이 즉시 적용되는 기법
  • LAZY 기법 : 트랜잭션 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달하는 기법    -> 데이터베이스마다 새로운 트랜잭션이 수행된다.

데이터베이스 이중화 구성방법

  • Active-Standby : 한 DB가 활동상태로 서비스를 하고 있으면 다른 DB는 대기하고 있다가 활동 DB에 장애가 발생하면 자동적으로 모든 서비스를 대신 수행한다.
    • 구성과 관리가 쉽다.
  • Active-Active : 두 개의 DB가 서로 다른 서비스를 제공하다 둘 중 한쪽 DB에 문제가 발생하면 나머지 DB가 다른 서비스를 제공한다.
    • 처리율은 높지만 구성이 어렵다.