通过外部表的方式连接其他postgresql服务器

install

安装相关插件 针对centos

yum install postgresql96-contrib -y

配置

查看外部表插件是否有安装

select * from pg_available_extensions;

为你所需要的数据库创建extension

create extension postgres_fdw;

查看是否有了插件

select * from pg_extension;

创建服务

create server server_remote_70 foreign data wrapper postgres_fdw options(host ‘192.168.10.8’,port ‘5432’,dbname ‘postgres’);

创建用户可以访问的外链服务

create user mapping for postgres server server_remote_70 options(user ‘postgres’,password ‘postgres’);

查看

select * from pg_user_mappings;

创建外部表

CREATE FOREIGN TABLE tbl_fdw(a int) server server_remote_70 options (schema_name ‘public’,table_name ‘tb1’);

注意这里创建外部表,需要跟对应的数据表结构保持一致

当你通过super user创建完外部表之后,需要将数据表进行赋权给其他用户

ALTER FOREIGN TABLE tbl_fdw OWNER TO new_owner

postgres=# drop foreign table tbl_kenyon;
DROP FOREIGN TABLE
postgres=# drop user mapping for postgres server server_remote_71 ;
DROP USER MAPPING
postgres=# drop server server_remote_71 ;
DROP SERVER
postgres=# drop extension postgres_fdw ;
DROP EXTENSION