본문 바로가기
학부/Database

Database Clustering

by ulqaef 2021. 2. 6.
728x90

1.   Clustering개념

  • 단일 데이터베이스 서버가 아닌 다중 데이터베이스 서버를 구성하는 것
  • 단일 DB서버에 장애가 발생하여 서비스가 불가능 한 것을 방지하는 DB 분산 기법 중의 하나

 

2.   Clustsering 장단점

  A.   장점

  1. 고가용성(Transactional)

    데이터베이스의 충돌 또는 장애가 발생했을 때 빠른 시간 안아 데이터베이스가 복구돼야 한다. 가용성이란 것은 데이터베이스가 실행되고 있는 시간과 중지되어 있는 시간의 비율을 의미하며 클러스터링으로 데이터베이스의 서버를 분산하여 구성했을 때 이 비율이 그렇지 않은 경우보다 비교적 높게 측정된다.

    데이터베이스 서버가 장애를 일으켜 서비스가 불가능해진 경우에 빠른 시간 안에 서버를 복구해야 하는데 단일 서버로 구성이 되어 있는 경우에는 미리 백업해둔 데이터를 복원하고 장애 시점으로 롤백시키는 시간이 오래 소요될 것이다. 하지만 클러스터링을 한 데이터베이스는 한 데이터베이스 서버가 장애를 일으켜도 다른 데이터베이스 서버로 바로 서비스가 가능하기 때문에 데이터를 복구하려고 소요되는 시간이 비교적 짧아지게 된다.

  2. 렬성(Analytic)

    대량의 데이터를 데이터베이스에서는 많은 테이블의 조인을 통해서 쿼리를 수행해야 하는 경우가 있는데 이런 경우 데이터베이스를 작은 단위의 여러 데이터베이스로 나누어서 병렬처리하고 그 결과를 통합한다.

  3. 성능향상(Online)

    데이터베이스에 많은 접속을 시도하는 웹어플리케이션의 경우 단일 서버로 많은 트래픽이 발생하게 되면 데이터베이스 서버에 부하가 발생할 수 있다. 이런 경우 데이터베이스를 여러 서버로 분산하여 구성하게 되면 다중 트래픽에 대해서도 전략적으로 처리할 수 있어 데이터베이스의 성능을 유지하거나 향상 시킬 수 있다.

 

  B.   단점

  1. 동기화(Sync)

    Active-Standby
    서비스에서 데이터 정합성(Integrity), 동기화 문제가 발생할 수 있다. Active상태의 서버에서 장애가 발생하여 Standby상태의 서버를 Active상태로 전환하는 그 사이의 데이터가 유실될 수 있다.

3. Replication과의 비교

  1. ReplicationClustering과 유사한 동작을 수행하는 것 같지만 실제로는 다른 동작을 수행한다.
  2. 한 데이터베이스를 여러 서버로 다중화 하여 구성하는 클러스터링과는 다르게 리플리케이션은 데이터베이스를 단순 복사하여 동일한 데이터베이스를 추가 생성하는 방식이다.
  3. 클러스터링은 동기적으로 수행되고 리플리케이션은 비동기적으로 수행된다.

    리플리케이션의 slave노드는 mastercreate 트랜잭션 로그를 확인한 뒤에 이를 slave노드에 create하는 방식으로 수행하기 때문에 비동기적으로 수행을 한다. 그렇기 때문에 쿼리가 비교적 빠르게 수행된다는 장점이 있는 반면에 비동기적으로 수행되기 때문에 masterslave의 데이터 정합성이 보장되지 않을 수 있는 단점이 있다.

    반면에 클러스터링으 동기적으로 수행된다. 즉 한 데이터베이스의 서버에 transaction이 수행되면 실제 디스크에 데이터가 저장되기 전에 다른 데이터베이스 서버에 데이터 복제를 수행하게 되고 모든 데이터베이스에 복제가 완료 된 뒤에 디스크에 저장이 된다. 그렇기 때문에 모든 데이터베이스에 데이터 정합성이 보장될 수 있다 하지만 모든 데이터가 동기적으로 처리돼야 하기 때문에 처리 속도는 리플리케이션 보다 느리게 동작하게 된다.

 

728x90
반응형

댓글


`