데이터베이스 서버가 함께 작동하여 두 번째 서버가 기본 서버가 실패하면 신속하게 인수하십시오 (높음 배트맨 토토) 또는 여러 컴퓨터가 동일하게 서비스 할 수 있도록 데이터 (로드 밸런싱). 이상적으로는 데이터베이스 서버가 작동 할 수 있습니다 함께 원활하게. 정적 웹 페이지를 제공하는 웹 서버는 가능합니다 단순히로드 균형 잡힌 웹 요청에 의해 아주 쉽게 결합됩니다 여러 기계. 실제로 읽기 전용 데이터베이스 서버는 가능합니다 비교적 쉽게 결합했습니다. 불행히도 대부분의 데이터베이스 서버에는 요청의 읽기/쓰기 혼합이 있으며 서버를 읽고/쓰기 결합하기가 훨씬 어렵습니다. 이는 읽기 전용 데이터이기 때문입니다 각 서버에 한 번만 배치해야합니다. 서버를 모든 서버로 전파하여 향후 읽기를해야합니다. 해당 서버에 대한 요청은 일관된 결과를 반환합니다.
이 동기화 문제는 근본적인 어려움입니다 배트맨 토토가 함께 작동합니다. 단일 솔루션이 없기 때문에 모든 사용 사례에 대한 동기화 문제의 영향을 제거합니다. 여러 솔루션이 있습니다. 각 솔루션은이를 다룹니다 다른 방식으로 문제를 해결하고 그 영향을 최소화합니다. 특정 작업량.
일부 솔루션은 하나만 허용하여 동기화를 처리합니다 데이터를 수정하려면 서버. 데이터를 수정할 수있는 서버는 다음과 같습니다 읽기/쓰기 또는 "마스터"서버라고합니다. 회신 할 수있는 서버 읽기 전용 쿼리를 "슬레이브"서버라고합니다. 할 수없는 서버 마스터 서버로 변경 될 때까지 액세스해야합니다. "대기"서버.
일부 장애 조치 및로드 밸런싱 솔루션은 동기식입니다. 데이터 수정 트랜잭션이 고려되지 않음을 의미합니다 모든 배트맨 토토가 거래를 커밋 할 때까지 커밋됩니다. 이것 장애 조치가 데이터를 잃지 않을 것이며 로드 밸런스 배트맨 토토는 상관없이 일관된 결과를 반환합니다 쿼리 된 배트맨 토토. 대조적으로, 비동기 솔루션 커밋 시간과 전파 사이에 약간의 지연을 허용합니다. 다른 배트맨 토토에게는 일부 가능성을 열어줍니다 백업 배트맨 토토로의 스위치에서 트랜잭션이 손실 될 수 있으며 로드 밸런스 배트맨 토토는 약간 오래된 결과를 반환 할 수 있습니다. 비동기 통신은 동기식이 될 때 사용됩니다 느린.
솔루션은 또한 세분성으로 분류 할 수 있습니다. 일부 솔루션은 전체 데이터베이스 배트맨 토토 만 처리 할 수 있으며 다른 사람들은 테이블 당 또는 다트베이스 별 수준에서 제어를 허용합니다.
실적은 장애 조치 또는 부하에서 고려해야합니다 균형 선택 선택. 일반적으로 사이에는 트레이드 오프가 있습니다 기능 및 성능. 예를 들어, 완전한 동기 느린 네트워크를 통한 솔루션은 더 이상 성능을 줄일 수 있습니다. 반, 비동기식은 성능을 최소화 할 수 있습니다. 영향.
이 섹션의 나머지 부분은 다양한 장애 조치를 간략하게 설명합니다. 복제 및로드 밸런싱 솔루션.
공유 디스크 장애 조치는 동기화 오버 헤드를 피합니다 데이터베이스 사본이 하나뿐입니다. 단일 디스크를 사용합니다 여러 서버에서 공유하는 배열. 메인이라면 데이터베이스 서버가 실패하고 대기 서버가 마운트 할 수 있습니다. 그리고 데이터베이스가 회복되는 것처럼 데이터베이스를 시작합니다. 데이터베이스 충돌. 이를 통해 데이터가없는 빠른 장애 조치가 가능합니다 손실.
공유 하드웨어 기능은 네트워크에서 일반적입니다 저장 장치. 네트워크 파일 시스템도 사용합니다 가능하지만 파일 시스템을 관리해야합니다. 완전한 posix 동작이 있습니다. 이것의 중요한 한계 메소드는 공유 디스크 어레이가 실패하거나 손상, 기본 및 대기 배트맨 토토는 둘 다입니다 비 기능적. 또 다른 문제는 대기 배트맨 토토입니다 기본 중에 공유 스토리지에 액세스해서는 안됩니다 배트맨 토토가 실행 중입니다.
공유 하드웨어 기능의 수정 된 버전입니다 파일 시스템 복제, 모든 파일 시스템이 변경되는 경우 다른 컴퓨터에 상주하는 파일 시스템에 미러링됩니다. 유일한 제한은 미러링을 수행해야한다는 것입니다. 대기 배트맨 토토에 일관된 사본을 갖도록하는 방법 파일 시스템의 - 구체적으로, 대기에 씁니다. 마스터와 같은 순서로 수행해야합니다. DRBD 인기있는 파일 시스템 복제 솔루션입니다 리눅스.
따뜻한 대기 배트맨 토토 (참조섹션 23.4)는 전류를 유지할 수 있습니다 WAL (Write-Ahead Log) 레코드 스트림을 읽음으로써. 만약에 기본 배트맨 토토가 실패하고 따뜻한 대기에는 거의 모든 것이 포함됩니다. 기본 배트맨 토토의 데이터 중 신속하게 만들 수 있습니다. 새로운 마스터 데이터베이스 배트맨 토토. 이것은 비동기식이며 할 수 있습니다 전체 데이터베이스 배트맨 토토에 대해서만 수행됩니다.
마스터 슬레이브 복제 설정은 모든 데이터를 보냅니다 수정 마스터 서버에 대한 수정. 마스터 서버는 비동기식으로 데이터 변경을 슬레이브로 보냅니다 섬기는 사람. 슬레이브는 읽기 전용 쿼리에 대답 할 수 있습니다 마스터 서버가 실행 중입니다. 슬레이브 서버는 이상적입니다 데이터웨어 하우스 쿼리.
Slony-I는 이러한 유형의 복제의 예입니다. 테이블 당 세분화 및 여러 노예를 지원합니다. 슬레이브 서버가 비동기 적으로 업데이트되기 때문입니다 (in 배치), 실패 중에 데이터 손실이 가능합니다.
명령문 기반 복제 미들웨어, 프로그램 모든 SQL 쿼리를 가로 채고 하나 또는 전부로 보냅니다. 서버. 각 서버는 독립적으로 작동합니다. 읽기 쓰기 쿼리는 모든 서버로 전송되며 읽기 전용 쿼리 하나의 서버로만 전송 될 수 있으므로 읽기 워크로드를 허용합니다. 배포 될 예정입니다.
쿼리가 단순히 방송되지 않은 기능, 기능인 경우
좋다random ()
, current_timestamp
및 시퀀스
서버에 다른 값이 있습니다. 이건 때문입니다
각 서버는 독립적으로 작동하며 SQL 쿼리 때문에
방송됩니다 (실제 수정 행 아님). 이것이 있다면
용납 할 수없는 미들웨어 또는 응용 프로그램이어야합니다
단일 서버에서 그러한 값을 쿼리 한 다음 사용하십시오.
쓰기 쿼리의 값. 또한,주의를 기울여야합니다
트랜잭션은 모든 서버에서 커밋하거나 중단합니다
2 단계 커밋 사용 ( 사용거래 준비andPostgreSQL : 문서. PGPOOL과 세쿼이아가 이것의 예입니다
복제 유형.
동기간 멀티 마스터 복제에서 각 배트맨 토토는 할 수 있습니다
쓰기 요청을 수락하고 수정 된 데이터가 전송됩니다
원래 배트맨 토토에서 각각의 모든 배트맨 토토로
트랜잭션이 필요합니다. 무거운 쓰기 활동으로 인해 발생할 수 있습니다
과도한 잠금으로 성능이 저하됩니다. 사실은,
쓰기 성능은 종종 단일의 성능보다 나쁩니다.
섬기는 사람. 읽기 요청은 모든 배트맨 토토로 전송 될 수 있습니다. 일부
구현은 공유 디스크를 사용하여 통신을 줄입니다
간접비. 동기간 멀티 마스터 복제가 가장 좋습니다
대부분의
배트맨 토토는 쓰기 요청을 수락 할 수 있습니다.
마스터와 슬레이브 배트맨 토토 간의 파티션 워크로드
데이터 변경이 한 배트맨 토토에서
다른 하나는 비 결정에 문제가 없습니다
와 같은 기능random ()
.
PostgreSQL그렇지 않습니다 이 유형의 복제를 제공하십시오PostgreSQL2 상 커밋 (PostgreSQL : 문서and준비)를 사용할 수 있습니다 응용 프로그램 코드 또는 미들웨어에서이를 구현하려면
정기적으로 연결되지 않은 배트맨 토토의 경우 랩톱 또는 원격 배트맨 토토로 데이터가 일관되게 유지됩니다 배트맨 토토는 과제입니다. 비동기 멀티 마스터 사용 복제, 각 배트맨 토토는 독립적으로 작동합니다 주기적으로 다른 배트맨 토토와 통신합니다 상충되는 거래를 식별합니다. 갈등은 될 수 있습니다 사용자 또는 충돌 해결 규칙에 의해 해결됩니다.
데이터 파티셔닝은 테이블을 데이터 세트로 분할합니다. 각 세트 하나의 서버 만 수정할 수 있습니다. 예를 들어, 데이터는 할 수 있습니다 사무실에서 분할됩니다 (예 : 런던과 파리 각 사무실의 서버. 런던을 결합한 쿼리 인 경우 파리 데이터가 필요하며 응용 프로그램은 두 가지를 모두 쿼리 할 수 있습니다 서버 또는 마스터/슬레이브 복제를 사용하여 각각에 대한 다른 사무실 데이터의 읽기 전용 사본 섬기는 사람.
위의 많은 솔루션을 사용하면 여러 배트맨 토토가 가능합니다 여러 쿼리를 처리하지만 단일 쿼리를 허용하지 않습니다. 여러 배트맨 토토를 사용하여 더 빨리 완료하십시오. 이 솔루션 여러 배트맨 토토가 동시에 단일에서 동시에 작동 할 수 있습니다 질문. 이것은 일반적으로 데이터를 분할하여 달성됩니다 배트맨 토토 중에서 각 배트맨 토토가 해당 부분을 실행하도록합니다. 쿼리 및 반환 결과는 결합되어 사용자에게 반환됩니다. PGPOOL-II는 이것을 가지고 있습니다 능력.
때문에PostgreSQLis 오픈 소스와 쉽게 확장 된 많은 회사들이 촬영PostgreSQL및 고유 한 상업용 폐쇄 소스 솔루션을 만들었습니다 장애 조치, 복제 및로드 밸런싱 기능.