시스템을 사용하다가 예기치못한 오류가 발생하여 데이터베이스 서비스 중단될수도있는데 그걸 막는 방법이 이중화와 클러스터링이 있다.
데이터베이스 이중화
물리적 손상이 발생했을때 복구하기위해 동일한 데이터베이스를 복제하여 관리하는 걸 데이터베이스 이중화
문제 발생 시 복제된 데이터베이스를 이용하여 즉시 문제를 해결할 수 있으며 사용자가 수행하는 작업은 데이터베이스 이중화 시스템에 연결된 다른 데이터베이스에도 동일하게 적용한다.
애플리케이션을 여러 개의 데이터베이스에서 분산 처리하므로 데이터베이스의 부하를 줄일 수 있고 손쉽게 백업 서버를 운영할 수 있다.
데이터베이스 이중화 분류
1. Eager기법
Eager 기법은 트랜잭션 수행 중에 데이터 변경이 발생하면 모든 데이터베이스에 변경내용이 즉시 적용되는 기법
2. Lazy기법
트랜잭션 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달한다.
데이터베이스 이중화 구성방법
1. 활동 - 대기
둘 중에 하나는 활동 한개는 대기로하고 장애 발생시 대기하고 있는 DB가 자동으로 모든 서비스를 대신 수행해줘 구성 방법과 관리가 쉽다.
2. 활동 - 활동
DB 둘다 활동을 하고 서로 다른 서비스를 제공하다가 하나가 문제가 발생하면 나머지 DB가 서비스를 제공한다. 둘다 모두 처리하기 떄문에 처리율은 높지만 복잡하다.
클러스터링
두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성을 제공
※ 고가용성
시스템에 장애없이 정상적으로 계속 운영되는 능력을 보고 가용성이라고 하고 여기서 고가용성은 오랜시간동안 시스템이 정상적으로 운영이 가능한 것을 말한다.
클러스터링의 종류
1. 고가용성
하나의 서버에서 장애가 발생했을때 다른 서버(노드)가 받아 처리해주는 것으로 일반적으로 언급되는 클러스터링
2. 병렬 처리
전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리
데이터베이스 이중화 / 서버 클러스터링에 사용되는 단어
1. RTO - 목표 복구 시간
장애 발생 하여 업무 중단된 시점으로부터 복구되어 가공될 때 까지의 소요시간
2. RPO - 목표 복구 시점
데이터를 복구할 수 있는 기준점으로 장애 발생 전인 기간 전에 백업시켜둔 복원 시점으로 복구 가능