news 2026/4/1 16:24:00

技术时刻丨GaussDB使用DBLINK连接到Oracle

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
技术时刻丨GaussDB使用DBLINK连接到Oracle

GaussDB 自内核506版本(2025年4 月30日发布)起,支持通过 DBLINK 功能连接至 Oracle 数据库,相关配置及使用说明如下。(官方文档参考链接:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/25.1.30/devg-cent/gaussdb-42-0811.html)

安装

使用 DBLINK 连接 Oracle 前,需先在实例机器上部署 Oracle 客户端。这里提供两种部署方案,我推荐优先选择纯白屏化操作的 TPOPS 平台方案:

方案一

手动部署(不推荐)

手动将 instantclient 压缩包上传至每个数据节点,解压后配置 LD_LIBRARY_PATH 环境变量。该方案无官方完整操作步骤支撑,易出现配置疏漏,不建议采用。(官方文档参考链接:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/25.1.30/devg-cent/gaussdb-42-0813.html)

方案二

TPOPS 平台插件化部署(推荐)

通过云数据库 GaussDB 管理平台(TPOPS)上传并安装插件,全程无需 SSH 登录服务器,操作流程如下:

<上传插件包>

https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/25.1.30/usermanual/qlh_02_0431.html

<插件安装>

https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/25.1.30/usermanual/qlh_02_0426.html

需要注意的是,TPOPS 这个版本仅支持以下表格中的 instantclient 版本上传,并且需要保证填写的 cksum 和 Oracle 官方页面上保持一致,但由于 Oracle 官方下载页面只会保留最新的版本,因此就算通过某种方式得到了原本的官方包,也没有官方页面可以获得 cksum 值了,只能通过 GaussDB 文档里来获取这些版本的 cksum 值。

系统架构

OCI插件包名

cksum

SHA 256

url

X86

instantclient-basic-linux.x64-12.2.0.1.0.zip

3923339140

5015e3c9fba84e009f7519893f798a1622c37d1ae2c55104ff502c52a0fe5194

https://download.oracle.com/otn/linux/instantclient/122010/instantclient-basic-linux.x64-12.2.0.1.0.zip(这个版本下载需要登录ORACLE账号,或者使用迅雷下载)

instantclient-basic-linux.x64-19.26.0.0.0dbru.zip

3459128350

f5f5f7e8eb8e1f057a33a8b8f5aef096544535365dedd31324f5f411abab339e

https://download.oracle.com/otn_software/linux/instantclient/1926000/instantclient-basic-linux.x64-19.26.0.0.0dbru.zip

instantclient-basic-linux.x64-21.17.0.0.0dbru.zip

937263543

70e3a0107a4847e2644a97df5102065c9ca133db36d81b3f3429f6e3426ff10f

https://download.oracle.com/otn_software/linux/instantclient/2117000/instantclient-basic-linux.x64-21.17.0.0.0dbru.zip

ARM

instantclient-basic-linux.arm64-19.26.0.0.0dbru.zip

2071078872

f8bd362bde8834c458493c14a654c97f6a9f8d1dcbbb38e1b67f8d3102851964

https://download.oracle.com/otn_software/linux/instantclient/1926000/instantclient-basic-linux.arm64-19.26.0.0.0dbru.zip

安装原理解析

  1. 插件包上传后,instantclient 压缩包会存储至 TPOPS 服务器的 /opt/sftphome/sftpservice/package/plugin/OracleOCI/ 目录(SFTP 服务器专属目录);

  2. 执行插件安装时,各数据节点会从 SFTP 服务器下载压缩包,并存至 /home/Ruby/oci_proxy 目录解压;

  3. 解压后,系统会将 instantclient_19_26 目录内的文件移动至上级目录,删除原压缩包(可能残留 instantclient_19_26 空目录),且会自动重启实例以完成配置生效。

使用

安装完后,通过create database link语法即可创建连接到Oracle的DBLINK。如下,表示创建一个名为public_dblink_to_o的DBLINK,使用用户名hr密码hr123,连接到192.168.1.123:1521/pdb1,并且对象标识符大小写不敏感(不配置则默认敏感,比如查ORACLE的表要手动双引号大写,不加双引号或者小写会报错表不存在)。其中的OCI即表示使用OCI插件连接Oracle数据库,去掉OCI即表示连接GaussDB数据库。(其他连接参数详见官方文档:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/25.1.30/devg-cent/gaussdb-42-0629.html)

CREATE PUBLIC DATABASE LINK public_dblink_to_o CONNECT TO 'hr' IDENTIFIED BY 'hr123' OCI USING (dbserver '192.168.1.123:1521/pdb1' ,case_insensitive 'on');

@的用法和Oracle一样,就不举例了。(使用限制详见官方文档:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/25.1.30/devg-cent/gaussdb-42-0813.html)

这里只提3点重要的功能限制:

  1. 该版本的 DBLINK 只支持 delete/insert/update/select,不支持调用远端的函数和存储过程;

  2. 支持通过本地同义词访问远端的表、视图,但不支持远端为嵌套同义词,也不支持远端为一个 DBLINK 对象的同义词;

  3. 不支持操作远端的 clob/blob/long/long raw 类型。

DBLINK函数

新增了一批DBLINK的函数,主要涉及关闭DBLINK连接、查看DBLINK信息、DBLINK占用内存大小等。(详见官方文档:https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/25.1.30/devg-cent/gaussdb-42-0500.html)

实现分析

  1. 内核新建了 gs_database_link 表,用于存储创建的 DBLINK 信息,该表内记录了 DBLINK 名称、DBLINK 所有者(为0表示public)、使用的 fdw(外部数据封装器)、创建者、连接及参数设置、用户名密码(密码是加密存储的)、权限;

  2. 新建了视图 sys."v$dblink",结构参考 Oracle 同名视图;

  3. 连接到 Oracle 的 DBLINK 的 fdw 用的是"12223 gs_ora_fdw";

  4. 原本的 pg_foreign_server 和 pg_user_mapping 里不会新增记录,可以理解为是存到了 gs_database_link 里;

  5. 第一次访问远端表的时候,会自动插入 pg_foreign_table,即创建了外部表,在 pg_class 和 pg_attribute 中可以查到该表,表名是大写的(暂没测是否与 case_insensitive 有关)。因此可以判断,该功能在备机上无法使用;

  6. 在 pg_namespace 中会创建一条用户名@dblink名称的记录,外部表的 namespace 对应这个记录,也就是说,实际上它创建了一个 schema(周边生态工具和运维脚本要注意了);

  7. 可以使用 select * from"用户名@dblink名称"."大写外部表名"的方式访问曾经通过 DBLINK 的@方式访问的表(注意要加双引号,而且文档里没有描述这种方法,不能保证后续版本这种方法是否会被禁用);

  8. 发送到远端的 SQL,每个表的查询都会加上一串8个字节的 hash 值注释,同一表被多次查询时,hash 值也不一样,并且所有表会自动加上别名,r1、r2…rn;

  9. 从 gs_ora_fdw.control 这个文件里看,里面的 comment 和 oracle_fdw 一样,都是 foreign data wrapper for Oracle access,但是没有找到对应的 so(疑似打包到了主程序里);

  10. gs_ora_fdw 极有可能是基于 oracle_fdw 改的,文档中的 oracle_fdw 还没有替换干净,不过 gs_ora_fdw 很多下推场景是 oracle_fdw 所不具备的,应该是做了不少优化。

王勇昱

云和恩墨高级技术顾问

拥有十余年PL/SQL设计开发经验,维护过数百套Oracle应用数据库。2021年起开始投入国产数据库建设,多次获得墨天轮SQL挑战赛奖项及墨力之星,获评CSDN领军人物,参与过多个数据库相关开源项目的开发。

数据驱动,成就未来,云和恩墨,不负所托!


云和恩墨创立于2011年,是业界领先的“智能的数据技术提供商”。公司以“数据驱动,成就未来”为使命,致力于将创新的数据技术产品和解决方案带给全球的企业和组织,帮助客户构建安全、高效、敏捷且经济的数据环境,持续增强客户在数据洞察和决策上的竞争优势,实现数据驱动的业务创新和升级发展。

自成立以来,云和恩墨专注于数据技术领域,根据不断变化的市场需求,创新研发了系列软件产品,涵盖数据库、数据库存储、数据库管理和数据智能等领域。这些产品已经在集团型、大中型、高成长型客户以及行业云场景中得到广泛应用,证明了我们的技术和商业竞争力,展现了公司在数据技术端到端解决方案方面的优势。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 6:49:11

PDF-Extract-Kit-1.0版面分析:复杂文档结构识别

PDF-Extract-Kit-1.0版面分析&#xff1a;复杂文档结构识别 PDF-Extract-Kit-1.0 是一套面向复杂文档内容提取的综合性工具集&#xff0c;专注于解决传统PDF解析中常见的布局混乱、结构丢失、公式与表格识别不准等核心痛点。该工具集融合了深度学习驱动的版面分析模型与规则引…

作者头像 李华
网站建设 2026/3/27 4:41:36

GPEN企业私有化部署教程:数据安全+高性能GPU一体化方案

GPEN企业私有化部署教程&#xff1a;数据安全高性能GPU一体化方案 1. 引言 1.1 企业级图像处理的挑战与需求 在当前数字化转型加速的背景下&#xff0c;企业对图像处理技术的需求日益增长&#xff0c;尤其是在医疗影像、安防监控、数字档案修复等领域。传统的云端图像增强服…

作者头像 李华
网站建设 2026/3/27 8:37:30

从架构到应用:AutoGLM-Phone-9B多模态协同工作流拆解

从架构到应用&#xff1a;AutoGLM-Phone-9B多模态协同工作流拆解 1. 多模态模型架构全景概览 AutoGLM-Phone-9B 是一款专为移动端优化的多模态大语言模型&#xff0c;融合视觉、语音与文本处理能力&#xff0c;支持在资源受限设备上高效推理。该模型基于 GLM 架构进行轻量化设…

作者头像 李华
网站建设 2026/3/30 10:14:53

阿里通义Z-Image-Turbo模型加载优化:首次启动提速80%方案

阿里通义Z-Image-Turbo模型加载优化&#xff1a;首次启动提速80%方案 1. 背景与挑战 阿里通义Z-Image-Turbo是基于Diffusion架构的高性能图像生成模型&#xff0c;具备快速推理、高画质输出和低资源消耗等优势。该模型通过WebUI界面为用户提供便捷的交互式图像生成能力&#…

作者头像 李华
网站建设 2026/3/27 0:17:01

性能与成本的平衡:如何选择Image-to-Video云GPU配置

性能与成本的平衡&#xff1a;如何选择Image-to-Video云GPU配置 你是不是也遇到过这种情况&#xff1a;想用AI做图生视频&#xff08;Image-to-Video&#xff09;项目&#xff0c;比如把一张静态插画变成动态短视频&#xff0c;或者为电商产品生成宣传动画&#xff0c;但一看到…

作者头像 李华
网站建设 2026/3/31 21:14:05

4个高效部署技巧:Qwen3-Embedding-4B镜像免配置指南

4个高效部署技巧&#xff1a;Qwen3-Embedding-4B镜像免配置指南 1. 背景与技术价值 随着大模型在检索、分类、聚类等任务中的广泛应用&#xff0c;高质量的文本嵌入&#xff08;Text Embedding&#xff09;能力成为构建智能系统的核心基础。Qwen3-Embedding-4B 作为通义千问系…

作者头像 李华