PostgreSQL如何实现跨数据库访问?

  • 时间:
  • 浏览:2
  • 来源:大发5分排列5_极速5分排列3

在Oracle数据库中,亲们可不也能 通过DBLINK实现跨数据库的访问。PG数据库某种并没办法 提供原先 的功能,也能 亲们安装对应的扩展来实现。

在PG中可不也能 通过安装DBLINK或postgres_fdw扩展的最好的办法实现跨库访问。

相比较而言,postgres_fdw要方便的多。

创建扩展create extension postgres_fdw;

第一步创建远程服务器,也能 指定主机地址,数据库名和端口。

create server dbmess foreign data wrapper postgres_fdw OPTIONS (host '待访问数据库IP', port '5432', dbname 'mess', use_remote_estimate 'true');

第二步定义到内外部服务器的映射

create user mapping FOR mess SERVER dbmess options (user 'mess', password 'mess');

第三步一键创建内外部表(可不也能 使用except来排除.)

import FOREIGN SCHEMA public except (geography_columns,geometry_columns,raster_columns,raster_overviews,spatial_ref_sys) from server dbmess into public OPTIONS (import_default 'true');

第四步和操作本地表一样操作远程表。

与源码一起去发布的contrib/ 目录含高已经 常用的扩展,累积扩展是独立开发的,也能 亲们手动进行安装,比如PostGis。

加载1个多扩展,实际上是执行扩展的脚本文件,创建数据库对象,比如函数, 数据类型, 运算符和索引支持最好的办法等等。CREATE EXTENSION记录了所有已创建对象的标识,以便在发出DROP EXTENSION时可不也能 再次删除它们。

PostgreSQL设计的初衷,易于扩展是它重要的底部形态之一。当亲们也能 的已经 功能在发布版本中没办法 时,亲们可不也能 尝试通过安装扩展实现。

通常通过CREATE EXTENSION加载1个多新的扩展到当前的数据库中,加载到数据库中的扩展功能就可不也能 像内置的底部形态一样运行。

在DBLINK在使用中地处如下缺点

其实相比DBLINK,postgres_fdw的最好的办法要高效已经 已经 ,使用也更加方便。但在实际使用中依然地处已经 问题图片。

如下什么问题图片是在实际使用中遇到的,没办法 进一步研究,已经 也能 归因到权限问题图片。

在上一篇文章<PostgreSQL通过DBLINK执行存储过程创建表>中,介绍了通过DBLINK跨数据库访问的步骤

PostgreSQL数据库和Oracle相似,在逻辑上是相互独立的,已经 要访问已经 数据库,也能 做跨库操作,Postgres某种提供了已经 扩展,比如dblink,pgsql_fdw等也能实现跨数据库访问。