개발/데이터베이스

PostgreSQL FDW(Foreign Data Wrapper) 확인 점검

피터JK 2025. 4. 16. 14:29
728x90

✅ 1. 설치된 FDW 목록 확인

SELECT * FROM pg_foreign_data_wrapper;

예시 결과

oid fdwname  fdwowner fdwhandler fdwvalidator fdwacl fdwoptions
1234 postgres_fdw 1234 1234 1234    

✅ 2. 등록된 외부 서버(Foreign Server) 목록 확인

SELECT * FROM pg_foreign_server;

예시 결과

srvname srvowner fdwid srvoptions

oid srvname srvowner srvfdw srvtype srvversion srvacl srvoptions
1234 db_server 12345 12345       {host=127.0.0.1, port=5432,dbname=db}

✅ 3. 유저 매핑 정보 확인 (누가 외부에 접속하는지)

SELECT * FROM pg_user_mappings;

예시 결과

umid srvid srvname umuser usename umoptions
1234 1234 db_server 0 public {user=dbuser,password=dbuser}

✅ 4. 외부 테이블(Foreign Table) 확인

SELECT schemaname, tablename, servername
FROM information_schema.foreign_tables;

또는 FDW 전체 목록과 조인해서 보기

SELECT
    ft.foreign_table_name,
    fs.srvname AS server_name,
    fdw.fdwname AS fdw_name
FROM
    information_schema.foreign_tables ft
JOIN
    pg_foreign_table pft ON ft.foreign_table_name = pft.ftrelid::regclass::text
JOIN
    pg_foreign_server fs ON pft.ftserver = fs.oid
JOIN
    pg_foreign_data_wrapper fdw ON fs.srvfdw = fdw.oid;

✅ 외부 테이블에서 실제 옵션 보기 (DB, 테이블명 등)

SELECT relname AS table_name, ftoptions
FROM pg_foreign_table ft
JOIN pg_class c ON c.oid = ft.ftrelid;

✅ 특정 외부 테이블 정의 보기

-- 뷰처럼 보려면 \d+ 사용 (psql 터미널에서)
\d+ foreign_table_name

또는

SELECT * FROM information_schema.columns WHERE table_name = 'foreign_table_name';

💡 psql 터미널에서 FDW 빠르게 확인하는 팁

\dew        -- foreign data wrappers
\des        -- foreign servers
\deu        -- user mappings
\det        -- foreign tables

 

728x90