PolarDB PostgreSQL版(兼容Oracle)提供了DBLink功能,您可以通过DBLink功能实现跨库查询数据。本文介绍如何通过DBLink跨库查询数据。
前提条件
- 已创建源集群和目标集群。具体操作,请参见创建PolarDB PostgreSQL版(兼容Oracle)集群。
说明
PolarDB PostgreSQL版(兼容Oracle)的DBLink目前支持如下两种连接方式:
- 源数据库为PolarDB PostgreSQL版(兼容Oracle)集群;目标数据库为PolarDB PostgreSQL版(兼容Oracle)集群。
- 源数据库为PolarDB PostgreSQL版(兼容Oracle)集群;目标数据库为ECS自建PostgreSQL数据库。
- 已在源集群和目标集群中创建数据库。具体操作,请参见创建数据库。
- 已在目标数据库中创建表。
注意事项
目前仅支持在源集群上查询目标集群数据,不支持在目标集群上查询源集群数据。
参数配置
PolarDB PostgreSQL版(兼容Oracle)提供了polar_enable_pushable_unsafe_collate_remote和polar_enable_pushable_all_any_remote参数,用于提升查询性能。
- polar_enable_pushable_unsafe_collate_remote(会话级别参数):支持unsafe collate下推,默认打开。
如果关闭该参数,部分函数因为考虑collate规则,不会主动下推。
- 打开命令:
SET polar_enable_pushable_unsafe_collate_remote = on; - 关闭命令:
SET polar_enable_pushable_unsafe_collate_remote = off;
- 打开命令:
- polar_enable_pushable_all_any_remote(会话级别参数):支持ALL/ANY下推,默认打开。
如果关闭该参数,部分ALL/ANY表达式则不会下推。
- 打开命令:
SET polar_enable_pushable_all_any_remote = on; - 关闭命令:
SET polar_enable_pushable_all_any_remote = off;
- 打开命令:
操作步骤
- 创建DBLink。
PolarDB PostgreSQL版(兼容Oracle)提供了如下两种创建方式:
- 连接源集群。具体操作,请参见连接数据库集群。
- 在源集群上跨库查询数据。
查询语句如下:
SELECT * FROM <dbname>@<dblinkname>;<dbname>:目标集群的数据库里的表。说明
该表必须在DBLink所连接的目标数据库中。
<dblinkname>:DBLink名称。
您可以在控制台查看DBLink名称和DBLink的目标数据库,如下图所示。

示例
在目标数据库中创建一个用于测试的表test,并在表中插入测试数据。命令如下:
CREATE TABLE test(id int);
INSERT INTO test VALUES(1);连接源数据库,执行如下查询命令:
SELECT * FROM test@dblinkname;查询结果如下:
id
----
1
(1 row)「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




