분산 데이터베이스 설계 / 데이터베이스 이중화 / 서버 클러스터링

2023. 2. 19. 21:17정처기 필기/3과목 - 데이터베이스 구축

분산 데이터베이스 설계

1. 분산 데이터베이스 정의

- 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스

 

2. 분산 데이터베이스의 구성 요소

구성 요소 설명
분산 처리기 - 자체적으로 처리 능력을 가진다.
- 지리적으로 분산되어 있는 컴퓨터 시스템
분산 데이터베이스 - 지리적으로 분산되어 있는 데이터베이스
- 해당 지역의 특성에 맞게 구성된 데이터베이스
통신 네트워크 분산 처리기들을 통신망으로 연결해 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크

 

3. 분산 데이터베이스의 목표 (위치,중복,병행,분할,장애)

목표 설명
위치 투명성
(Location Transparency)
실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 엑세스할 수 있다.
중복 투명성
(Replication Transparency)
동일 데이터가 여러 곳에 있더라도 사용자는 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.
병행 투명성
(Concurrency Transparency)
여러 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다.
분할 투명성
(Division Transparency)
하나의 논리적 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 시스템에 저장되어 있음을 인식할 필요가 없다.
장애 투명성
(Failure Transparency)
트랜잭션, DBMS, 네트워크, 컴퓨터 등에서 장애가 발생해도 트랜잭션을 정확하게 처리하고 데이터 무결성을 보장한다.

 

4. 분산 데이터베이스의 장, 단점

* 장점

  • 지역 자치성이 높다
  • 자료의 공유성 향상
  • 분산 제어 가능
  • 시스템 성능 향상
  • 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않는다.
  • 효용성과 융통성이 높다
  • 신뢰성과 가용성이 높다
  • 점진적 시스템 용량 확장이 용이하다.

* 단점

  • DBMS가 수행할 기능이 복잡
  • 데이터베이스 설계가 어렵다
  • 소프트웨어 개발 비용 증가
  • 처리 비용 증가
  • 잠재적 오류 증가
  • 보안의 어려움

5. 분산 데이터베이스 설계

* 애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는 것을 목적

 

* 분산 설계 방법

  - 테이블 위치 분산 : 테이블을 각기 다른 서버에 분산시켜 배치하는 방법

  - 분할 : 테이블의 데이터를 분할하여 분산시키는 것

  - 할당 : 동일한 분할을 여러 개의 서버에 생성하는 방법


데이터베이스 이중화

1. 데이터베이스 이중화

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

 

2. 데이터베이스 이중화의 분류

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

 

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

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

서버 클러스터링

* 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술

 

- 고가용성 클러스터링

  : 하나의 서버에 장애 발생 --> 다른 서버가 대신 처리

 

- 병렬 처리 클러스터링

  : 하나의 작업을 여러 개의 서버에 분산해 처리