티스토리 뷰

안녕하십니까 감자코딩에 감자개발자입니다. 이번에 살펴 볼 내용은 데이터베이스의 가장 중요한 부분이라고 할 수 있는, DB서버의 다중화(Multiplexing)의 개념과 구조에 대해 살펴보고, 리플리케이션(Replication)의 구조와 동작에 대해 알아보겠습니다. 

 

DB서버의 다중화

데이터베이스는 DB 서버와 저장소를 각각의 데이터 분류로 확인한다.

DB서버는 계산이나 업무로직을 담당 한다(예를 들면, 비즈니스로직)

저장소는 데이터보존의 기능을 담당 한다.

 

1. 가장 기본적인 다중화의 구조

DB서버 1대, 2대가 있다고 생각을 하자.

이 DB서버 2대는 1개의 저장소를 관리하고 있다.  여기서 우리가 생각해보아야할것이 ‘Active-Active’, ‘Active-Standby’ 로 나누어진다.

 

2. 다중화 구조의 차이점

Active-Active 클러스터를 구성하는 컴포넌트를 동시에 가동한다.

Active-Standby 클러스터를 구성하는 컴포넌트 중 실제로 가동하는 것은 Active, 남은 것을 대기(Standby)하고 있는다.

 

저장소를 공유가능 한 Active-Active 구성이 가능한 DBMS는 현재 Oracle과 DB2뿐이다.

 

Oracle = RAC(Real Application Cluster)

DB2 = pureScale 라는 이름의 Active-Active 클러스터링이 가능하고, 다른 DBMS에서는 Active-Standby 클러스터링만 대응하고 있다.

 

3. Active-Active 구성의 장점

1.시스템 다운 시간이 짧음.

복수의 DB 서버가 동시에 동작하고 있어서 한대가 다운되어 동작이 불능이 되도 남은 서버가 처리를 계속해 시스템 전체가 정지하는 것을 방지할 수 있다.

 

2.성능이 좋음

DB는 서버대수가 증가하면 동시에 가동되는 CPU나 메모리도 증가하기 때문에 성능이 향상 될 수 있다.

4. Active-Active 구성의 단점

단점 이라면, 가끔 저장소가 병목되는 경우도 있다는것을 알아야한다.

 

5. Active-Standby구성

보통 Standby상태의 DB서버는 사용되지 않다가 Active DB 서버에0서 장애가 일어날 때만 사용된다.

전환 할때까지 시차(수십초~수 분)이 걸리게 되고 그 사이 시스템은 서비스를 계속하는것이 불가능한 상태, 즉 다운상태가 된다.

 

6. Active-Standby 구성의 종류

 

Cold-Standby 

평소에 DB가 작동하지 않다가 Active DB가 다운된 시점에 작동하는 구성

Hot-Standby

평소에 Standby DB가 작동되는 구성이다.

 

Hot-Standby이 전환시간은 짧지만, 그만큼 라이선스료가 높게 설정되어있다. 항상 2대의 DB서버를 사용하지만, 실제로 동작하는 것은 Active DB1대이기 때문에 전환 시간을 줄이기 위해 라이선스료를 많이지급 한다는점에서 Hot-standbty는 사치스러운 구성.

 

라이센스에 따라 가용성과 성능이 뛰어난 순서

 

1.Active-Active

2.Active-Standby(hot-standby)

3.Active-Standby(cold-standby)

 

리플리케이션(Replication) 

 

Active-Active와 Active-Standby클러스터 구성에서는 서버 부분은 다중화할 수 있어도 저장소 부분은 다중화 할 수 없어서 데이터를 다중화하지 않는 공통적인 단점이 있다.

그래서, 저장소 부분이 터지게 된다면 큰 위험을 초래할 수 있기때문에 여기서 “리플리케이션(Replication)”을 하게 된다.

즉, DB서버와 저장소 세트를 복수로 준비하는것을 뜻한다.

 

예) Oracle에서는 “data Guard”, DB2 에서는 “HADR”란 이름으로 상품화 되어있음.

 

리플리케이션 주의할점

1.Active측 저장소의 데이터는 항상 사용자로부터 갱신된다는것이며, 따라서 Standby측 데이터에도 갱신을 반영하여 동기화하지 않으면 Active측과 데이터 정합성을 유지 할 수 없음.

2.갱신주기를 얼마로 할것인가와 성능 사이에 트레이드오프(Trade-off) 관계가 생긴다.

3.리플리케이션 구성은 원칙적으로 손자나, 증손자를 만날 수 있음.

 

 

이상 데이터베이스의 다중화(Multiplexing)의 정의 및 구조에 대해 살펴보고, 데이터베이스의 관리적인 측면에서의 리플리케이션의 구조도 알아보았습니다. 데이터베이스는 개발적인면에 있어서 가장 기본이되고, 중요한 부분이기 때문에 이러한 구조를 잘 알고 있으면 도움이 될 것 같아서 포스팅하게 되었습니다.

이상 감자코딩에 감자개발자였습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Database' 카테고리의 다른 글

[mysql] 기본명령어 정리  (0) 2018.03.08
[mysql]Mac mysql 설치 및 환경설정  (0) 2018.03.08
[DB] 수업정리1  (0) 2017.10.08
chapter 1 정보환경  (0) 2017.09.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함