데이터베이스 서버는 함께 작동하여 두 번째 서버가 기본 서버에 장애가 발생하면 신속하게 인계받음(높음 가용성) 또는 여러 컴퓨터가 동일한 서비스를 제공하도록 허용합니다. 데이터(로드 밸런싱). 이상적으로는 데이터베이스 서버가 작동할 수 있습니다. 원활하게 함께. 정적 웹 페이지를 제공하는 웹 서버는 다음과 같습니다. 단지 웹 요청의 로드 밸런싱을 통해 매우 쉽게 결합할 수 있습니다. 여러 기계. 실제로 읽기 전용 데이터베이스 서버는 비교적 쉽게 결합됩니다. 불행하게도 대부분의 데이터베이스는 서버에는 읽기/쓰기 요청이 혼합되어 있고 읽기/쓰기 서버가 있습니다. 결합하기가 훨씬 어렵습니다. 이는 읽기 전용 데이터이기 때문입니다. 각 서버에 한 번만 배치하면 됩니다. 나중에 읽을 수 있도록 서버를 모든 서버에 전파해야 합니다. 해당 서버에 대한 요청은 일관된 결과를 반환합니다.
이 동기화 문제는 근본적인 어려움입니다. 함께 일하는 서버. 하나의 해결책이 없기 때문에 모든 사용 사례에서 동기화 문제의 영향을 제거합니다. 여러 가지 솔루션이 있습니다. 각 솔루션은 이 문제를 해결합니다. 문제를 다른 방식으로 해결하고 문제에 대한 영향을 최소화합니다. 특정 작업 부하.
일부 솔루션은 하나만 허용하여 동기화를 처리합니다. 데이터를 수정하는 서버입니다. 데이터를 수정할 수 있는 서버는 읽기/쓰기라고 합니다.마스터또는기본서버. 변경 사항을 추적하는 서버 마스터가 호출됩니다대기또는노예서버. 대기 서버는 마스터 서버로 승격될 때까지 연결할 수 없습니다. a라고 불렀다따뜻한 대기서버, 그리고 하나 연결을 허용하고 읽기 전용 쿼리를 제공할 수 있는 것은 a라고 불렀다상시 대기서버.
일부 솔루션은 동기식입니다. 즉, 데이터 수정 모든 서버가 완료될 때까지 트랜잭션은 커밋된 것으로 간주되지 않습니다. 거래를 커밋했습니다. 이는 장애 조치가 보장됩니다. 데이터가 손실되지 않으며 모든 로드 밸런싱된 서버가 반환됩니다. 어떤 서버를 쿼리하든 일관된 결과를 얻을 수 있습니다. 에서 대조적으로, 비동기식 솔루션은 커밋 시간 및 다른 서버로의 전파 일부 거래가 손실될 가능성이 있음 백업 서버로 전환하고 서버의 부하를 분산합니다. 약간 오래된 결과가 반환될 수 있습니다. 비동기 통신 동기가 너무 느릴 때 사용됩니다.
솔루션은 세분화에 따라 분류될 수도 있습니다. 일부 솔루션은 전체 데이터베이스 서버만 처리할 수 있지만 다른 것들은 테이블별 또는 데이터베이스별 수준에서 제어를 허용합니다.
어떤 선택이든 성능을 고려해야 합니다. 일반적으로 기능과 성능 사이의 균형. 예를 들어, 느린 네트워크를 통한 완전 동기식 솔루션은 성능이 절반 이상 감소하는 반면 비동기식은 성능에 최소한의 영향을 미칩니다.
이 섹션의 나머지 부분에서는 다양한 장애 조치에 대해 설명합니다. 복제 및 로드 밸런싱 솔루션. 갑용어집또한 사용 가능합니다.