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

25장. 고가용성, 로드 균형 조정 및 토토 결과

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

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

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

일부 솔루션은 동기식입니다. 즉, 데이터 수정 모든 서버가 완료될 때까지 트랜잭션은 커밋된 것으로 간주되지 않습니다. 거래를 커밋했습니다. 이는 장애 조치가 보장됩니다. 데이터가 손실되지 않으며 모든 로드 밸런싱된 서버가 반환됩니다. 어떤 서버를 쿼리하든 일관된 결과를 얻을 수 있습니다. 에서 대조적으로, 비동기식 솔루션은 커밋 시간 및 다른 서버로의 전파 일부 거래가 손실될 가능성이 있음 백업 서버로 전환하고 서버의 부하를 분산합니다. 약간 오래된 결과가 반환될 수 있습니다. 비동기 통신 동기가 너무 느릴 때 사용됩니다.

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

어떤 선택이든 성능을 고려해야 합니다. 일반적으로 기능과 성능 사이의 균형. 예를 들어, 느린 네트워크를 통한 완전한 동기식 솔루션은 성능이 절반 이상 감소하는 반면 비동기식은 성능에 최소한의 영향을 미칩니다.

이 섹션의 나머지 부분에서는 다양한 장애 조치에 대해 설명합니다. 토토 결과 및 로드 밸런싱 솔루션. 갑용어집또한 사용 가능합니다.

공유 디스크 장애 조치

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

공유 하드웨어 기능은 네트워크에서 일반적입니다. 저장 장치. 네트워크 파일 시스템을 사용하는 것도 가능하지만 파일 시스템이 가득 찼습니다POSIX행동 (참조섹션 17.2.1). 이 방법의 한 가지 중요한 제한 사항은 공유 디스크 어레이가 실패하거나 손상되면 기본 서버와 대기 서버가 모두 작동하지 않습니다. 또 다른 문제는 대기 서버가 절대로 액세스해서는 안 된다는 것입니다. 기본 서버가 실행되는 동안 공유 스토리지입니다.

파일 시스템(블록 장치) 토토 결과

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

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

웜 대기 서버(참조섹션 24.4)을 최신 상태로 유지할 수 있습니다. 미리 쓰기 로그 스트림을 읽음(WAL) 레코드입니다. 메인서버에 장애가 발생한 경우 웜 대기에는 거의 모든 데이터가 포함되어 있습니다. 메인서버로 빠르게 새로운 마스터로 만들 수 있습니다. 데이터베이스 서버. 이는 비동기식이며 수행만 가능합니다. 전체 데이터베이스 서버에 대해.

마스터-슬레이브 토토 결과

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

슬로니-I예시입니다 이러한 유형의 복제는 테이블별로 세분화되어 있으며, 여러 슬레이브를 지원합니다. 업데이트를 하기 때문에 슬레이브 서버를 비동기식으로(일괄적으로) 가능 장애 조치 중 데이터 손실.

문 기반 토토 결과 미들웨어

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

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

비동기 멀티마스터 토토 결과

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

동기식 멀티마스터 토토 결과

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

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

상업 솔루션

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

표 25-1나열된 다양한 솔루션의 기능을 요약합니다. 위.

표 25-1. 고가용성, 로드 밸런싱, 및 복제 기능 매트릭스

특징 공유 디스크 장애 조치 파일 시스템 토토 결과 PITR을 사용한 웜 대기 마스터-슬레이브 토토 결과 문 기반 토토 결과 미들웨어 비동기 멀티마스터 토토 결과 동기식 멀티마스터 토토 결과
가장 일반적인 구현 NAS DRBD PITR 슬로니 pgpool-II 부카르도
통신 방법 공유 디스크 디스크 블록 WAL 테이블 행 SQL 테이블 행 테이블 행 및 행 잠금
특수 하드웨어가 필요하지 않습니다.
여러 마스터 서버 허용
마스터 서버 오버헤드 없음
여러 서버를 기다리지 않음
마스터 실패는 데이터를 잃지 않습니다.
슬레이브는 읽기 전용 쿼리를 허용합니다.
테이블별 세분성
충돌 해결이 필요하지 않습니다.

위의 내용에 맞지 않는 몇 가지 솔루션이 있습니다 카테고리:

데이터 분할

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

다중 서버 병렬 쿼리 실행

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