자격증/정보처리기사 📌 [정보처리기사] 데이터베이스 이중화/서버 클러스터링
  • 728x90
    반응형

     

     

    물리 데이터베이스 설계


     

     

    목차

       

       

      데이터베이스 이중화(Database Replication)

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

       

      • 데이터베이스 이중화를 수행하면 하나 이상의 데이터베이스가 항상 같은 상태를 유지하므로 데이터베이스에 문제가 발생하면 복제된 데이터베이스를 이용하여 즉시 문제를 해결할 수 있다.
      • 데이터베이스 이중화는 여러 개의 데이터베이스를 동시에 관리하므로 사용자가 수행하는 작업이 데이터베이스 이중화 시스템에 연결된 다른 데이터베이스에도 동일하게 적용된다.
      • 데이터베이스 이중화는 애플리케이션을 여러 개의 데이터베이스로 분산시켜 처리하므로 데이터베이스의 부하를 줄일 수 있다.
      • 데이터베이스 이중화를 이용하면 손쉽게 백업 서버를 운영할 수 있다.

       

      🔔 예) MySQL의 이중화 방식

       

      • 동일한 데이터베이스를 복제하여 관리하되, 데이터를 읽고 쓸 수 있는 마스터 DB와 읽기만 가능한 슬레이브 DB로 구분하여 사용한다.
      • 슬레이브 DB는 마스터 DB의 로그를 이용하여 변경된 데이터를 동기화한다.

       

       

      데이터베이스 이중화 분류

      📌 데이터베이스 이중화는 변경 내용의 전달 방식에 따라 Eager 기법과 Lazy 기법으로 나뉜다.

       

      Eager 기법 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법
      Lazy 기법 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법으로 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주된다.

       

       

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

      📌 데이터베이스의 이중화 구성 방법에는 활동-대기(Active-Standby) 방법과 활동-활동(Active-Active) 방법이 있다.

       

      활동-대기(Active-Standby) 방법 - 한 DB가 활성 상태로 서비스하고 있으며 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생하면 대기 상태에 있던 DB가 자동으로 모든 서비스를 대신 수행한다.
      - 구성 방법과 관리가 쉬워 많은 기업에서 이용된다.
      활동-활동(Active-Active) 방법 - 두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 한쪽 DB에 문제가 발생하면 나머지 다른 DB가 서비스를 제공한다.
      - 두 DB가 모두 처리를 하기 때문에 처리율이 높지만 구성 방법 및 설정이 복잡하다.

       

       

      클러스터링(Clustering)

      📌 클러스터링은 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술이다.

       

      • 클러스터링은 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성을 제공한다.
      • 클러스터링에는 고가용성 클러스터링과 병렬 처리 클러스터링이 있다.
        • 고가용성 클러스터링 : 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리하여 서비스 중단을 방지하는 방식으로, 일반적으로 언급되는 클러스터링이 고가용성 클러스터링이다.
        • 병렬 처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방식이다.

       

      💡 공유 스토리지(NAS: Network Attached Storage) : 공유 스토리지는 데이터 저장소를 네트워크로 연결하여 파일 및 데이터를 공유하는것으로 다수의 사용자 또는 서버가 데이터를 안전하고 편리하게 공유할 수 있다.
      💡 고가용성(HA: High Availability) : 고가용성은 시스템을 오랜 시간 동안 계속해서 정상적으로 운영이 가능한 성질을 의미한다.

       

      🔔 예) 병렬 처리 클러스터링

       

      • 사용자의 요청을 로드 밸런서(Load Balancer)가 여러 대의 서버로 분산한다.

       

      💡 로드 밸런서(Load Balancer) : 로드 밸런서는 특정 서버에 집중되는 부하를 덜기 위해 여러 개의 서버로 부하를 분산시키는 네트워크 서비스이다.

       

       

       

       

       

      728x90
      반응형
    상단으로