PostgreSQL之Foreign Data Wrappers使用指南

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

1.1、目标端安装软件包

[[email protected] ~]# 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;

原文地址:http://blog.51cto.com/candon123/2323032

时间: 2024-07-31 05:24:13

PostgreSQL之Foreign Data Wrappers使用指南的相关文章

Writing a Foreign Data Wrapper

转自:greenplum 官方的一片文档 https://gpdb.docs.pivotal.io/6-0/admin_guide/external/g-devel-fdw.html pg 是类似的 This chapter outlines how to write a new foreign-data wrapper. All operations on a foreign table are handled through its foreign-data wrapper (FDW), a

postgreSQL alter column data type to timestamp without time zone

现在公司数据访问层用的是mybatis框架,数据库用的pgsql,其中日期字段指定的是timestamp类型的.实体类是String类型的. 现在在执行更新操作的时候报这个错误:postgreSQL alter column data type to timestamp without time zone 以后要一定要多注意,报错的提示信息,其实上面就有交给你怎样进行修改,修改后的sql语句: <update id="updateProductService" parameter

[PostgreSQL] Use Foreign Keys to Ensure Data Integrity in Postgres

Every movie needs a director and every rented movie needs to exist in the store. How do we make sure something in another table exists before inserting new data? This lesson will teach us about foreign keys and references. CREATE TABLE directors ( id

iOS Core Data 数据迁移 指南

前言 Core Data是iOS上一个效率比较高的数据库框架,(但是Core Data并不是一种数据库,它底层还是利用Sqlite3来存储数据的),它可以把数据当成对象来操作,而且开发者并不需要在乎数据在磁盘上面的存储方式.它会把位于NSManagedObject Context里面的托管对象NSManagedObject类的实例或者某个NSManagedObject子类的实例,通过NSManagedObjectModel托管对象模型,把托管对象保存到持久化存储协调器NSPersistentSt

Spring Data JPA 参考指南 中文版

附下载地址:https://www.gitbook.com/book/ityouknow/spring-data-jpa-reference-documentation/details

ORACLE 迁移到 PG 之 ora2pg

1       ORACLE 迁移到 PG 1.1   使用ora2pg 工具 1.1.1     ora2pg简介 Ora2Pg是一个免费的工具,用于将Oracle数据库迁移到PostgreSQL兼容的模式.它连接您的Oracle数据库,自动扫描并提取它的结构或数据,然后生成可以装载到PostgreSQL数据库的SQL脚本.Ora2Pg可以从逆向工程Oracle数据库到大型企业数据库迁移,或者简单地将一些Oracle数据复制到PostgreSQL数据库中.它非常容易使用,并且不需要任何Orac

试图使用未在此报表服务器中注册或此版 Reporting Services 不支持的数据扩展插件“Devart.Data.PostgreSql”

数据源用的是Postgresql 我在Deploy Report的时候出现这条ErrorMessage Error 2 试图使用未在此报表服务器中注册或此版 Reporting Services 不支持的数据扩展插件“Devart.Data.PostgreSql”. 解决方案: SQL Server安装路径\MSRS10_50.***\Reporting Services\ReportServer\rsreportserver.config里面加下面这个节点然后重启Sql server就好了<E

PostgreSQL数据库中跨库访问解决方案

PostgreSQL跨库访问有3种方法:Schema,dblink,postgres_fdw. 方法A:在PG上建立不同SCHEMA,将数据和存储过程分别放到不同的schema上,经过权限管理后进行访问. 方法A的示例如下: 测试1(测试postgres超级用户对不同schema下对象的访问) 查看当前数据库中的schema postgres=# \dn List of schemas Name | Owner -------------------+--------- dbms_job_pro

PostgreSQL学习(一)

1.PostgreSQL的特别之处以及选用理由 (1)PostgreSQL支持用多种编程语言编写存程过程和函数 (2)PostgreSQL支持非常强大的用户自定义数据类型功能 2.PostgreSQL资源 (1)Plantet PostgreSQL (http://planet.postgresql.org)是PostgreSQL技术博客文章的汇聚站点,其中包含从PostgreSQL核心开发人员到普通用户编写 的各类文章,包括新特性演汉及对现有功能的使用说明 (2)PostgreSQL Wiki