이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.토토 사이트 : 문서 : 17 : 26 장. 고 가용성,로드 밸런싱 및 복제버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

24장. 고배트맨 토토 및 로드 밸런싱

데이터베이스 서버는 함께 작동하여 두 번째 서버가 기본 서버에 장애가 발생하면 신속하게 인계받음(높음 가용성) 또는 여러 컴퓨터가 동일한 서비스를 제공하도록 허용합니다. 데이터(로드 밸런싱). 이상적으로는 데이터베이스 서버가 작동할 수 있습니다. 원활하게 함께. 정적 웹 페이지를 제공하는 웹 서버는 다음과 같습니다. 단지 웹 요청의 로드 밸런싱을 통해 매우 쉽게 결합할 수 있습니다. 여러 기계. 실제로 읽기 전용 데이터베이스 서버는 비교적 쉽게 결합됩니다. 불행하게도 대부분의 데이터베이스는 서버에는 읽기/쓰기 요청이 혼합되어 있고 읽기/쓰기 서버가 있습니다. 결합하기가 훨씬 어렵습니다. 이는 읽기 전용 데이터이기 때문입니다. 각 서버에 한 번만 배치하면 됩니다. 나중에 읽을 수 있도록 서버를 모든 서버에 전파해야 합니다. 해당 서버에 대한 요청은 일관된 결과를 반환합니다.

이 동기화 문제는 근본적인 어려움입니다. 함께 일하는 배트맨 토토. 하나의 해결책이 없기 때문에 모든 사용 사례에서 동기화 문제의 영향을 제거합니다. 여러 가지 솔루션이 있습니다. 각 솔루션은 이 문제를 해결합니다. 문제를 다른 방식으로 해결하고 문제에 대한 영향을 최소화합니다. 특정 작업 부하.

일부 솔루션은 하나만 허용하여 동기화를 처리합니다. 데이터를 수정하는 배트맨 토토입니다. 데이터를 수정할 수 있는 배트맨 토토는 읽기/쓰기 또는 "마스터" 배트맨 토토라고 합니다. 응답할 수 있는 배트맨 토토 읽기 전용 쿼리를 "슬레이브" 배트맨 토토라고 합니다. 할 수 없는 배트맨 토토 마스터 배트맨 토토로 변경될 때까지 액세스할 수 없습니다. "대기" 배트맨 토토.

일부 장애 조치 및 로드 밸런싱 솔루션은 동기식이며, 이는 데이터 수정 거래가 고려되지 않음을 의미합니다. 모든 배트맨 토토가 트랜잭션을 커밋할 때까지 커밋됩니다. 이 장애 조치로 인해 데이터가 손실되지 않으며 모든 로드 밸런싱된 배트맨 토토는 어떤 경우에도 일관된 결과를 반환합니다. 어떤 배트맨 토토가 쿼리되는지입니다. 이에 비해 비동기식 솔루션은 커밋 시간과 전파 시간 사이에 약간의 지연을 허용합니다. 다른 배트맨 토토로 전송하여 일부 백업 배트맨 토토로 전환하는 동안 트랜잭션이 손실될 수 있습니다. 로드 밸런싱된 배트맨 토토는 약간 오래된 결과를 반환할 수 있습니다. 비동기식 통신은 동기식 통신도 사용됩니다. 천천히.

솔루션은 세부사항에 따라 분류될 수도 있습니다. 일부 솔루션은 전체 데이터베이스 배트맨 토토만 처리할 수 있지만 다른 것들은 테이블별 또는 데이터베이스별 수준에서 제어를 허용합니다.

모든 장애 조치 또는 로드 시 성능을 고려해야 합니다. 균형 선택. 일반적으로 사이에는 트레이드오프가 있습니다. 기능과 성능. 예를 들어 완전 동기식 느린 네트워크를 통한 솔루션은 다음보다 더 많은 성능을 저하시킬 수 있습니다. 절반, 비동기식은 최소한의 성능을 가질 수 있습니다 영향을 미칩니다.

이 섹션의 나머지 부분에서는 다양한 장애 조치에 대해 설명합니다. 복제 및 로드 밸런싱 솔루션을 제공합니다.

공유 디스크 장애 조치

공유 디스크 장애 조치는 다음을 통해 동기화 오버헤드를 방지합니다. 데이터베이스 복사본이 하나만 있습니다. 단일 디스크를 사용합니다. 여러 서버가 공유하는 배열입니다. 메인이라면 데이터베이스 서버에 장애가 발생하면 대기 서버를 마운트할 수 있습니다. 마치 데이터베이스를 복구하는 것처럼 데이터베이스를 시작합니다. 데이터베이스 충돌. 이를 통해 데이터 없이 신속한 장애 조치가 가능합니다. 손실.

공유 하드웨어 기능은 네트워크에서 일반적입니다. 저장 장치. 네트워크 파일 시스템을 사용하는 것도 가능하지만 파일 시스템이 완전한 POSIX 동작을 가지고 있습니다. 이것의 한 가지 중요한 한계 방법은 공유 디스크 어레이가 실패하거나 손상되었습니다. 기본 배트맨 토토와 대기 배트맨 토토가 모두 비기능적. 또 다른 문제는 대기 배트맨 토토가 기본 스토리지가 있는 동안 공유 스토리지에 액세스해서는 안 됩니다. 배트맨 토토가 실행 중입니다.

공유 하드웨어 기능의 수정된 버전은 다음과 같습니다. 파일 시스템 복제(파일 시스템의 모든 변경 사항이 다른 컴퓨터에 있는 파일 시스템에 미러링됩니다. 유일한 제한은 미러링이 다음에서 수행되어야 한다는 것입니다. 대기 서버에 일관된 복사본이 있도록 보장하는 방법 파일 시스템 - 구체적으로 대기 시스템에 기록 마스터에서와 동일한 순서로 수행되어야 합니다. DRBD 널리 사용되는 파일 시스템 복제 솔루션입니다. 리눅스.

특정 시점 복구를 사용한 웜 대기

웜 대기 배트맨 토토(참조섹션 23.4)을 최신 상태로 유지할 수 있습니다. WAL(미리 쓰기 로그) 레코드의 스트림을 읽습니다. 만약에 메인 서버에 장애가 발생하면 웜 스탠바이에는 거의 모든 것이 포함됩니다. 메인서버의 데이터를 신속하게 새로운 마스터 데이터베이스 서버. 이는 비동기식이며 다음과 같은 작업을 수행할 수 있습니다. 전체 데이터베이스 서버에 대해서만 수행됩니다.

마스터-슬레이브 복제

마스터-슬레이브 복제 설정이 모든 데이터를 보냅니다. 마스터 서버에 수정 쿼리를 보냅니다. 마스터 서버는 비동기적으로 데이터 변경 사항을 슬레이브에 보냅니다. 서버. 슬레이브는 읽기 전용 쿼리에 응답할 수 있습니다. 마스터 서버가 실행 중입니다. 슬레이브 서버는 다음에 이상적입니다. 데이터 웨어하우스 쿼리.

Slony-I는 이러한 복제 유형의 예입니다. 테이블 당 세분성 및 여러 슬레이브 지원. 슬레이브 서버를 비동기식으로 업데이트하기 때문에( 배치) 장애 조치 중에 데이터가 손실될 수 있습니다.

문 기반 복제 미들웨어

문 기반 복제 미들웨어를 사용하는 프로그램 모든 SQL 쿼리를 가로채어 하나 또는 모두에게 보냅니다. 서버. 각 서버는 독립적으로 운영됩니다. 읽기-쓰기 쿼리는 모든 서버로 전송되지만 읽기 전용 쿼리는 단 하나의 서버에만 전송할 수 있어 읽기 작업 부하가 허용됩니다. 배포 예정입니다.

쿼리가 수정되지 않은 채 단순히 브로드캐스트되는 경우, 기능은 좋아요무작위(), CURRENT_TIMESTAMP및 시퀀스는 서버마다 값이 다릅니다. 이는 다음과 같습니다. 각 서버는 독립적으로 작동하며 SQL 쿼리 때문에 브로드캐스트됩니다(실제로 수정된 행은 아님). 이것이라면 허용되지 않습니다. 미들웨어나 애플리케이션 중 하나는 다음과 같습니다. 단일 서버에서 이러한 값을 쿼리한 다음 해당 값을 사용합니다. 쓰기 쿼리의 값. 또한 주의해야 할 점은 모든 트랜잭션은 모든 서버에서 커밋되거나 중단됩니다. 2단계 커밋 사용(거래 준비그리고PostgreSQL : 문서. Pgpool과 Sequoia가 이에 대한 예입니다. 복제 유형입니다.

동기식 다중 마스터 복제

동기식 다중 마스터 복제에서 각 서버는 다음을 수행할 수 있습니다. 쓰기 요청을 수락하고 수정된 데이터가 전송됩니다. 원래 서버에서 각 서버 이전의 다른 모든 서버로 트랜잭션 커밋. 과도한 쓰기 활동으로 인해 다음이 발생할 수 있습니다. 과도한 잠금으로 인해 성능이 저하됩니다. 사실, 쓰기 성능은 종종 단일 쓰기 성능보다 나쁩니다. 서버. 읽기 요청은 모든 서버로 전송될 수 있습니다. 일부 구현에서는 공유 디스크를 사용하여 통신을 줄입니다. 머리 위. 동기식 다중 마스터 복제는 다음 경우에 가장 적합합니다. 대부분 읽기 작업 부하이지만 가장 큰 장점은 서버는 쓰기 요청을 수락할 수 있습니다. — 그럴 필요가 없습니다. 마스터 서버와 슬레이브 서버 간의 작업 부하 분할 데이터 변경 사항이 한 서버에서 다른 서버로 전송되기 때문에 또 다른 하나는 비결정론에는 문제가 없습니다. 다음과 같은 함수무작위().

PostgreSQL하지 않습니다 하지만 이러한 유형의 복제를 제공합니다.포스트그레SQL2단계 커밋(PostgreSQL : 문서 :그리고커밋 준비됨)를 사용할 수 있습니다. 애플리케이션 코드나 미들웨어에서 이를 구현합니다.

비동기 다중 마스터 복제

다음과 같이 정기적으로 연결되지 않는 서버의 경우 노트북이나 원격 서버 간에 데이터 일관성을 유지합니다. 서버는 도전입니다. 비동기 다중 마스터 사용 복제, 각 서버는 독립적으로 작동하며 주기적으로 다른 서버와 통신하여 충돌하는 거래를 식별합니다. 갈등은 다음과 같습니다. 사용자 또는 충돌 해결 규칙에 따라 해결됩니다.

데이터 분할

데이터 분할은 테이블을 데이터 세트로 분할합니다. 각 세트 하나의 서버에서만 수정할 수 있습니다. 예를 들어 데이터는 다음과 같습니다. 사무실별로 구분되어 있어야 합니다. 런던과 파리, 각 사무실에 서버가 있습니다. 런던과 파리 데이터가 필요하며 애플리케이션은 두 데이터를 모두 쿼리할 수 있습니다. 서버 또는 마스터/슬레이브 복제를 사용하여 각 사무실에 있는 다른 사무실 데이터의 읽기 전용 복사본 서버.

다중 배트맨 토토 병렬 쿼리 실행

위의 솔루션 중 다수는 여러 서버를 허용합니다. 여러 쿼리를 처리하지만 단일 쿼리는 허용하지 않습니다. 더 빠르게 완료하려면 여러 서버를 사용하세요. 이 솔루션 여러 서버가 단일 시스템에서 동시에 작동할 수 있도록 합니다. 쿼리. 이는 일반적으로 데이터를 분할하여 수행됩니다. 서버들 사이에서 각 서버가 자신의 일부를 실행하도록 함으로써 쿼리하고 결과를 중앙 서버로 반환합니다. 결합되어 사용자에게 반환됩니다. Pgpool-II에는 다음이 있습니다. 능력.

상업 솔루션

왜냐하면포스트그레SQL입니다 오픈 소스이며 쉽게 확장할 수 있으며 많은 회사에서 촬영됨PostgreSQL그리고 독창적인 상용 폐쇄 소스 솔루션을 만들었습니다. 장애 조치, 복제 및 로드 밸런싱 기능.