PostgreSQL的fdw实现的功能是各个postgresql数据库及远程数据库之间的跨库操作,功能和oracle的dblink一样。 本文中的环境如下图所示:

一、创建PostgreSQL FDW

1.1、目标端安装软件包

[root@hdp06 ~]# yum -y install postgresql10-contrib.x86_64

1.2、目标端创建用户

这里的源端不需要创建用户。因为源端已经存在了一个rhnuser用户,直接使用。根据实际情况赋予用户权限,一般就是select、update、delete以及insert。这里的用户已经拥有这些权限了,所以不需要再赋予权限。

postgres=# CREATE USER rhnadmin WITH password 'redhat' CREATEDB SUPERUSER replication bypa***ls createrole login;

1.3、目标端安装Postgres_fdw

postgres=# create extension postgres_fdw;
CREATE EXTENSION
postgres=# \dx postgres_fdw

1.4、赋予用户权限

postgres=# grant usage on FOREIGN DATA WRAPPER postgres_fdw to rhnadmin;

1.5、创建服务器定义

postgres=# CREATE SERVER rhnsrv FOREIGN DATA WRAPPER postgres_fdw OPTIONS (dbname 'rhnschema', host 'oln', port '5432');
postgres=# GRANT USAGE ON FOREIGN SERVER rhnsrv TO rhnadmin;

1.6、创建用户映射

rhnschema=# CREATE USER MAPPING for rhnadmin SERVER rhnsrv OPTIONS (user 'rhnuser', password 'redhat');

1.7、修改pg_hba文件

如下图所示,允许特定网段的机器访问。这里全部放开。

1.8、导入源端schema

rhnschema=# IMPORT FOREIGN SCHEMA "public" FROM SERVER rhnsrv INTO public;
ERROR:  type "public.evr_t" does not exist
--首次导入报错了,因为目标端没有创建evr_t类型,使用下面的语句创建类型再次导入。
rhnschema=# CREATE TYPE evr_t AS (epoch character varying(16),version character varying(512),release character varying(512));
rhnschema=# ALTER TYPE public.evr_t OWNER TO rhnadmin;
rhnschema=# IMPORT FOREIGN SCHEMA public FROM SERVER rhnsrv INTO public;
IMPORT FOREIGN SCHEMA

如果只想导入个别表,需要使用下面的语法:

rhnschema=# IMPORT FOREIGN SCHEMA "public" limit to (rhnpackagefile) FROM SERVER rhnsrv INTO public;

1.9、查询验证

导入完成后,可以查询pg_foreign_table表,获取已导入的表名称信息:

rhnschema=# select *from pg_foreign_table;
rhnschema=# select *from log limit 20;

二、创建MySQL FDW

2.1 安装MySQL FDW软件包

这里使用官方提供的二进制rpm软件包,使用yum直接安装:

[root@pg07 extension]# yum -y install mysql_fdw_10.x86_64

2.2 添加MySQL FDW组件

postgres=# create extension mysql_fdw;
postgres=# \dx mysql_fdw

2.3 创建MySQL服务器定义

postgres=# create server my_srv foreign data wrapper mysql_fdw options (host '192.168.120.91', port '3306');

2.4 赋予用户权限

postgres=# GRANT USAGE ON FOREIGN SERVER my_srv TO postgres;

2.5 创建用户映射

postgres=#  CREATE USER MAPPING for postgres SERVER my_srv OPTIONS (username 'root', password 'abcABC@12');

2.6 导入MySQL对象

postgres=# import foreign schema hjy from server my_srv into public;

2.7 查询验证

postgres=# select *from pg_foreign_table;

PostgreSQL之Foreign Data Wrappers使用指南相关推荐

  1. Foreign data wrappers

    转载地址:https://wiki.postgresql.org/index.php?title=Foreign_data_wrappers&spm=a2c6h.12873639.0.0.68 ...

  2. GBase 8c支持Foreign Data Wrappers

    GBase 8c支持Foreign Data Wrappers(FDW).GBase 8c通过FDW支持用户通过SQL查询访问数据库集群之外的数据.FDW功能提供一套编程接口,用户可以进行插件式的二次 ...

  3. iOS Core Data 数据迁移 指南 144 作者 一缕殇流化隐半边冰霜 关注 2016.05.09 00:35* 字数 4718 阅读 2931评论 17喜欢 327 前言 Core

    iOS Core Data 数据迁移 指南 作者 一缕殇流化隐半边冰霜 关注 2016.05.09 00:35* 字数 4718 阅读 2931评论 17喜欢 327 前言 Core Data是iOS ...

  4. data studio_面向营销人员的Data Studio —报表指南

    data studio In this guide, we describe both the theoretical and practical sides of reporting with Go ...

  5. Tensorflow: tf.data性能设计指南

     GPU 和 TPU 可以从根本上缩短执行单个训练步骤所需的时间.为了实现最佳性能的目的,我们需要一个高效的输入管道用于在当前步骤完成前为下一步骤提供数据.tf.data API 有利于构建灵活高效的 ...

  6. 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南

    1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...

  7. WPF中的Data Binding调试指南

    点击蓝字"大白技术控"关注我哟 加个"星标★",每日良时,好文必达! WPF中的Data Binding如何Debug? 大家平时做WPF开发,相信用Visua ...

  8. Data Binding 用户指南(Android)

    1. 介绍 这篇文章介绍了如何使用Data Binding库来写声明的layouts文件,并且用最少的代码来绑定你的app逻辑和layouts文件. Data Binding库不仅灵活而且广泛兼容- ...

  9. 将您的SQL Server工作负载迁移到PostgreSQL –第2部分

    目录 SQL Server vs PostgreSQL 并发控制 SQL Server并发控制 PostgreSQL并发控制 数据库结构 T-SQL与PL/pgSQL PostgreSQL具有更完善的 ...

  10. Postgresql 9.3外部数据封装的新功能

    2019独角兽企业重金招聘Python工程师标准>>> 这周postgresql发布了9.3正式版,该版本包含可写的外部数据封装.数据页 checksums.快速的故障转移以及 st ...

最新文章

  1. ConstraintLayout 实现水平方向 权重 效果
  2. java 从mysql 导出到excel_JAVA实现在数据库导出到EXCEL并下载
  3. NFS挂载的问题svc: failed to register lockdv1 RPC service
  4. 中间表增加额外字段_知识分享 I 这样显示报表筛选字段 你学会了吗
  5. 【JavaScript脚本】——T1基本语法——重点笔记
  6. Memory与Merge特性
  7. 排序和去重--说说两个简单常用的算法
  8. Nike Air Jordan Sneakers
  9. CreateJS基础 学习笔记(上)
  10. PL/SQL 之 sql语句的编写
  11. SAP License:SAP如何区分固定成本和变动成本
  12. java 正负随机_如何产生一个随机的[0, n)范围内的Short值
  13. pytorch学习笔记(三十九):Fine-Tuning
  14. QT之计算器对四则运算表达式的解析(九)
  15. Java程序员简历模板,内含个人专业技能和项目经验介绍
  16. Appium自动化测试基础--补充:C/S架构和B/S架构说明
  17. Caused by: java.lang.NoSuchMethodError: redis.clients.jedis.JedisPool.init(Lorg/apache/commons/poo
  18. 一种基于蓝牙的电视锁实现方案
  19. Carsim与Simulink联仿Carsim找不到Matlab错误的解决方案,此前装过多个Matlab版本出现该问题可以尝试此方法
  20. c语言 10 9-8 7-6… 1循环语句,C语言学习与总结---第五章:循环结构程序设计

热门文章

  1. C#学习笔记(三):值类型、引用类型及参数传递
  2. ASP.NET MVC搭建项目后台UI框架—1、后台主框架
  3. shell中set的用法(转)
  4. 一起谈.NET技术,HTML5 - 搭建移动Web应用
  5. Linux 内存管理之 SLUB分配器(5):slub初始化过程
  6. goland gorm分组查询统计_MySQL·查询(一)
  7. 18.3 通过打印来调试
  8. PostgreSQL 角色与用户管理介绍
  9. Linux时间子系统之二:表示时间的单位和结构
  10. linux 设备驱动之8250串口驱动分析