database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7495 게시물 읽기
No. 7495
pgpool, slony 등의 리플리케이션 방식에 관해서...
작성자
PG입문
작성일
2008-08-14 04:19ⓒ
2008-08-14 04:28ⓜ
조회수
7,639

안녕하세요.


이번에 새 프로젝트를 시작하면서 메인 데이터베이스로 PostgreSQL을 사용하려고 합니다. 


최종 확정된 건 아니지만 강력히 주장하는 중이고 거의 확정적.. ^^;



이전까지는 mysql을 주로 사용했지만 자료의 안정성 및 무결성에 대한 보장이 이전보다 월등해진 까닭에 pgsql을 선택했는데요,


실제로 실무에서 사용하기 전에 몇가지 숙지해야 할 게 있을 것 같아서요. 


pgsql에 대한 지식은 실무에서의 사용 경험은 없지만 개인적으로 공부하다보니 경험이 있는 오라클과 상당히 비슷해서 크게 어렵진 않을 것 같습니다. -.-




MySQL의 built-in 리플리케이션은 어플리케이션을 만들면서 조회용 세션, 갱신용 세션을 상황에 따라 선택해서 쿼리를 날렸는데요..


pgsql은 built-in은 없지만 선택할 수 있는 서드파티 어플이 많더군요. 


pgpool-II, Slony, pgcluster 세개 중 하나를 사용하게 되지 않을까 싶은데 각각을 사용함에 있어 어플레키이션 레벨에서 사용방식이 틀릴 것 같아서요.


일단 Slony는 mysql의 그것처럼 필요에 따라 세션을 선택해서 사용해야 할 것 같은데 나머지 두 개는 어떤가요..?


조회시에 부하분산과 병렬처리가 가능하다는 점 때문에 pgpool이 가장 땡기긴 하는데, 이놈의 모태가 세션 풀러에서 시작됐다고 하니 참 애매합니다.


pgcluster는 멀티마스터 구조라 클러스터링에 있어서는 가장 적합할 것 같은데 이놈도 애매하구..



질문1. pgcluster, pgpool 두개 중 하나를 사용한다고 했을 때 어플리케이션에서의 처리 방식이 궁금합니다.


예를 들면 복수의 노드 중 아무거나 접속 후 하나의 세션에서 조회, 갱신등의 작업을 한다면 알아서 갱신은 master에서 하고 조회는 slave에서 하는지요..?


아니면 상황에 따라 적합한 노드에 대한 세션을 선택해서 작업해야 하는지가 궁금합니다. ^^;



질문2. 위에서 선택한 세 가지 중 복수를 동시에 사용할 수 있나요? 예를들면 실제 서비스를 위해서 pgcluster를 사용하고 


특정 하나의 노드에 Slony를 사용해서 단순 백업용 서버를 구동한다던가.. ㅎㅎ



질문3. 세가지 모두 개발이 계속 진행중인 건가요? DB는 최소 8.3.3부터 버젼업이 있을 때마다 최대한 반영할 계획입니다.


그런데.. 특히 pgcluster는 홈페이지 가보면 떡하니 Last update가 2005년 3월이던가 그렇더군요.




두서없는 글 읽어주셔서 감사합니다. 선배님들의 조언 부탁드립니다.. ^^

이 글에 대한 댓글이 총 2건 있습니다.

세 번째 질문에 대한 자답입니다. 

질문 올리기 전에도 검색을 통해 정보를 습득하고 올린 것이었는데 다시보니 좋은 정보가 있었네요.
좀 더 주의해야겠어요 ^^;;

http://pgfoundry.org/frs/?group_id=1000072

이 링크를 보니 계속 지원 중이네요.. ^^

PG입문님이 2008-08-14 04:28에 작성한 댓글입니다. Edit

1. pgcluster는 간략하게 3개의 레이어 형태입니다. 앞에 세션 컨트롤러, 클러스터 노드들, 리플리케이터 구조입니다. 맨 알의 세션 컨트롤러에 그냥 접속해서 쓰면 아무 노드나 선택되어 조회 되고 갱신하면 리플리케이터로 전달되어 클러스터 노드들로 변경이 적용됩니다 pgpool도 마찬가지로 그냥 pgpool로 접속하시면 갱신 쿼리는 2대에 전달되고 조회 쿼리는 아무놈이나 선택되어 처리됩니다. 어플리케이션에서는 접속하는 서버 정보만 변경하면 됩니다. 개발시에는 한 대만 놓고 실 서비스에만 pgpool, pgcluster를 적용해도 어플리케이션에서는 변경할 것이 서버 정보 뿐입니다.

 

2. pgcluster를 쓰신다면 모든 것이 들어있다 보시면 됩니다. 백업에 대한 대책도, 세션 컨트롤에 대한것도요. 하지만 pgpool만 쓰신다면 그 중 하나의 노드에 slony-I 을 이용해 백업을 구성하는 것도 가능합니다. pgpool의 경우 2대의 서버가 완벽하게 같은 데이터를 유지하려면 어플리케이션에서도 약간 신경 써주셔야 합니다. select 쿼리의 경우에도 함수의 호출로 데이터 변화가 일어날 수 있는데 이럴 경우 쿼리 앞에 힌트를 준다거나 그런게 있거든요. 그런거만 주의 하시면 신뢰성 있는 시스템을 구성하실 수 있습니다. 하지만 가장 신뢰성 있는 솔루션은 pgcluster입니다. 장단이 있으니 조사해 보세요~

신기배(소타)님이 2008-08-14 13:51에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7500postgresql ERdiagram 관련입니다. [1]
포스트
2008-08-18
6702
7499pgadmin III 관련입니다. [2]
유닉스
2008-08-16
7038
7497vacuum과 max_fsm_pages에 대해서... [1]
성실
2008-08-15
6745
7495pgpool, slony 등의 리플리케이션 방식에 관해서... [2]
PG입문
2008-08-14
7639
7494이중화가 가능할까요? [1]
신인식
2008-08-13
8225
7492콘솔환경에서의 select결과를 보다가 중단하려면 [2]
서정주
2008-08-12
6107
7491postgresql 명령어 관련입니다. [2]
신재근
2008-08-12
6341
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다