记一次 Centos7 PostgreSql 数据库使用FDW扩展

一、数据库搭建

1、yum 指定目录安装

https://blog.csdn.net/llwy1428/article/details/105143053

2、yum 直接安装

https://blog.csdn.net/llwy1428/article/details/102486414

3、编译安装

https://blog.csdn.net/llwy1428/article/details/95444151

4、PostgreSql 基本操作

https://blog.csdn.net/llwy1428/article/details/102598732

5、PostgreSql 数据库安装扩展

https://blog.csdn.net/llwy1428/article/details/106291669

二、安装 FDW 扩展

注意先在数据库安装 file_fdw 扩展

参考(PostgreSql 数据库安装扩展) https://blog.csdn.net/llwy1428/article/details/105167524

在指定数据库下安装 postgres_fdw 插件

Create extension "postgres_fdw"

1、切换用户

[root@localhost ~]# su - postgres
-bash-4.2$ psql

2、创建数据库   dbtest_a(数据源)、dbtest_b (目标数据库)

postgres=# create database dbtest_a owner postgres;
postgres=# create database dbtest_b owner postgres;

3、列出已创建的数据库

postgres=# \l

4、进入数据库 dbtest_a (数据源)

postgres=# \c dbtest_a
You are now connected to database "dbtest_a" as user "postgres".
dbtest_a=# CREATE SCHEMA datafrom;
CREATE SCHEMA

5、查看该数据库下所有 SCHEMA

dbtest_a=# \dn

6、在 SCHEMA  datafrom 下创建两张表

CREATE TABLE "datafrom"."user" (
  "id" varchar(20) COLLATE "pg_catalog"."default" NOT NULL,
  "name" varchar(50) COLLATE "pg_catalog"."default",
  CONSTRAINT "user_pkey" PRIMARY KEY ("id")
)
;

ALTER TABLE "datafrom"."user" 
  OWNER TO "postgres";
CREATE TABLE "datafrom"."employee" (
  "id" varchar(20) COLLATE "pg_catalog"."default" NOT NULL,
  "name" varchar(50) COLLATE "pg_catalog"."default",
	"age" varchar(2) COLLATE "pg_catalog"."default",
  CONSTRAINT "employee_pkey" PRIMARY KEY ("id")
)
;

ALTER TABLE "datafrom"."employee" 
  OWNER TO "postgres";

7、查看已创建的表

dbtest_a=# select * from pg_tables where schemaname = 'datafrom';

8、分别在表中插入数据

INSERT INTO "datafrom"."user"("id", "name") VALUES ('1', 'System');
INSERT INTO "datafrom"."employee"("id", "name", "age") VALUES ('1', '皮迪克', '3');

9、进入数据库 dbtest_b (目标数据库),并创建 SCHEMA  datato

postgres=# \c dbtest_b
You are now connected to database "dbtest_b" as user "postgres".
dbtest_b=# CREATE SCHEMA datato;
CREATE SCHEMA

10、查看已创建的 SCHEMA  

11、在数据库 dbtest_b(目标数据库) 安装 FDW 扩展

dbtest_b=# CREATE EXTENSION "postgres_fdw";
CREATE EXTENSION

12、在目标数据库 dbtest_b 中,给你现在登陆的账号赋予权限

dbtest_b=# grant usage on foreign data wrapper postgres_fdw to postgres;
GRANT

13、跟来源数据库 dbtest_a  建立连接

dbtest_b=# CREATE SERVER dbfromserver FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'x.x.x.x', port '5432', dbname 'dbtest_a');
CREATE SERVER

说明:“dbfromserver ”是我给来源数据库服务起的名字

14、给现在你登陆的用户创建来源数据库 dbtest_a 关联; options相当于给与系统后门

dbtest_b=# create user mapping for postgres server dbfromserver options(user 'postgres',password '123456');
CREATE USER MAPPING

说明:“dbfromserver ”是我给来源数据库服务起的名字;“123456” 是数据源数据库的密码。

15、在来源数据库下schema 导入目标数据库下的schema

dbtest_b=# import foreign schema "datafrom" from server dbfromserver into "datato";
IMPORT FOREIGN SCHEMA

如果是映射局部的表

IMPORT FOREIGN SCHEMA "datafrom" LIMIT TO (
  user
)FROM SERVER dbfromserver INTO "datato";

16、选择 SCHEMA datato 查看其下的所有表

17、查询数据:

可以看到  dbtest_a 数据库中 SCHEMA datafrom 中的所有表及数据被映射到了数据库 dbtest_b 下的 SCHEMA datato 中。

 

至此,Centos7  PostgreSql 数据库使用FDW扩展并使用操作完毕,希望能够对您有所帮助!

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值