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 6703 게시물 읽기
No. 6703
[두가지 질문] multi 자료 insert하기 와 Slony-1관련질문입니다.
작성자
전종대(taegukper)
작성일
2006-05-24 20:27
조회수
3,655

1. multi 자료를 insert하기

오라클에서는 스트럭처를 하나 잡고, 그 스트럭쳐에 해당 테이블의 자료를 여러개 집어넣어 한꺼번에 insert하는 프로그램을 C로 여러번 짜보았습니다.

postgresql에서는 이런 기능을 지원하지않는지요.

이것 저것 찾아보니 large object와 copy라는 것이 있긴 하던데...

large object는 파일에서 하나의 로우를 읽어서 insert하는 지라 i/o에 부담이 크구...

copy도 tab으로 구분된 하나의 문자열만을 insert하는 지라 그것두 부담이 큰거 같구.

(이것 저것 얇게 알아봐서리...잘못된 지식인가요? ^^;;)

멀티Row의 자료를 스트럭처에 잡아서 한방에 insert해버리는 것은 없나요???

 

2. Slony-1인가? 하는 툴(???)은 두대의 서버에 각각 설치된 postgresql에 자료를 동기화 해줄수 있다는 글이 많이 보이는군요...성공하신 분도 있으시구요...

현재 환경은 두대의 서버에 postgresql이 설치되구...두 서버에 생성된 동일한 table의 자료를 서로 sync를 맞추어야 합니다...

혹시 이런 기능도 되나요?

된다면...Slony-1이 Freeware인지가 강권인듯 합니다...

 

이상의 질문에 답변부탁드립니다...

 

그럼 오늘도 깔끔한 마무리 하세요...(--)(__)(--)

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

COPY 관련 libpq사용법은 http://database.sarang.net/database/postgres/manual/manual-8.0/libpq-copy.html 를 보시면 되겠구요.

2차원 배열을 넣어서 데이터를 넣는것은 따로 구현을 하셔야 할 것 같습니다.

하지만 구현하실 때 분명히 새로운 버퍼를 만들어서 탭과 줄바꿈으로 구분하셔서 넣어야 하니 그게 또 부담이 되실텐데요

prepared statement 로 푸시면 메모리 할당 없이 풀어낼 수도 있을듯 합니다.

prepared statement 관련 함수도 여러가지가 있습니다.

http://database.sarang.net/database/postgres/manual/manual-8.0/libpq.html

를 보시면 함수 원형들과 샘플 프로그램이 있습니다~

pgPrepare 던가로 prepared statement를 만들고 거기에 데이터들을 넣는 방식입니다.

하지만 입력 속도로는 COPY 계열을 쓰시는게 제일 빠릅니다.

 

slony-I 는 BSD라이센스로 완전! 자유롭습니다. 그리고 DB 미러링은 pgpool도 지원합니다. 고가용성을 위한 pgcluster도 있습니다. 모두 프리입니다.

신기배(소타)님이 2006-05-24 20:44에 작성한 댓글입니다.
이 댓글은 2006-05-24 20:52에 마지막으로 수정되었습니다.

감사합니다. 신기배 님...답변 정말 감사합니다.

오라클만 열라 쓰다가...Postgresql로 갑자기 전양하니 갈팡질팡이군요.

copy랑 prepare랑 건 by 건으로 입력하는 것은 일단 테스트를 해보고

성능이 괜찮은 놈을 쓰는게 맞을 거 같군요...

님의 말씀데로라면...copy라는 넘을 쓰는게 맞을 거 같군요.

 

두번째루 DB미러링은...양쪽 서버에 있는 두개의 postgresql의 동일한 테이블을 양방향으로 동기화를 해야합니다...

언뜻 보니 단방향만 된다는 이야기가 있던데요...

master 시스템에서 slave 시스템으로요...

어떤 것이 맞는지 모르겠군요....단방향이면 사용이 불가능할 듯합니다.

그리구 pg_copy가 기능제한이 좀 있다는 식의 글들이 상당히 있더군요.

그래서 slony-1으로 DB미러링을 사용한다구 하던데....

이넘이 단방향이라는 글이 있습니다...

한시라두 빨랑 적용해서 테스트 해야하는 지라...

이렇게 무뢰를 무릎쓰고 물어봅니다...

 

답변부탁드립니다...

경험있으신 고수님들의 답변...

한시 바삐 받아보고 싶군요...

그럼 좋은 하루 마무리하세요

 

 

 

전종대(taegukper)님이 2006-05-24 21:01에 작성한 댓글입니다.

자료의 escape만 잘 해주면 COPY 를 사용하실 때 아무런 문제가 없습니다~

slony-I 는 하나의 마스터 -> 여러개의 슬레이브로 미러링 되는 구조입니다.

말씀하신 양쪽 서버의 pgsql이 서로 업데이트와 그 갱신을 공유해야 한다면 그건 멀티 마스터라고 하는데 클러스터링 개념입니다.

pgcluster 라는 놈을 쓰셔야 합니다.

http://pgcluster.projects.postgresql.org/

pgcluster에는 로드밸런서, pgsql 노드, 리플리케이터가 있어서 여러개의 pgsql 서버를 동기화 하고 조회 부하를 분산시킵니다. 큰 규모에서는 이것을 택하시는게 좋습니다.

신기배(소타)님이 2006-05-24 21:37에 작성한 댓글입니다.

감사합니다...

postgresql에 대해 전혀 지식이 없는 저에게 이렇게 문제를 풀수 있는 시작점을 주시니 감사합니다..

매번 느끼는 거지만 이분야에...신기술은 넘쳐나구 학습할 시간은 짧은듯 합니다.(개발기간에 쫒기다보면...대충 쓰게 되더라구요..^^;;)

에구...잠자는 시간을 줄여야하는지...--;; 집두 먼데...--;;

그럼 좋은 밤 되세요들...

 

전종대님이 2006-05-24 22:04에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6707버전 인식 문제... [1]
김영일
2006-05-30
3176
6706한글 삽입시 [2]
궁금이
2006-05-26
3610
6704이런 황당한??? 분명파일이 있는데 코맨드가 안되네요... [2]
김명범
2006-05-25
2626
6703[두가지 질문] multi 자료 insert하기 와 Slony-1관련질문입니다. [4]
전종대
2006-05-24
3655
6702. [1]
김재국
2006-05-24
2963
6700pg_dump 에러 - 편집기 글씨가 깨져서 에러 내용만 올립니다. 고수님들 조언부탁 [1]
테루
2006-05-24
2885
6699아랫글에 대한 보충 설명 붙였습니다. [4]
DB초보
2006-05-24
3135
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다