news 2026/3/29 19:21:22

技术时刻丨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/3/30 10:28:56

image_path路径映射:cv_resnet18_ocr-detection临时文件管理机制

image_path路径映射&#xff1a;cv_resnet18_ocr-detection临时文件管理机制 1. 背景与问题定义 在OCR文字检测系统中&#xff0c;图像数据的处理流程通常涉及上传、预处理、模型推理、结果生成和输出保存等多个阶段。cv_resnet18_ocr-detection 是一个基于ResNet-18骨干网络…

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

5分钟部署通义千问2.5-7B-Instruct,vLLM+WebUI让AI对话快速上手

5分钟部署通义千问2.5-7B-Instruct&#xff0c;vLLMWebUI让AI对话快速上手 1. 背景与技术选型 随着大模型在企业级应用和开发者场景中的普及&#xff0c;如何快速、高效地部署一个高性能、可交互的本地化推理服务成为关键需求。通义千问2.5-7B-Instruct作为阿里云于2024年9月…

作者头像 李华
网站建设 2026/3/25 14:27:35

Qwen3-Embedding-0.6B企业级应用:文档分类系统部署实战

Qwen3-Embedding-0.6B企业级应用&#xff1a;文档分类系统部署实战 1. 业务场景与技术选型背景 在现代企业信息管理中&#xff0c;非结构化文本数据的快速增长给知识组织和检索带来了巨大挑战。典型如客户工单、技术支持记录、内部报告等文档类型繁多且语义复杂&#xff0c;传…

作者头像 李华
网站建设 2026/3/30 4:29:07

CANoe环境下CAPL编程完整指南:定时器应用

在CANoe中玩转CAPL定时器&#xff1a;从周期发送到状态机的实战指南你有没有遇到过这种情况——在用CANoe仿真ECU行为时&#xff0c;想让某个报文每50ms发一次&#xff0c;结果发现直接写个循环根本行不通&#xff1f;或者诊断请求发出去后迟迟收不到回复&#xff0c;系统就卡在…

作者头像 李华
网站建设 2026/3/25 20:33:33

Qwen3-4B-Instruct-2507实操指南:模型服务API文档生成

Qwen3-4B-Instruct-2507实操指南&#xff1a;模型服务API文档生成 1. 引言 随着大语言模型在实际业务场景中的广泛应用&#xff0c;如何高效部署并调用高性能推理模型成为工程落地的关键环节。Qwen3-4B-Instruct-2507作为通义千问系列中40亿参数规模的非思考模式指令优化版本…

作者头像 李华
网站建设 2026/3/25 21:30:32

如何高效完成图片去背景?CV-UNet Universal Matting镜像实战解析

如何高效完成图片去背景&#xff1f;CV-UNet Universal Matting镜像实战解析 1. 引言&#xff1a;图像去背景的技术演进与现实需求 在数字内容创作、电商展示、影视后期等场景中&#xff0c;图像去背景&#xff08;Image Matting&#xff09;是一项高频且关键的任务。传统方法…

作者头像 李华