当前位置: 首页 > news >正文

openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw

文章目录

    • openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw
      • 93.1 编译oracle_fdw
      • 93.2 使用oracle_fdw
      • 93.3 常见问题
      • 93.4 注意事项

openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw

openGauss的fdw实现的功能是各个openGauss数据库及远程服务器(包括数据库、文件系统)之间的跨库操作。目前支持的远程服务器类型包括Oracle、MySQL(MariaDB)、openGauss(postgres_fdw)、file_fdw 、dblink。

oracle_fdw(foreign data wrapper for oracle)用于Oracle的外部数据包装器,是一款开源插件。openGauss基于开源的oracle_fdw Release 2.2.0 版本进行开发适配。

编译和使用oracle_fdw需要环境上包含Oracle的开发包,所以openGauss默认不编译oracle_fdw,下面依次介绍如何编译和使用oracle_fdw。

93.1 编译oracle_fdw

编译oracle_fdw需要安装Oracle的开发库和头文件。

选择合适的运行环境和版本,下载Basic PackageSDK Package并安装。另外SQLPlus Package是Oracle的客户端工具,也可以根据需要安装,用于连接Oracle Server进行测试。

安装好开发包后,就可以开始编译oracle_fdw了。编译时需要在执行configure时,加入 –enable-oracle-fdw 选项。后续按照正常的openGauss编译方式编译即可。(openGauss的编译参考 软件安装编译

编译完成后,编译产物为 oracle_fdw.so,位于安装目录的 **lib/postgresql/**下。oracle_fdw相关的sql文件和control文件,位于安装目录的 **share/postgresql/Extension/**下。

如果编译安装时,没有加入 –enable-oracle-fdw 选项,可以在openGauss安装完成后,再次编译oracle_fdw,然后手动将编译产物 oracle_fdw.so放到对应的安装目录 lib/postgresql/ ,将 oracle_fdw–1.0–1.1.sql、oracle_fdw–1.1.sql、oracle_fdw.control放到对应的安装目录 **share/postgresql/Extension/**即可。

93.2 使用oracle_fdw

  • 使用oracle_fdw需要连接Oracle,Oracle server请自行安装。

  • 加载oracle_fdw扩展:CREATE Extension oracle_fdw

  • 创建服务器对象:CREATE SERVER

  • 创建用户映射:CREATE USER MAPPING

  • 创建外表:CREATE FOREIGN TABLE

    外表的表结构需要与Oracle数据库中的表结构保持一致。注意Oracle server侧的表的第一个字段必须具有唯一性约束(如PRIMARY KEY、UNIQUE等)。

  • 对外表做正常的操作,如INSERTUPDATEDELETESELECTEXPLAINANALYZECOPY等。

  • 删除外表:DROP FOREIGN TABLE

  • 删除用户映射:DROP USER MAPPING

  • 删除服务器对象:DROP SERVER

  • 删除扩展:DROP Extension oracle_fdw

93.3 常见问题

  • 在openGauss上建立外表时,不会在Oracle数据库中同步建表,需要自行在Oracle数据库中建表。
  • 执行CREATE USER MAPPING时使用的Oracle用户需要有远程连接Oracle数据库及对表相关操作的权限。使用外表前,可以在openGauss server所在的机器上,使用Oracle的客户端,使用对应的用户名密码确认能否成功连接Oracle并进行操作。
  • 执行**CREATE Extension oracle_fdw;**时,出现libclntsh.so: cannot open shared object file: No such file or directory。原因是Oracle的开发库libclntsh.so不在系统的相关路径中,可以先找到libclntsh.so的具体路径,然后将该so文件所在的文件夹加到 /etc/ld.so.conf 中。比如libclntsh.so的路径为 /usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1 ,那么就将该文件的路径 /usr/lib/oracle/11.2/client64/lib/ 加到 /etc/ld.so.conf文件末尾。然后执行ldconfig使修改生效即可。注意此操作需要root权限。

93.4 注意事项

  • 两个Oracle外表间的SELECT JOIN不支持下推到Oracle server执行,会被分成两条SQL语句传递到Oracle执行,然后在openGauss处汇总处理结果。
  • 不支持IMPORT FOREIGN SCHEMA语法。
  • 不支持对外表进行CREATE TRIGGER操作。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230703180511055

相关文章:

openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw

文章目录 openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw93.1 编译oracle_fdw93.2 使用oracle_fdw93.3 常见问题93.4 注意事项 openGauss学习笔记-93 openGauss 数据库管理-访问外部数据库-oracle_fdw openGauss的fdw实现的功能是各个openGauss数据库及…...

【Git】Git下载安装环境配置 下载速度慢的解决方案

这里写自定义目录标题 介绍一、下载官网下载镜像站 二、安装安装成功 三、Git三种界面介绍Git cmd界面展示git bash界面展示git GUI界面展示 四、环境配置配置流程1、打开环境变量界面2、添加环境变量 /删除环境变量3、在变量中找到Git\cmd的值就表示配置成功4、没有找到点击新…...

常见源协议介绍

开源协议(Open Source License)是一种法律文档,用于规定如何使用、修改和分发开源软件和其他开源项目的规则和条件。这些协议允许创作者或组织将其创造的代码或作品以开放源代码的形式共享给他人,以促进协作、创新和知识共享。常见…...

大数据概述(林子雨慕课课程)

文章目录 1. 大数据概述1.1 大数据概念和影响1.2 大数据的应用1.3 大数据的关键技术1.4 大数据与云计算和物联网的关系云计算物联网 1. 大数据概述 大数据的四大特点:大量化、快速化、多样化、价值密度低 1.1 大数据概念和影响 大数据摩尔定律 大数据由结构化和非…...

ES6 class类关键字super

super关键字 在 JavaSCript 中,能通过 extends 关键字去继承父类 super 关键字在子类中有以下用法: 当成函数调用 super() 作为 "属性查询" super.prop 和 super[expr] super() super 作为函数调用时,代表父类的构造函数。 ES6 要求…...

C++并发与多线程(4) | 传递临时对象作为线程参数的一些问题Ⅰ

一、陷阱1 写一个传递临时对象作为线程参数的示例: #include <iostream> #include <vector> #include <thread> using namespace std;void myprint(const int& i, char* pmybuf) {cout << i << endl;cout << pmybuf << endl;r…...

CentOS Integration SIG 正式成立

导读CentOS 董事会已批准成立 CentOS Integration Special Interest Group (SIG)。该小组旨在帮助那些在 Red Hat Enterprise Linux (RHEL) 或特别是其上游 CentOS Stream 上构建产品和服务的人员&#xff0c;验证其能否在未来版本中继续运行。 红帽 RHEL CI 工程师 Aleksandr…...

智能AI系统源码ChatGPT系统源码+详细搭建部署教程+AI绘画系统+已支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Chat…...

软考程序员考试大纲(2023)

文章目录 前言一、考试说明1.考试目标2.考试要求3&#xff0e;考试科目设置 二、考试范围考试科目1&#xff1a;计算机与软件工程基本知识1&#xff0e;计算机科学基础2&#xff0e;计算机系统基础知识3&#xff0e;系统开发和运行知识4&#xff0e;网络与信息安全基础知识5&am…...

【重拾C语言】七、指针(一)指针与变量、指针操作、指向指针的指针

目录 前言 七、指针 7.1 指针与变量 7.1.1 指针类型和指针变量 7.1.2 指针所指变量 7.1.3 空指针、无效指针 7.2 指针操作 7.2.1 指针的算术运算 7.2.2 指针的比较 7.2.3 指针的递增和递减 7.3 指向指针的指针 前言 指针是C语言中一个重要的概念正确灵活运用指针 可…...

Kafka源码简要分析

目录 一、生产者的初始化流程 二、生产者到缓冲队列的流程 三、Sender拉取数据到Kafka流程 四、消费者初始化 五、主题订阅原理 六、消费者抓取数据原理 七、消费者组初始化 八、消费者组消费流程 九、提交offset原理 一、生产者的初始化流程 首先获取事务id和客户端…...

react 按住ctrl键,点击时会出现菜单的问题修复

问题描述&#xff1a;我需要按住crtl键&#xff0c;然后鼠标点击后做一些逻辑操作&#xff0c;但是出现如下问题 问题一&#xff1a;按住ctrl键后&#xff0c;点击时不触发click事件&#xff0c;只触发 mousedown和mouseup事件。 问题二&#xff1a;按住ctrl键点击时出现菜单…...

【虚拟机栈】

文章目录 1. 虚拟机栈概述2. 局部变量表(Local Variables)3. 操作数栈4. 动态链接4.1 方法的调用&#xff1a;解析与分配 5. 方法返回地址6. 栈的相关面试题 1. 虚拟机栈概述 每个线程在创建时都会创建一个虚拟机栈&#xff0c;其内部保存一个个的栈帧&#xff08;Stack Frame…...

Linux系列讲解 —— 【fsck】检查并修复Linux文件系统

当文件系统出现损坏时&#xff0c;例如文件无法查看&#xff0c;删除等&#xff0c;可以使用 fsck&#xff08;File System Consistency Check&#xff09;进行修复。但是需要注意fsck在修复时&#xff0c;如果检查出某个文件有问题&#xff0c;可能会向用户请求删除。所以&…...

gitlab突然提示我要输入密码了。

用了很长时间的一个gitlab库&#xff0c;今天提交代码的时候突然提示我输入密码了&#xff0c;并且用户还是gitxx.xx.xx.xx的&#xff0c;瞬间懵逼。 想想原因&#xff0c;可能是因为我不久前设置了本地对另外一个git库的远程访问&#xff0c;用的是ssh&#xff0c;操作过程中可…...

业务测试常见问题(一)

如何多维度的分析一个需求&#xff1f; 功能维度&#xff1a;需求中所描述的功能是否实现&#xff0c;与用户的需求是否一致&#xff0c;是否完整符合用户的需求等。 安全性维度&#xff1a;是否有安全漏洞&#xff0c;是否存在未授权访问漏洞等&#xff0c;以保证系统的安全性…...

IntelliJ IDEA失焦自动重启服务的解决方法

IDEA 热部署特性 热部署&#xff0c;即应用正属于运行状态时&#xff0c;我们对应用源码进行了修改更新&#xff0c;在不重新启动应用的情况下&#xff0c;可以能够自动的把更新的内容重新进行编译并部署到服务器上&#xff0c;使修改立即生效。 现象 在使用 IntelliJ IDEA运…...

终端准入控制系统,保障企业内网安全的关键防线

随着网络技术的不断发展&#xff0c;企业面临的安全威胁也越来越多。终端作为承载企业业务的媒介&#xff0c;对内网资产安全有着重要影响。确保内网终端&#xff08;如PC、BYOD、IoT等&#xff09;能够得到统一管理&#xff0c;对保护内网安全很有必要。终端准入控制作为一种有…...

mysql-执行计划

1. 执行计划表概述 id相同表示加载表的顺序是从上到下。 id不同id值越大&#xff0c;优先级越高&#xff0c;越先被执行。id有相同&#xff0c;也有不同&#xff0c;同时存在。 id相同的可以认为是一组&#xff0c;从上往下顺序执行&#xff1b;在所有的组中&#xff0c;id的值…...

金蝶云星空和旺店通·企业奇门接口打通对接实战

金蝶云星空和旺店通企业奇门接口打通对接实战 接入系统&#xff1a;金蝶云星空 金蝶K/3Cloud&#xff08;金蝶云星空&#xff09;是移动互联网时代的新型ERP&#xff0c;是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”&#xff0c;旨在…...

影刀RPA跨境店群自动化实战:Python协同Chromium打破风控「垄断」的高并发调度系统架构

定了。彻底打破传统商业指纹浏览器的生态「垄断」与电商巨头风控体系的「底层封锁」&#xff0c;我们用一套完全“自主可控”的、基于 Python 深度协同的分布式微服务调度架构&#xff0c;重塑了跨境千店矩阵的自动化底座。 这几天&#xff0c;科技圈被“DeepSeek V4 首发华为…...

C语言编程实战:用ASCII码表玩转字符大小写转换(附完整代码)

C语言编程实战&#xff1a;用ASCII码表玩转字符大小写转换&#xff08;附完整代码&#xff09; 在编程的世界里&#xff0c;字符处理是最基础却又最容易被忽视的技能之一。很多C语言初学者在学习过程中&#xff0c;往往对字符和字符串的操作感到困惑——为什么a和A是不同的&…...

UnityPackage Extractor终极指南:快速免费提取Unity资源包

UnityPackage Extractor终极指南&#xff1a;快速免费提取Unity资源包 【免费下载链接】unitypackage_extractor Extract a .unitypackage, with or without Python 项目地址: https://gitcode.com/gh_mirrors/un/unitypackage_extractor UnityPackage Extractor是一款简…...

告别HAL库延时:在STM32F103上基于CubeMX和LL库,打造更高效的SysTick延时方案

STM32F103高效延时方案&#xff1a;从HAL库到LL库的SysTick实战优化 在嵌入式开发中&#xff0c;精确的延时控制往往是项目成败的关键因素之一。许多STM32开发者最初接触的是HAL库提供的HAL_Delay()函数&#xff0c;它简单易用&#xff0c;但随着项目复杂度提升&#xff0c;特别…...

电铲自主行走多耦合行为及轨迹控制技术【附代码】

✨ 长期致力于电铲、自主行走、多耦合行为、离散元法、反演滑模控制、轨迹控制研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;机电-离散元多体耦合动…...

别再只会if-else了!用STM32状态机实现按键短按、长按、双击(附完整代码)

STM32状态机实战&#xff1a;从零设计支持短按、长按、双击的按键驱动库 在嵌入式开发中&#xff0c;按键处理看似简单&#xff0c;却是最能体现开发者设计功力的场景之一。传统的中断加延时消抖方式虽然能快速实现功能&#xff0c;但随着需求复杂化&#xff08;比如需要区分短…...

告别龟速下载!保姆级教程:用百度网盘离线下载搞定Android 1.6到16全版本AOSP源码

突破AOSP源码下载瓶颈&#xff1a;高效获取Android全版本开发资源的实战指南 每次打开终端准备下载AOSP源码时&#xff0c;看着缓慢增长的进度条和频繁中断的连接&#xff0c;你是否感到无比沮丧&#xff1f;作为Android开发者&#xff0c;获取完整源码是深入理解系统架构的第一…...

告别环境配置烦恼:手把手教你搞定Qualcomm AI Engine Direct在Windows和Linux下的开发环境

高通AI引擎开发环境全攻略&#xff1a;Windows与Linux双平台实战指南 第一次打开Qualcomm AI Engine Direct SDK的压缩包时&#xff0c;你可能会有种面对乐高零件箱的错觉——各种架构的库文件、不同平台的工具链、错综复杂的依赖关系扑面而来。作为曾在多个芯片平台迁移AI模型…...

bili2text终极指南:一键将B站视频转换为高质量文字稿的免费工具

bili2text终极指南&#xff1a;一键将B站视频转换为高质量文字稿的免费工具 【免费下载链接】bili2text Bilibili视频转文字&#xff0c;一步到位&#xff0c;输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text 你是否曾经为了整理B站视频中的精…...

Java static 关键字从浅入深

文章目录前言一、static 的基本概念1.1 static 修饰什么1.2 static 的一句话理解二、static 变量2.1 类变量与实例变量2.2 使用场景三、static 方法3.1 静态方法的特点3.2 使用场景四、static 代码块4.1 static 代码块什么时候执行4.2 初始化顺序五、static 内部类5.1 静态内部…...