PostgreSQL FDW 사용법
dblink와 차이점
이전 글:dblink에서 dblink로 했다. 둘 다 해본 결과, dblink는 테이블 하나하나씩 sql을 실행해서 링크하는 느낌이라면, fdw는 서로 연결해준다는 느낌이었다. dblink는 접속할때마다 연결 실행이 필요했는데, fdw는 한번 처음에 설정해놓으면 다음부턴 아무것도 안해도 되는게 편했다.
개발 환경은 이전 글:dblink와 같다.
환경
서버 1
연결 대상 서버
서버 2
연결 접속 서버
FDW 설치
여기서부터는 기본적으로 서버2에서만 밑 과정을 진행하면 되고, 서버1은 아무것도 할 필요없다.
postgres=> create extension postgres_fdw;
FDW 서버 생성
CREATE SERVER <서버이름> FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (
host '<서버1 ip주소>',
dbname '<서버1 데이터베이스 이름>',
port '<서버1 포트넘버>'
);
연결할 서버를 생성해준다.
유저 설정
CREATE USER MAPPING FOR <서버2 유저명> SERVER <서버이름>
OPTIONS (
user '<서버1 유저명>',
password '<서버1 패스워드>'
);
접속할 서버의 유저와, 매핑할 유저를 설정해준다.
스키마 연결
IMPORT FOREIGN SCHEMA <서버1 스키마 이름>
FROM SERVER <서버이름>
INTO <서버2 스키마 이름>;
연결할 스키마를 설정한다. 이것까지 실행하면 연결된 것을 확인할 수 있다.