[Postgresql] dblink 사용하기

2021. 3. 3. 12:05
728x90
 

흐릿한 이미지는 클릭하면 확대 됩니다.

 

서로 다른 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

 

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

postges=#  create extension 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 설명은 아래와 같다.

 

 

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(‘연결명’);

 

 

출처 : www.gurubee.net/lecture/2961

728x90