본문 바로가기

IT/DB

[postgresql] postgresql HA정리

Postgresql HA구성


http://blog.naver.com/hdlee91?Redirect=Log&logNo=150137246615

공유 디스크를 이용한 콜드 스탠바이 형태
Cold Standby형태
http://blog.naver.com/hdlee91?Redirect=Log&logNo=150137246615

.1 공유 디스크를 이용한 콜드 스탠바이 형태

그림 1은 공유 디스크를 이용한 콜드 스탠바이 형태의 구성을 보여줍니다.

그림 1 : 공유 디스크를 이용한 콜드 대기 형 HA 클러스터
 
공유 디스크를 이용한 콜드 대기 형식은 가장 많이 사용되고있는 고가 용성 클러스터입니다. 데이터베이스는 "공유 디스크"에 저장합니다. 공유 디스크는 여러 서버에서 읽고 쓸 수 있도록되어있는 스토리지입니다.
이 방식은 현재 사용중인 시스템 (ACT라는 수 있습니다)라는 한 개의 서버가 공유 디스크를 사용하여 데이터베이스를 운전합니다. 서버 장애로 다운되면 다른 컴퓨터 (예비 계, SBY이라고합니다)을 공유 디스크를 이어 데이터베이스의 운전을 계속합니다.
이 방식의 장점은 데이터베이스 자체에 고가 용성 기능이없는 경우에도 외부 미들웨어 고가 용성 기능을 가질 수 있습니다.
반면 단점은 데이터베이스 서버 충돌을 감지하거나 공유 디스크 복구에 시간이 소요될 것입니다.또한 예비 계 서버가 공유 디스크를 인수할 때 현재 사용중인 시스템의 서버가 공유 디스크를 사용하지 않는 것을 확인하는 수단이 필요합니다. 또한 현재 사용중인 시스템을 운용하고있는 동안 예비 시스템이 유휴 상태가되어 버립니다 * 1 .
[* 1] 여러 서버가 서로의 예비 계가되는 "상호 대기"라고하는 구성도 있습니다. 이 경우 장애 발생시 여러 기능을 하나의 서버에서 제공하는 것입니다.
공유 디스크가 단일 장애 지점이되지 않도록하려면 공유 디스크 자체의 하드웨어를 올바르게 구성해야합니다.
이 방식의 고려 사항은 대부분의 경우, 현재 사용중인 시스템이 충돌했을 때 실행중인 트랜잭션이 손실되어 버리는 것입니다.


1 처음에는 단일 마스터 복제
처음 등장했다 "PostgreSQL 클러스터"는 " Slony "라고 부르는 단일 마스터 복제 소프트웨어였습니다. 복제는 전체 데이터베이스의 복사본입니다. 이것을 고가 용성 (HA) 확보 및 성능 향상에 사용할 수 있습니다.
Slony 버전 1.0이 발표된 것은 2004 년입니다. 6 년 전에합니다. Slony는 트리거 메커니즘을 사용하여 데이터베이스 변경을 감지하고이를 복수의 슬레이브에 전달합니다. 이것은 하나의 마스터를 이용하여 복수의 슬레이브에 데이터베이스 복사본을 둘 수있게되어 있습니다. 그림 1에 그 개요를 나타냅니다.

그림 1 : Slony-1 개요
 
Slony의 특징은 원리가 단순 점에서 PostgreSQL 본체의 개조도 불필요하고, 또한 각 슬레이브에 대한 참조의 SQL을 실행하는 것입니다. 클러스터 전체의 일관성이 문제가되지 않는 경우 슬레이브로 직접 데이터를 업데이트할 수 있습니다.
마스터에서 슬레이브로 데이터 전송이 비동기적으로 수행되므로 주인이 충돌하여 원래의 데이터베이스 업데이트 정보가 분실, 노예 같은 일이 버립니다. 이러한 제약이 있지만, 간편하게 사용할 수 있기 때문에 현재에도 복제를 필요로하는 많은 응용 프로그램에서 사용되고 있습니다.
[출처] PostgreSQL에서 제공하는 데이터베이스 클러스터 - 제 2 회 PostgreSQL 클러스터 동향 (1)|작성자 꿈돌이

PostgreSQL에서 제공하는 데이터베이스 클러스터 - 제 3 회 주요 PostgreSQL 클러스터 (1)   Postgresql 일반 
2012/04/26 10:37
http://blog.naver.com/hdlee91/150137247929
참조 : http://thinkit.co.jp/book/2010/10/05/1785

시작하기
이번에는 많은 PostgreSQL 클러스터에서 대표적인 4 개의 소프트를 소개합니다.
Slony-I
pgpool-II
Streaming Replication
Hot Standby
1. Slony-I
Slony-I 은 가장 초기에 개발된 PostgreSQL 클러스터입니다. 제 1 회 의 분류에서는 단일 마스터 형식에 해당합니다. 개발한 것은 PostgreSQL의 핵심 멤버인 Jan Wieck 씨로, 현재 버전은 2.0.4입니다.
그림 1은 Slony-I의 동작 개요를 제공합니다. Slony-I는 "트리거"라는 기술을 사용하고 있습니다.이것은 테이블의 행을 작성 · 갱신 · 삭제하는 장면에서 사용할 수 있습니다. 행이 작성 · 갱신 · 삭제되는 때 특정 기능 (트리거)가 호출되도록되어 있습니다.

그림 1 : Slony-I의 동작 원리
 
Slony-I에서는 테이블의 데이터가 변경될 때마다 변경 내용을 트리거를 사용하여 별도의 전용 테이블에 기록합니다 (그림에서 "업데이트 데이터"). 업데이트 데이터 기록은 원본 트랜잭션과 동일한 트랜잭션에서 실행합니다. 따라서 업데이트 데이터 쓰기만이 실패하지 않습니다. 원래 테이블의 갱신 이력과이 업데이트 데이터의 내용은 정확하게 일치합니다.
업데이트 데이터는 별도의 데몬 프로세스 (이름은 slone)를 사용하여 슬레이브로 전송됩니다. 슬레이브 전용 프로세스 (이름은 slonik)가이 데이터를 수신하고 슬레이브 테이블의 데이터를 업데이 트합니다.
주목해야 할 점은 마스터에서 슬레이브로 전송되는 테이블의 정보가 PostgreSQL의 내부 구조를 사용하지 않고 테이블의 행 데이터를 텍스트로 표시 수준이되어있는 것입니다 (모든 것이 반드시 텍스트 라고하지는 않습니다.)
또한, 업데이트, 모든 테이블에 대해 무조건 만드는 것은 없습니다. 특정 테이블의 데이터를 선택하여 만들 수 있습니다. 업데이트 데이터 전송도 특정 테이블만을 선택하여 수행할 수 있습니다.
이러한 내부 동작이되어 있기 때문에 Slony-I는 다음과 같은 특징이 있습니다.
마스터와 슬레이브로 사용할 PostgreSQL 버전을 맞출 필요가 없습니다. 데이터베이스 바이너리 레벨의 호환성이 필요 없기 때문에 쌍방의 PostgreSQL 버전이 다른 경우에도 작동합니다.슬레이브 버전이 마스터보다 오래된있어도 상관 없습니다.
필요한 테이블의 갱신 정보만을 선택, 복수의 슬레이브에 보낼 수 있습니다. 용도별로 여러 데이터베이스를 작성하는 경우에도 일반적인 데이터 Slony-I의 주인 관리 두어, 이것을 각 응용 프로그램 데이터베이스에 전달할 수 있습니다.
슬레이브로 작동하는 PostgreSQL은 특별한 것이 없습니다. 일반적인 SQL 문을 사용하여 데이터를 볼 수 있습니다. 예를 들어, 위의 2의 경우와 같이 응용 프로그램으로 문제가 없다면, 슬레이브는 업데이트 SQL 문장을 실행할 수도 자유롭게 할 수 있습니다.
마스터에서 생성되는 업데이트 데이터는 원본 테이블의 업데이트 내역과 정확히 일치합니다. 따라서 비록 주인이 충돌해도 나중에 복구 가​​능하면 업데이트 정보는 빠지지 않고 노예로 보낼 수 있습니다. 현실 적으로는 마스터에서 사용하는 스토리지가 충분히 신뢰할 수있는 경우 데이터베이스가 손실 가능성은 거의 없습니다. 따라서 시간적인 차이는 있지만, 슬레이브에는 틀림없이 업데이트 데이터를 전달할 수 있습니다.
한편, 다음 사항을 고려할 필요가 있습니다.
마스터에서 슬레이브로 업데이트 데이터 전송은 마스터 측에서 데이터 업데이 트가 완료 조금 나중에 실행됩니다. 이 시간은 대부분의 경우 (마스터와 슬레이브 모두의 부하 상태에 따라)는 실용상 무시할 수있는 범위 (1 초 이하)입니다. 그러나 업데이 트를 참조 가능하게되는 시간을 마스터와 슬레이브로 차이가 곤란 경우는주의가 필요합니다.
테이블 구조를 변경하는 경우 (예 : 줄에있는 컬럼을 추가하는 경우) 나 새로 테이블을 만든 경우이 결과가 자동으로 슬레이브에 반영되지 않습니다. 수동 작업이 필요합니다 (현재 PostgreSQL 본문에서 테이블 구조를 변경했을 때 트리거를 정의할 수 있도록하는 계획이 있습니다.이 DDL (데이터 정의 언어) 트리거라고합니다. DDL 트리거를 이용됩니다 경우이 제한을 해결할 수 있습니다.)
Slony-I은 충돌 주인을 대신하여 슬레이브 데이터베이스를 이어 운용할 수있는 HA (고가 용성) 기능으로 개발되었습니다. 그러나이 HA 기능 이외에도 일반 데이터를 수집 관리하고 배포하는 등 유연한 사용이 가능합니다.
[출처] PostgreSQL에서 제공하는 데이터베이스 클러스터 - 제 3 회 주요 PostgreSQL 클러스터 (1)|작성자 꿈돌이

// pgpool2 설정
http://www.pgpool.net/pgpool-web/contrib_docs/watchdog/en.html

등록일시
2012.09.04 21:50 (업로드 2012.09.04 21:50)
공개권한
전체공개
태그
#DBMS