PostgreSQL 기본강좌
Postgresql에서 Postgresql dblink 사용하기 0 0 6,583

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

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

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

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