1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

Postgres-FDW部署及配置

概述

FDW是Foreign Data Wrapper的一个简称,可以叫做外部封装数据。postgres_fdw实现的是各个PostgreSQL数据库及远程数据库之间的跨库操作,同时支持与其他数据库进行外表查询。如使用oracle_fdw可与Oracle数据库进行数据访问,本文介绍Postgres-FDW部署及配置实现两个PostgreSQL数据库之间进行数据访问。

Postgres-FDW部署及配置

拓扑结构

服务器配置:

主机 IP 端口
Pg1 192.168.18.11 15432
Pg2 192.168.18.12 15432

数据库配置:

  1. 配置Pg2
    (1) 创建数据库账号pg_fw2
    psql -h Pg2 -p 15432 -d postgres
    CREATE ROLE pg_fw2 WITH LOGIN PASSWORD ‘pg_fw2’;
    GRANT ALL PRIVILEGES ON DATABASE postgres TO pg_fw2;
    (2) 建立两个表:t1,t2
    psql -h Pg2 -p 15432 -d postgres -U pg_fw2
    CREATE TABLE t1 (id int, name varchar(20));
    CREATE TABLE t2 (id int, name varchar(20));
  2. 配置Pg2:pg_hba.conf,允许Pg1使用账号pg_fw2访问Pg2,必须使用md5认证方式
    host  postgres  pg_fw2  pg1  md5
  3. 在Pg1上,以pg_fw2身份,创建表:t1,t2
    psql -h Pg2 -p 15432 -d postgres -U pg_fw2
    CREATE TABLE t1 (id int, name varchar(20));
    CREATE TABLE t2 (id int, name varchar(20));
  4. 配置Pg1
    (1) 创建数据库账号’pg_fw1′
    (2) 建立一个本地表t0,两个外表:fw_t1,fw_t2,分别指向Pg2上的t1,t2
    (3) 安装postgres-fdw扩展,创建数据库账号pg_fw1
    psql -h Pg1 -p 15432 -d postgres
    create extension postgres_fdw;
    CREATE ROLE pg_fw1 WITH LOGIN PASSWORD ‘pg_fw1’;
    GRANT ALL PRIVILEGES ON DATABASE postgres TO pg_fw1;
    GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO pg_fw1;
    (4) 创建FDW服务器、用户映射、外部表
    –外表t1,t2对应关系:Pg1.fw_t1—>Pg2.t1,Pg1.fw_t2—>Pg2.t2
    创建fdw服务器:
    CREATE SERVER fw_pg2 FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host ‘192.168.18.12’, port ‘15432’, dbname ‘postgres’);
    创建用户映射:
    CREATE USER MAPPING for pg_fw1 SERVER fw_pg2 OPTIONS (user ‘pg_fw2’, password ‘pg_fw2’);
    创建外部表fw_t1:
    CREATE FOREIGN TABLE fw_t1 (id int, name varchar(100)) SERVER fw_pg2 OPTIONS (schema_name ‘public’, table_name ‘t1’);
    创建外部表fw_t2:
    CREATE FOREIGN TABLE fw_t2 (id int, name varchar(100)) SERVER fw_pg2 OPTIONS (schema_name ‘public’, table_name ‘t2’);

更多精彩干货分享

点击下方名片关注IT那活儿。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6076.html