PostgreSQL 기본강좌
Postgresql에서 Postgresql dblink 사용하기 0 1 9,962

by PostgreSQL PostgreSQL dblink [2016.01.28]


서로 다른 DB를 연결하기 위해서는 같은 시스템 내에 있어도 dblink를 이용하여 연결해야 한다.

dblink란, 데이터베이스 세션 내에 다른 데이터베이스로의 연결을 지원하는 Extension Module을 이야기 하며 Extension Module을 사용하기 위해서는 해당 모듈을 데이터베이스에 추가하여 사용하게 된다.

아래에서는 PostgreSQL 데이터베이스와 PostgreSQL 데이터베이스간에 dblink를 사용하는 방법이다.

1. Postgresql에 extension 디렉토리에 dblink Module 이 있는지 확인

# cd /postgres/9.4/share/postgresql/extension

# ls –al | grep dblink

  • PostgreSQL-Postgresql에서 Postgresql dblink 사용하기

2. postgresql 데이터베이스에 dblink를 로드.

postges=#  create extension dblink;

  • PostgreSQL-Postgresql에서 Postgresql dblink 사용하기

  • PostgreSQL-Postgresql에서 Postgresql dblink 사용하기

3. postgreSQL 데이터베이스에 접속할 수 있도록 dblink를 등록.

postgres=# select dblink_connect('dblink-test','hostaddr=127.0.0.1 port=5432 dbname=postgres user=postgres password=password');

 dblink_connect
----------------
 OK
(1 row)

dblink_connect 설명은 아래와 같다.

select dblink_connect(‘연결명’, ‘hostaddr=서버IP, port=포트 dbname=DB명 user=계정 password=비밀번호’);

세션단위로 연결이 되기 때문에 위와 같이 connection 명을 등록하여 설정해도 세션이 끊어지면 dblink도 끊어지며 새로 다시 맺어야 한다.

4. postgreSQL 데이터베이스에서 원격지에 있는 postgreSQL 데이터베이스에서 쿼리 실행방법.

Select dblink(‘3)에서 생성한 연결명,’ 수행할 SQL문’) AS ex_t(필드명1 필드타입1, 필드명2 필드타입2, … 반환되는 필드 타입 지정);

혹은

Select dbink(‘hostaddr=서버IP, port=포트 dbname=DB명 user=계정 password=비밀번호’, ’ 수행할 SQL문’) AS ex_t(필드명1 필드타입1, 필드명2 필드타입2 … );

5. dblink 접속 제거

Select dblink_disconnect(‘연결명’);

- 강좌 URL : http://www.gurubee.net/lecture/2961

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 김상준 [2019.05.15 11:31:47]

해당 내용에 대한 질문이 있습니다.

1. 타디비를 전체 링크를 거는 것이 아닌 원하는 데이터를 쿼리문을 생성하여 만들어야 하는 것인지요?

2. 생성 후 타디비의 데이터가 갱신이 되었는데도 변화가 없는 것은 테이블로 복제가 되서 그런것인지요? 다른 방법은 없는지요?

3. 항상 생성 후 삭제를 해야 하는 것인지?

 

궁금합니다. 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입