循序渐进丨MogDB 5.0 远程访问 MogDB/Oracle 数据库的简便方法(使用@符号)

概述

早期的 MogDB 就提供了Postgres_fdw、Oracle_fdw、MySQL_fdw3个插件,用于远程访问 MogDB/Oracle/MySQL数据库。

旧的版本中,访问远程数据库的表,需要显式创建外部表,而在 MogDB 5.0当中,这种用法得到了简化,对于 MogDB 和 Oracle 可以直接使用"@"符号直接访问远程数据库的表,步骤如下:

  1. 安装和创建对应插件(create extension)

  2. 创建远程数据库链接(create server),指定对端数据库的物理信息

  3. 创建用户映射关系(create user mapping),指定对端数据库的认证信息

当然,前面还有一些诸如在远程数据库创建用户,创建表等准备工作。下面分别写一下 MogDB 5.0 远程访问 MogDB 和 Oracle 的操作方法。

MogDB (或其他openGauss系数据库)

00准备工作

在远端数据库创建用于数据库远程连接的用户,并创建数据库和表:​​​​​​​

=== 远端数据库 ==create database testdb;\c testdbcreate user testdblink password 'Enmotech@123';grant all on database testdb to testdblink ;create table testdblink.testdata as select generate_series(1,100) as id ;

同时,假定已配置合适的pg_hba.conf,允许下面步骤的数据库进行远程连接。

01安装和创建对应插件(create extension)

postgres_fdw插件默认包含在安装包中,因此无需专门安装,只需要创建出来即可:​​​​​​​

===本地数据库===create extension postgres_fdw;

02创建远程数据库链接(create server),指定对端数据库的物理信息​​​​​​

===本地数据库===create server testDBLink_mogdb1 foreign data wrapper postgres_fdw options(host '172.16.3.153', port '31000',dbname 'testdb');

其中的ip、port、dbname可以根据实际情况修改。

03创建用户映射关系(create user mapping),指定对端数据库的认证信息

注意,在做这一步之前,如果之前没有创建过针对usermapping的密码保护,则需要执行以下语句​​​​​​​

===本地数据库的操作系统用户下===gs_ssh -c "gs_guc generate -o usermapping -S default -D $GAUSSHOME/bin"

如果之前已经执行过同样操作,则可以略过。

创建用户映射关系:

create user mapping for public server testDBLink_mogdb1 options(user 'testdblink',password 'Enmotech@123');

这里的user ‘testdblink’,password 'Enmotech@123’对应远端数据库用户名密码。同时,为了简化,直接用了public,其实也可以改为特定的本地用户(for username),改了之后只有指定用户才能用这个用户密码连接到远程数据库。

04开始使用

select * from testdata@testDBLink_mogdb1;

Oracle

00准备工作

在远端数据库创建用于数据库远程连接的用户,并创建数据库和表:​​​​​​​

=== 远端数据库 ==create user testdblink identified by 'Enmotech123';grant connect,resource to testdblink;conn testdblink/Enmotech123create table testdata (id int);

01安装和创建对应插件(create extension)

Oracle_fdw插件默认不包含在安装包中,因此需要单独安装。

首先要安装 Oracle 客户端,从 Oracle 官网下载 Oracle client 19(https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html)

上传到 MogDB 所在服务器,解压,并将instantclient的lib*.so.*拷到$GAUSSHOME/lib下:

cp instantclient_*/lib*so* $GAUSSHOME/lib

然后安装插件,如果能联网,且使用ptk ,则可以直接安装:

ptk cluster -n 集群名 install-plugin -P oracle_fdw

否则,需要到mogdb.io 里下载对应版本的Oracle_fdw插件,解压,make install,会把文件拷到合适的目录。

最后,登录到数据库,创建插件:​​​​​​​

===本地数据库===create extension oracle_fdw;

02创建远程数据库链接(create server),指定对端数据库的物理信息​​​​​​​

===本地数据库===create server testDBLink_ora1 foreign data wrapper oracle_fdw options(dbserver '192.168.56.101:1521/serol');

dbserver中的ip、port、sid可以根据实际情况修改。

03创建用户映射关系(create user mapping),指定对端数据库的认证信息

注意,在做这一步之前,如果之前没有创建过针对usermapping的密码保护,则需要执行以下语句:​​​​​​​

===本地数据库的操作系统用户下===gs_ssh -c "gs_guc generate -o usermapping -S default -D $GAUSSHOME/bin"

如果之前已经执行过同样操作,则可以略过。

创建用户映射关系:

create user mapping for public server testDBLink_ora1 options(user 'testdblink',password 'Enmotech@123');

这里的user ‘testdblink’,password 'Enmotech@123’对应远端数据库用户名密码。

04开始使用​​​​​​​

select * from testdata@testDBLink_mogdb1;insert into testdata@testDBLink_mogdb1 values(1);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/56321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

导数的概念及在模型算法中的应用

一. 导数概念与计算 1. 导数的物理意义: 瞬时速率。一般的,函数yf(x)在x处的瞬时变化率是 2. 导数的几何意义: 曲线的切线,当点趋近于P时,直线 PT 与曲线相切。容易知道,割线的斜率是当点趋近于 P 时&…

数字孪生:引领智慧农业的未来

在现代农业中,数字化与智能化的浪潮正在改变传统的种植方式。数字孪生技术作为一种创新的数字化解决方案,正在深刻改变智慧农业的面貌,尤其是在大棚智能控制、数据全面可视、加工过程监控和物流运输溯源等方面展现出巨大的潜力。 frontop数字…

Golang使用viper读取配置到结构体,但是获取的数据为空

1.viper库 viper库是一个读取配置文件的库,支持多种配置文件,如JSON/TOML/YAML/HCL/envfile/Java properties 等 2.遇到的问题 在使用viper库的时候发现按照相应的配置已经读取到了对应的配置,但是转换为结构体的时候发现怎么拿结构体里面…

更改了 daemon.json ,需要重新启动docker容器吗

当你更改了 daemon.json 文件后,通常需要重启 Docker 服务以使更改生效,而不是重启单个 Docker 容器。以下是具体步骤: 保存并关闭 daemon.json 文件: 确保你已经完成了对 daemon.json 文件的修改并保存了更改。 重启 Docker 服务…

【动手学深度学习】8.1. 序列模型(个人向笔记)

想象一下有人正在看网飞(Netflix,一个国外的视频网站)上的电影。 一名忠实的用户会对每一部电影都给出评价, 毕竟一部好电影需要更多的支持和认可。 然而事实证明,事情并不那么简单。 随着时间的推移,人们对…

《Python基础教程》笔记(ch0-1)

前言 在Python生态系统中,各种包轮番登场,各种编码实践大行其道后又日渐式微。 引言 Python是什么?为何要使用它?官方宣传说:Python是一种面向对象的解释性高级编程语言,具有动态语义。 这句话的要点在…

监控易DEMO功能深度解析:运维行业的智能化转型新助力

在数字化转型的浪潮中,运维行业正面临着前所未有的变革与挑战。为了应对日益复杂的IT架构和不断提升的运维需求,监控易的集中式跨平台一体化监控软件不断升级优化,以适应新的运维环境。本文将对监控易DEMO的功能进行深度解析,探讨…

简单介绍冯诺依曼体系

现代的计算机, 大多遵守冯诺依曼体系结构 CPU中央处理器:进行算术运算和逻辑判断。存储器:分为外存和内存,用于存储数据(使用二进制方式存储)。输入设备:用户给计算机发号施令。输出设备:计算机…

Hadoop生态圈三大组件:HDFS的读写流程、MapReduce计算流程、Yarn资源调度

文章目录 1. HDFS的读写流程1.1 HDFS读流程1.2 HDFS写流程 2. MapReduce计算流程3. Yarn资源调度一、客户端请求资源二、Resource Manager处理请求三、任务资源计算与申请四、Resource Manager分配资源五、Node Manager执行任务六、任务执行与监控 1. HDFS的读写流程 1.1 HDFS…

沃德商协会管理系统小程序源码

商协会管理系统小程序,作为新一代数字化商协会运营管理的先锋工具,其核心围绕“智慧化会员体系、智敏化内容运营、智能化活动构建”三大核心板块精心构建。这一系统通过智慧化会员体系,实现了会员信息的精准管理与高效互动,不仅简…

2024_E_100_连续字母长度

连续字母长度 题目描述 给定一个字符串&#xff0c;只包含大写字母&#xff0c;求在包含同一字母的子串中&#xff0c;长度第 k 长的子串的长度&#xff0c;相同字母只取最长的那个子串。 输入描述 第一行有一个子串(1<长度<100)&#xff0c;只包含大写字母。 第二行为…

Rancher2.6管理k8s1.23

Rancher2.6管理k8s1.23 简介Rancher和k8s的区别 安装rancher初始化实验环境新增hosts文件条目安装docker 安装Rancher登录Rancher平台 通过Rancher仪表盘管理k8s集群&#xff1a;部署tomcat服务创建Ingress资源创建ingress规则 简介 Rancher是一个开源的企业级多集群Kubernete…

HarmonyOS 开发知识总结

1. HarmonyOS 开发知识总结 1.1. resources->base->media中不可以新建文件夹&#xff1f; 项目图片路径resources->base->media中不可以新建文件夹&#xff0c;图片全平级放里面&#xff0c;查找图片不方便&#xff0c;有没有什么其他的办法解决这个难点&#xff…

Scala入门基础(12)抽象类

抽象类&#xff0c;制定标准&#xff0c;不要求去具体实现 包含了抽象方法的类就是抽象类。抽象方法只是有方法名&#xff0c;没有具体方法体的方法 定义抽象类要用abstract&#xff08;抽象&#xff09;关键字 用智能驾驶技术举例&#xff1a;演示&#xff09…

干货|基于Taro框架开发微信小程序如何配置实现自动格式化和代码规范

下面实例是基于 Taro框架使用React开发微信小程序的实现自动格式化和代码规范的配置教程 安装 ESLint 和 Prettier 插件&#xff1a; 在微信开发者工具的插件市场中搜索并安装 ESLint 和 Prettier 插件。 配置 .eslintrc.js 文件&#xff1a; 确保项目根目录下有一个 .eslint…

Python Pandas 安装指南:快速入门与验证

Python Pandas 安装指南&#xff1a;快速入门与验证 本文简要介绍了如何在不同系统中通过两种常用方式安装 Python 的 Pandas 库&#xff0c;适合数据分析、处理等任务。方法一使用 pip 安装&#xff0c;适用于绝大多数 Python 用户&#xff0c;通过命令行输入简单的安装命令即…

简单介绍$listeners

$listeners 它可以获取父组件传递过来的所有自定义函数&#xff0c;如下&#xff1a; // 父组件 <template><div class"a"><Child abab"handleAbab" acac"handleAcac"/></div> </template><script> impor…

on hold 的SSCI期刊,一般多久会解除?

SSCI期刊“On Hold”状态解析及其解除时间概览 在学术研究的广阔领域中&#xff0c;发表论文不仅是知识分享的重要途径&#xff0c;也是衡量研究成果影响力的关键指标之一。对于社会科学领域的学者而言&#xff0c;SSCI&#xff08;Social Sciences Citation Index&#xff09…

分布式机器学习模式 精彩试读

近年来&#xff0c;机器学习取得了巨大进步&#xff0c;但大规模机器学习仍然面临挑战。 以 模型训练为例&#xff0c;由于 TensorFlow、PyTorch 和 XGBoost 等机器学习框架具有多 样性&#xff0c;从而使得在分布式 Kubernetes 集群上自动化训练机器学习模型的过程并 不简单。…

力扣动态规划基础版(斐波那契类型)

70. 爬楼梯https://leetcode.cn/problems/climbing-stairs/ 70.爬楼梯 方法一 动态规划 考虑转移方程和边界条件&#xff1a; f&#xff08;x&#xff09; f&#xff08;x -1&#xff09; f&#xff08;x - 2&#xff09;;f&#xff08;1&#xff09; 1&#xff1b;f&…