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

南大通用Gbase 8c dblink功能使用简介

Gbase 8c 提供类似 Oracle 的 dblink 功能需要分布式集群版本 GBase8cV5 3.0.3B16 以上和主备集群 gbase8cV5 S5.0.0B24 以上版本使用。

1、创建 dblink 远程连接需要创建用户密钥文件,该步骤可以忽略:

gs_ssh -c "gs_guc generate -S 'db1x@123' -D $GAUSSHOME/bin -o usermapping"
  • 其中-S 表示自定义密钥,可将 password 替换为自定义密钥;
  • 创建之后建议就不要做改动了,如果已经创建了 dblink 之后,再使用改语句重新创建密钥文件,会导致已创建的 dblink 失效无法使用;
  • 如果是单个节点的话,也可以直接执行:gs_guc generate -S 'password' -D $GAUSSHOME/bin -o usermapping

2、创建用户和库:

create user test with sysadmin createrole auditadmin poladmin password 'gbase;123';
create database tdb with template = template0 owner = test encoding = 'UTF-8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' dbcompatibility = 'A';

-- 连接 Oracle 时,如果本地数据库的编码格式 Oracle 不支持的话,会报 warning,建议使用 utf-8 编码格式,否则可能出现数据无法识别的问题(目前有问题的编码格式有:SQL_ASCII、LATIN10、WIN874、MULE_INTERNAL)。

3、登录和连接需要使用 dblink 的数据库,创建 dblink 插件:

  • create extension oracle_fdw;--创建使用 Oracle 的 dblink 插件
  • create extension postgres_fdw;--创建使用 gbase 8c 的 dblink 插件

插件安装命令执行成功后,可以通过\dx 检查插件安装信息,确保对应插件已经安装成功,具体执行可参见下图所示:

用户授权:

4、使用 dblink 的用户需要使用 postgres_fdw / oracle_fdw 的权限,可使用如下语句:

grant usage on foreign data wrapper postgres_fdw to test; grant usage on foreign data wrapper oracle_fdw to test;

5、创建连接 Oracle 的 dblink,需要提前准备好 Oracle 的连接信息:

-- 其中 public 可以忽略,oracle_fdw 是在连接 Oracle 时必须要带的,host、port 代表 ip 和端口,service_name 表示 Oracle 远程数据库的实例名。

-- 创建 dblink 连接后需要等待约 10 秒,需要拉取远程表结构信息。

使用 dblink:

6、创建 gbase 8c 的 dblink:

-- 连接 Oracle 目前只支持查询创建连接的用户的 schema 下面的表,暂不支持查询别的 schema 下的表;

-- 目前在连接 Oracle 数据库时,如果要使用的表没有主键,执行 update、delete 操作会失败;

-- 连接 gbase8c 如果不指定 schema 名,会默认使用用户同名的 schema,要查询别的 schema,需要指定,如下:

select * from schema1.t2@link_name;

7、删除 dblink:

如果远程数据库的表结构发生变化或者新建表,由于 dblink 基于外部表功能实现,需要有要查询的表的结构才可以正常查询,否则会出现问题,目前提供两种给解决方案:

a.使用 sync_dblink_schema('dblink_name')函数同步一下本地存储的外部表结构,使用示例:“select * from sync_dblink_schema('link_name');”

b.设置参数 whale.auto_sync_dblink 为 true,可以在远程数据库发生表结构变化时自动同步表结构信息,由于设置这个参数后,每次操作表都会查询表的结构信息,会有性能损耗,不建议打开改参数,连接 Oracle 时暂不支持打开该参数。

当同步表结构信息时,如果表结构发生变化,会重建本地的外部表,会报一些提示信息,忽略即可,除非是 error 级别信息。

http://www.jsqmd.com/news/233513/

相关文章:

  • 企业级应用中的错误日志处理实战
  • 告别复杂配置!一键部署MiDaS深度估计,轻松实现3D空间感知
  • 从2D到3D空间感知|AI单目深度估计-MiDaS镜像全解析
  • 可能全网唯一!咸鱼流出全新锐龙R5 7535HS主板,ITX小板,双M2+SATA+M2 WIFI,适合一体机和迷你主机DIY装机!
  • Python圣诞树代码:零基础也能轻松学会
  • WSL实战:在Windows上完美运行Linux开发环境
  • 大模型落地全景指南:从技术实现到商业价值
  • ORA-28547错误图解指南:新手也能轻松解决
  • 点量云流实时云渲染:如何设置分辨率?三招搞定!
  • 基于Java开源框架搭建的零代码+可视化编排引擎(附功能清单)
  • Rembg抠图WebUI部署教程:一键生成透明PNG图片
  • 对比评测:传统vs智能2258XT量产工具效率差异
  • 5分钟构建NumPy错误自动修复原型
  • Rembg边缘处理:透明物体抠图进阶技巧
  • Rembg抠图质量评估:用户满意度调查
  • 1小时搭建软件包依赖分析原型系统
  • Rembg API开发:构建云端抠图服务
  • 可视化文本分类工具发布|AI万能分类器支持自定义标签
  • 新质生产力政府关注度(2002-2025)
  • 纯色壁纸生成器:科学配色原理与个性化视觉设计的完美结合
  • DevOps自动化测试流程设计:构建持续质量护城河
  • 10个实用自动关机命令应用场景大揭秘
  • Java SpringBoot+Vue3+MyBatis 洗衣店订单管理系统系统源码|前后端分离+MySQL数据库
  • 从2D到3D:用AI 单目深度估计 - MiDaS镜像完成点云重建(附完整教程)
  • IDEA新建SPRINGBOOT项目零基础入门指南
  • ‌减少自动化测试中Flaky Tests的八项实用技巧
  • 自动化测试覆盖率提升秘籍:从60%到95%
  • Rembg WebUI扩展:用户认证系统开发
  • 用LIVE SERVER 10分钟打造产品原型
  • 传统VS现代:BCRYPT解密效率对比分析