Postgres数据库安装、配置、使用DBLink的实例详解

 更新时间:2025年07月14日 15:18:12   作者:文牧之  
文章介绍PostgreSQL的DBLink技术,用于跨数据库实例查询,解决数据分散问题,支持多种数据库类型,安装需检查插件并配置连接参数,便于实现多实例数据汇总,感兴趣的朋友跟随小编一起看看吧

一、技术背景

1.1 背景

随着业务复杂程度的提高、数据规模的增长,越来越多的公司选择对其在线业务数据库进行垂直或水平拆分,甚至根据业务场景选择不同的数据库类型以满足其业务需求。与此同时,业务的数据被“散落”在各个数据库实例中。如何方便地对这些数据进行汇总查询,已经成为困扰使用者的一大问题。

针对这类问题,我们可以使用基于DBLink的解决方案,使用者通过在一个数据库实例中就可以查询到多个数据库实例中的数据。

1.2 什么是 DBLink

DBLink技术源于Oracle,我们可以登录上一个Oracle数据库实例,建立一个DBLink指向另一个远程的网络联通的Oracle数据库实例。

现在,基本上主流的数据库都支持DBLink 操作。

  • DBLink和数据库实例一一对应,对于PostgreSQL来说,对应的就是PostgreSQL数据库所在的ip+port+database
  • DBLink可以指向PostgreSQL、SQLServer、MySQL、Oracle等;
  • 使用者可通过创建dblink时获取到的连接名,对远端的数据库实例进行操作;

二、安装配置 DBLink

我在本地的一台 Windows 电脑上装了postgres14数据库,另一个数据库实例在一台Linux服务器的Docker容器中,使用这2个PG 数据库实例进行下面所有的演示。

2.1 安装 DBLink

一般我们在安装 PostgreSQL 数据库的时候,不管是二进制包还是源码包,都已经有了DBLink插件,只是这个插件没有嵌入到PostgreSQL数据库中,我们通过以下命令查看PostgreSQL数据库中可用的插件:

select * from pg_available_extensions;

执行后发现可用的插件非常多,需要分页显示。

通过 SQL select * from pg_available_extensions where name like '%dblink%'; 发现 PostgreSQL数据库中提供了 DBLink 可供安装:

如果你的PG数据库是通过源码编译安装的,那么可能通过这个SQL查到的结果发现并没有DBLink,这时你需要切换到PG的源码包目录,执行如下命令:

cd contrib/dblink
make
make install

这时再通过上面的SQL就可以查询到DBLink插件了。

也可通过以下 SQL 查询已安装的PG 插件:

select * from pg_extension;

我们可以通过以下 SQL 在 PG 数据库中安装 DBLink 插件:

 create extension dblink;

我们再查询PG 数据库中已经安装的插件,就已经有了:

2.2 配置 DBLink

找到 PG 数据库的 postgresql.confpg_hba.conf 这2个配置文件࿰

到此这篇关于PostgreSQL的扩展 dblink及安装使用方法的文章就介绍到这了,更多相关PostgreSQL扩展 dblink内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PostgreSQL 实现快速删除一个用户

    PostgreSQL 实现快速删除一个用户

    这篇文章主要介绍了PostgreSQL 实现快速删除一个用户,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSql 重建索引的操作

    PostgreSql 重建索引的操作

    这篇文章主要介绍了PostgreSql 重建索引的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • PostgreSQL迁移的几种实现方式

    PostgreSQL迁移的几种实现方式

    本文主要介绍了PostgreSQL迁移的几种实现方式,包括逻辑备份、物理复制、文件系统快照及逻辑复制这四种方式,具有一定的参考价值,感兴趣的可以了解一下
    2025-06-06
  • 使用postgresql获取当前或某一时间段的年月日

    使用postgresql获取当前或某一时间段的年月日

    这篇文章主要给大家介绍了关于使用postgresql获取当前或某一时间段的年月日的相关资料,在PostgreSQL中可以使用函数 NOW() 来查询当前时间,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • Vcenter清理/storage/archive空间的处理方式

    Vcenter清理/storage/archive空间的处理方式

    通过SSH登陆到Vcenter并检查/storage/archive目录发现占用过高,该目录用于存储归档的日志文件和历史数据,解决方案是保留近30天的归档文件,这篇文章主要给大家介绍了关于Vcenter清理/storage/archive空间的处理方式,需要的朋友可以参考下
    2024-11-11
  • postgresql 实现启动、状态查看、关闭

    postgresql 实现启动、状态查看、关闭

    这篇文章主要介绍了postgresql 实现启动、状态查看、关闭的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • SQLite教程(七):数据类型详解

    SQLite教程(七):数据类型详解

    这篇文章主要介绍了SQLite教程(七):数据类型详解,本文讲解了存储种类和数据类型、类型亲缘性、比较表达式、操作符等内容,需要的朋友可以参考下
    2015-05-05
  • Postgresql设置远程访问的方法(需要设置防火墙或者关闭防火墙)

    Postgresql设置远程访问的方法(需要设置防火墙或者关闭防火墙)

    这篇文章主要介绍了Postgresql设置远程访问的方法(需要设置防火墙或者关闭防火墙),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • PotgreSQL 基于时间点恢复过程

    PotgreSQL 基于时间点恢复过程

    本篇文章介绍 PostgreSQL 基于时间点恢复(point-in-time-recover)需要的条件及恢复过程,属于操作说明,对PotgreSQL 时间点恢复相关知识感兴趣的朋友跟随小编一起看看吧
    2023-08-08
  • PostgreSQL的generate_series()函数的用法说明

    PostgreSQL的generate_series()函数的用法说明

    这篇文章主要介绍了PostgreSQL的generate_series()函数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论