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 Tutorials 5520 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 5520
Slony-I의 Slonik명령에 대해 정리해보았습니다.
작성자
천주현(gaia94)
작성일
2004-09-03 16:25
조회수
6,111

신기배님과 박성철님에게 은덕에 힘입어 저 나름데로 노력해서 도움이 될만한 글을 올립니다.

컬럼에 올리고 싶었는데 권한이 없어서 여기로 올리네요.

이글은 일본어 사이트에 있는 글을 저 나름데로 번역해서 올리는 글입니다.

도움이 되실 것 같으면 다른사람이 볼수 있도록 컬럼란에 올려주시기 바랍니다.

원본사이트:http://pcweb.mycom.co.jp/column/yetanother/032/

 


slonik <<_EOF_

cluster name = $CLUSTERNAME;

node 1 admin conninfo = 'dbname=$DB1 host=$HOST1 user=$RUSER';

node 2 admin conninfo = 'dbname=$DB2 host=$HOST2 user=$RUSER';

[cluster name]은 반드시 선두에 기술한다. 이것은 리플리케이션하는 데이타베이스 그룹의 이름이된다. 다음2행은 [admin conninfo]명령어이다. 이것은 이 스크립트를 실행하는 호스트로부터 각데이타베이스노드에 어떤식으로 접속할까를, PostgreSQL의 클라이언트API인libpq라이브러리의 PQconnectdb함수와 같은서식으로 기술한다. 즉, 이 정보만 정확하게 기술 되어있고, slonik명령이 인스톨 되어있으면, 리플리케이션하는 데이타베이스 서버와는 별도의 호스트상에서 실행해도 괜찮다.

 

init cluster ( id=1, comment = 'Master');

[init cluster]은 클라스터의 최초의 노드의 초기화를 실행한다. "id"는 "1"을 지정하지않으면 안되는것에 주의하자. "comment"는 Slony-I가 작성하는 관리용의 스키마상에 작성되는 "sl_node"테이블에 등록되는 코멘트이다. psql에서 slmaster에 접속하여, 다음과같이 검색하면 참조가 가능하다.

slmaster=# select * from _클러스터이름.sl_node;

no_id | no_active | no_comment

-------+-----------+------------

1 | t | Master

2 | t | Slave

(2 rows)

 

create set (id=1, origin=1, comment='All tables');

클라스터를 초기화하면, 다음은 Slony-I가 리플리케이션 해야만 하는 테이블을 통합해서 관리하는 단위인 [세트]를,  [create set]로 작성한다. 세트에는 반드시 한개의 "origin", 즉, 기둥이되는 노드가 있다. 한편, "origin"부터 데이타를 받는쪽은 "subscriber"라고 부른다. "origin"은 일반적으로는 [마스타]와 같은 뜻이지만, Slony-I에서는 한 노드가 셋트의 "origin"이면서, 별도의 셋트의 "subscriber"로 될수도 있으므로, 혼란하지 않도록 주의가 필요하다

 

set add table (set id=1, origin=1, id=1, fully qualified name = 'public.member', comment='member');

셋트에 테이블을 추가하는것은 [set add table] 명령을 사용한다. 여기에서 "public"스키마의 "member"테이블을 추가하고있다. 복수의 테이블을 셋트에 추가하고 싶으면, [set add table]를 테이블 수만큼 기술할 필요가 있다.

 

store node (id=2, comment = 'Slave');

[store node]는 2번쨰이후의 노드를 클라스터에 추가한다. 이번에는 단순한 마스터, 슬레이브에서의 테스트이므로, 슬레이브노드를 하나만 추가하고 있다.

 

store path (server = 1, client = 2, conninfo='dbname=$DB1 host=$HOST1 user=$RUSER');

store path (server = 2, client = 1, conninfo='dbname=$DB2 host=$HOST2 user=$RUSER');

[store path]는, 각 slon데문이 상호통신이 가능하도록 접속의 방법을 설정하는 명령이다. [admin conninfo]는 관리용의 호스트로부터 각 노드에의 접속이지만, [store path]는 노드사이의 통신을 위해 설정하는것이다.

 

store listen (origin=1, provider = 1, receiver =2);

store listen (origin=2, provider = 2, receiver =1);

각 노드는 상호의 이벤트를 감시하고, 상호확인하면서 동기를 한다. [store listen]는 "receiver"(클라이언트)로부터 "provider"(서버)에대해서, 여러가지 이벤트에 관한 질의,확인을 할수있도록 한다.

또한가지, 슬레이브측에서 실행한 스크립트에는, 이하와 같이 기술 되어있다. 실은 이 스크립트도 특별히 슬레이브 쪽에서 실행할 필연성은 없고, admin conninfo가 확실히 설정되어있으면 리플리케이션노드이외의 호스트에서 실행해도 괜찮다.

 

subscribe set ( id = 1, provider = 1, receiver = 2, forward = no);

[subscribe set] 는 "origin"에 대한"subscriber"를 설정하고, 데이터의 리플리케이션을 개시하는 명령어다. "provider"에는 데이타의 공급원이 되는 노드, "receiver"에는 데이타의 복제를 하게될 노드의 ID를 기술한다. "receiver"가, 게다가 다른 노드에 대한 데이타의 공급원이 되는 [Cascade]를 실행하는 경우는 "forward"를 "yes"로 설정하는면 될것이다.

 

이상이 이번에 사용한 slonik의 명령어이다. 보다 상세한 정보는 Slony-I의 배포 화일중에, doc/howto디렉토리에있는 [slonik_commands.html]에 기술되어있으므로, 흥미가 있는 사람은 참고하기 바란다.

 

___________________________________________________________________________________

이상입니다.  더이상 자세한건 저도 잘 모릅니다.

By 천주현.

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

좋은 글 감사 합니다.

 

이 내용은 Tutorials 란으로 옮겨 놓겠습니다.

보다 많은 사람들이 참조할 수 있을 것 같습니다. ^^;

정재익(advance)님이 2004-09-04 16:05에 작성한 댓글입니다.

좋네여 ㅎㅎ

이런 문서는 위키화 되면 딱 좋을 문서네요 ^^;

신기배(소타)님이 2004-09-05 14:49에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5565배열컬럼
신기배
2004-10-01
5830
5564View와 Rule을 이용한 View 갱신
신기배
2004-10-01
5791
5563Listen과 Notify를 이용한 데이터 동기화
신기배
2004-10-01
5560
5520Slony-I의 Slonik명령에 대해 정리해보았습니다. [2]
천주현
2004-09-03
6111
5502SSL 보안 PostgreSQL 서버 운영하기 [1]
김상기
2004-08-25
11901
5421Slony-1을 이용한 멀티 슬레이브 리플리케이션 [1]
신기배
2004-07-22
6950
5411connectby 함수 사용하기
김상기
2004-07-16
6570
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다