데이터베이스 서버가 함께 작동하여 두 번째 서버가 기본 서버가 실패하면 신속하게 인수하십시오 (높음 가용성) 또는 여러 컴퓨터가 동일하게 서비스 할 수 있도록 데이터 (로드 밸런싱). 이상적으로는 데이터베이스 서버가 작동 할 수 있습니다 함께 원활하게. 정적 웹 페이지를 제공하는 웹 서버는 가능합니다 단순히로드 균형 잡힌 웹 요청에 의해 아주 쉽게 결합됩니다 여러 기계. 실제로 읽기 전용 데이터베이스 서버는 가능합니다 비교적 쉽게 결합했습니다. 불행히도 대부분의 데이터베이스 서버에는 요청의 읽기/쓰기 혼합이 있으며 서버를 읽고/쓰기 결합하기가 훨씬 어렵습니다. 이는 읽기 전용 데이터이기 때문입니다 각 서버에 한 번만 배치해야합니다. 서버를 모든 서버로 전파하여 향후 읽기를해야합니다. 해당 서버에 대한 요청은 일관된 결과를 반환합니다.
이 동기화 문제는 근본적인 어려움입니다 서버가 함께 작동합니다. 단일 솔루션이 없기 때문에 모든 사용 사례에 대한 동기화 문제의 영향을 제거합니다. 여러 솔루션이 있습니다. 각 솔루션은이를 다룹니다 다른 방식으로 문제를 해결하고 그 영향을 최소화합니다. 특정 작업량.
일부 솔루션은 하나만 허용하여 동기화를 처리합니다 데이터를 수정하려면 서버. 데이터를 수정할 수있는 서버는 다음과 같습니다 읽기/쓰기,마스터또는기본서버. 변경 사항을 추적하는 서버 마스터는라고 불립니다.대기또는슬레이브서버. 대기 서버 마스터 서버로 홍보 될 때까지 연결할 수 없습니다. a따뜻한 대기서버 연결을 허용 할 수 있으며 읽기 전용 쿼리를 제공합니다 a핫 스탠드Server.
일부 솔루션은 동기식이므로 데이터 수정을 의미합니다 모든 서버가 가질 때까지 거래는 커밋 된 것으로 간주되지 않습니다 거래를 저질렀습니다. 이것은 장애 조치가 될 것임을 보장합니다 데이터를 잃지 않으며 모든로드 균형 잡힌 서버가 반환됩니다. 어떤 서버가 쿼리 되든 일관된 결과. ~ 안에 대조적으로, 비동기 솔루션은 사이에 약간의 지연이 가능합니다 커밋 시간과 다른 서버로의 전파, 일부 거래가 손실 될 수있는 가능성을 열어 백업 서버로의 전환 및 해당로드 밸런스 서버 약간 오래된 결과를 반환 할 수 있습니다. 비동기 통신 동기가 너무 느리면 사용됩니다.
솔루션은 또한 세분성으로 분류 할 수 있습니다. 일부 솔루션은 전체 데이터베이스 서버 만 처리 할 수 있으며 다른 사람들은 테이블 당 또는 다트베이스 별 수준에서 제어를 허용합니다.
성능은 어떤 선택 으로든 고려해야합니다. 일반적으로 있습니다 기능과 성능 간의 절충. 예를 들어, a 느린 네트워크를 통한 완전히 동기화 된 솔루션이 절단 될 수 있습니다 절반 이상의 성능, 비동기식은 성능에 미치는 영향을 최소화합니다.
이 섹션의 나머지 부분은 다양한 장애 조치를 간략하게 설명합니다. 복제 및로드 밸런싱 솔루션.