GBase 8a 9.5.3.27 DBlink配置---源端GBase

原理图

在这里插入图片描述

1.目标端集群将数据请求由gcluster的5258端口发送至dblink的9898端口
2.Dblink将请求由9898端口转发至源端集群的5258端口
3.源端数据库将接收的请求生成执行计划,由gcluster的5258端口下发至各gnode的5050端口
4.源端的5050端口接收到执行计划进行查询,并将返回结果与目标端集群的gnode的5050端口直接通讯。
5.目标端Gnode将查询结果汇总到gcluster层。

需求描述

多vc模式,源数据库B的t1数据库下存在t11两张表,现需要从数据库A建立DBlink访问数据库B的表。数据库A:
10.185.195.10 coor
10.185.195.101 data
10.185.195.102 data
vc:vc1数据库B:
10.185.195.199 coor
10.185.195.200 data
10.185.195.201 data
vc:vc1

---------------------------------安装---------------------------------------

一、源数据库B操作
### 1.1 建立用户设置默认VC
create user source_user identified by 'source_password';
set default_vc for source_user = vc1;### 1.2 授予库的权限
grant all on vc1.t1.* to source_user;
#select不授权会报错"ERROR 1105 (HY000): Table 'information_schema.table_distribution' doesn't exist",后面两个权限貌似可以不用授权
grant select on gbase.* to gbase_user;
#grant all on gctmpdb.* to gbase_user;
#grant all on vc1.gclusterdb.* to gbase_user;二、数据库A操作
### 2.1 建立用户
create user gbase_user identified by 'gbase_password';### 2.2 创建数据库与授权
create database t1_new;
grant all on vc1.t1_new.* to gbase_user;### 2.3 授权[第一个管理节点]
grant select on gbase.* to gbase_user;
grant all on gctmpdb.* to gbase_user;
grant all on vc1.gclusterdb.* to gbase_user;### 2.4 授权[所有数据节点]
gccli -ugbase -p -h 10.185.195.101  -P5050 -e "grant all on gctmpdb.* to gbase_user"
gccli -ugbase -p -h 10.185.195.102  -P5050 -e "grant all on gctmpdb.* to gbase_user"### 2.5 检查DBlink配置
# 所有管理节点的"[gbasedump]"上方加DBlink的ip与端口,我的DBlink准备配置在数据库A的管理节点上。配置完需要重启集群哦!
[gbase@GBASEMA01 config]$ pwd
/opt/10.185.195.10/gcluster/config
[gbase@GBASEMA01 config]$ cat gbase_8a_gcluster.cnf 
...
gbase_dblink_gateway_ip = 10.185.195.10
gbase_dblink_gateway_port = 9898
gcluster_dblink_direct_data_exchange = 0
...
[gbasedump]三、数据库A DBlink配置
### 3.1 数据源配置[这里写的是源数据库B的信息]
[gbase@GBASEMA01 dataSource]$ pwd
/opt/GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.26/conf/dataSource
[gbase@GBASEMA01 dataSource]$ vim gbase_link_t1.properties
[gbase1]
dataSource_IP=10.185.195.199
dataSource_port=5258
dataSource_dbname=t1
dataSource_dbtype=gcluster
dataSource_user=source_user
dataSource_pwd=source_password
dataSource_charset=utf8### 3.2 数据库配置[这里写的是数据库A的信息]
[gbase@GBASEMA01 gcluster]$ pwd
/opt/GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.26/conf/gcluster
[gbase@GBASEMA01 gcluster]$ cat gbase8a_gcluster.properties
[gc1]
gcluster_IP=10.185.195.10
gcluster_port=5258
gcluster_user=gbase_user
gcluster_pwd=gbase_password
gcluster_encode=utf-8[gn2]
gcluster_IP=10.185.195.101
gcluster_port=5050
gcluster_user=gbase_user
gcluster_pwd=gbase_password
gcluster_encode=utf-8[gn2]
gcluster_IP=10.185.195.102
gcluster_port=5050
gcluster_user=gbase_user
gcluster_pwd=gbase_password
gcluster_encode=utf-8### 3.3 启动DBlink[端口是9898可以检查下]
[gbase@GBASEMA01 GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.26]$ pwd
/opt/GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.26
[gbase@GBASEMA01 GBase8a_MPP_Cluster_Gateway_8.5.1.2_build4.26]$ bash gbaseGatewayServer.sh start### 3.4 建立DBlink
gbase> use vc vc1;
gbase> create database link gbase_link_t1 connect to '' identified by '' using 'gbase_link_t1';### 3.5 连接测试
[gbase@GBASEMA01 config]$ gccli -ugbase_user -pgbase_password
use vc vc1;
use t1_new;
select * from t11@gbase_link_t1;

---------------------------------验证---------------------------------------

一、数据库权限验证
### 1.1 源数据库B权限验证
gbase> show grants for source_user;           
+-----------------------------------------------------------------------------------------------------------------------------------+
| Grants for source_user@%                                                                                                          |
+-----------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.*.* TO 'source_user'@'%' IDENTIFIED BY PASSWORD '*A06F45AD457FDD278DBDFB5061E99288102FA8D3' WITH TASK_PRIORITY 2 |
| GRANT ALL PRIVILEGES ON "vc00001"."t1".* TO 'source_user'@'%'                                                                     |
| GRANT ALL PRIVILEGES ON "vc00001"."t2".* TO 'source_user'@'%'                                                                     |
| GRANT SELECT ON "gbase".* TO 'source_user'@'%'                                                                                    |
+-----------------------------------------------------------------------------------------------------------------------------------+### 1.2 数据库B权限验证
# 第一个管理节点
gbase> show grants for gbase_user;
+----------------------------------------------------------------------------------------------------------------------------------+
| Grants for gbase_user@%                                                                                                          |
+----------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.*.* TO 'gbase_user'@'%' IDENTIFIED BY PASSWORD '*88F4CD22002C0CB142518B20244FBCCA8A94493A' WITH TASK_PRIORITY 2 |
| GRANT SELECT ON "gbase".* TO 'gbase_user'@'%'                                                                                    |
| GRANT ALL PRIVILEGES ON "gctmpdb".* TO 'gbase_user'@'%'                                                                          |
| GRANT ALL PRIVILEGES ON "vc00001"."gclusterdb".* TO 'gbase_user'@'%'                                                             |
| GRANT ALL PRIVILEGES ON "vc00001"."t1_new".* TO 'gbase_user'@'%'                                                                 |
+----------------------------------------------------------------------------------------------------------------------------------+
5 rows in set (Elapsed: 00:00:00.00)# 所有数据节点
[gbase@GBASEMA01 logs]$ gccli -ugbase -p -h 10.185.195.101  -P5050 -e "show grants for  gbase_user"
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for gbase_user@%                                                                                                        |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'gbase_user'@'%' IDENTIFIED BY PASSWORD '*88F4CD22002C0CB142518B20244FBCCA8A94493A' WITH TASK_PRIORITY 2 |
| GRANT ALL PRIVILEGES ON "gctmpdb".* TO 'gbase_user'@'%'                                                                        |
+--------------------------------------------------------------------------------------------------------------------------------+
[gbase@GBASEMA01 logs]$ gccli -ugbase -p -h 10.185.195.102  -P5050 -e "show grants for  gbase_user"
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for gbase_user@%                                                                                                        |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'gbase_user'@'%' IDENTIFIED BY PASSWORD '*88F4CD22002C0CB142518B20244FBCCA8A94493A' WITH TASK_PRIORITY 2 |
| GRANT ALL PRIVILEGES ON "gctmpdb".* TO 'gbase_user'@'%'                                                                        |
+--------------------------------------------------------------------------------------------------------------------------------+二、数据验证
### 2.1 源数据库B
[gbase@GBASEMA01 ~]$ gccli -usource_user -psource_password -e "use t1;select count(*) from t11;"
+----------+
| count(*) |
+----------+
|        2 |
+----------+### 2.2 数据库A
[gbase@GBASEMA01 logs]$ gccli -ugbase_user -pgbase_passwordGBase client 9.5.3.27.20_patch.9fc3fcec. Copyright (c) 2004-2025, GBase.  All Rights Reserved.gbase> use vc vc1;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)gbase> use t1_new;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)gbase> select * from t11@gbase_link_t1;
+------+------+
| id   | name |
+------+------+
|    1 | mmm  |
|    2 | ddd  |
+------+------+
2 rows in set (Elapsed: 00:00:00.07)三、数据库A:DBlink验证
gbase> select * from gbase.db_links;                                                           
+--------+---------------+-------------+----------+----------+---------------+---------------------+
| owner  | db_link       | dblink_priv | username | password | host          | created             |
+--------+---------------+-------------+----------+----------+---------------+---------------------+
| public | gbase_link_t1 | PUBLIC      |          | NULL     | gbase_link_t1 | 2025-01-24 17:08:29 |
+--------+---------------+-------------+----------+----------+---------------+---------------------+
1 row in set (Elapsed: 00:00:00.08)

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

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

相关文章

二次封装的方法

二次封装 我们开发中经常需要封装一些第三方组件,那么父组件应该怎么传值,怎么调用封装好的组件原有的属性、插槽、方法,一个个调用虽然可行,但十分麻烦,我们一起来看更简便的方法。 二次封装组件,属性怎…

*胡闹厨房*

前期准备 详细教程 一、创建项目 1、选择Universal 3D,创建项目 2、删除预制文件Readme:点击Remove Readme Assets,弹出框上点击Proceed 3、Edit-Project Setting-Quality,只保留High Fidelity 4、打开 Assets-Settings ,保留URP-HighFidelity-Renderer 和 URP-High…

Effective Objective-C 2.0 读书笔记—— objc_msgSend

Effective Objective-C 2.0 读书笔记—— objc_msgSend 文章目录 Effective Objective-C 2.0 读书笔记—— objc_msgSend引入——静态绑定和动态绑定OC之中动态绑定的实现方法签名方法列表 其他方法objc_msgSend_stretobjc_msgSend_fpretobjc_msgSendSuper 尾调用优化总结参考文…

Three.js实战项目02:vue3+three.js实现汽车展厅项目

文章目录 实战项目02项目预览项目创建初始化项目模型加载与展厅灯光加载汽车模型设置灯光材质设置完整项目下载实战项目02 项目预览 完整项目效果: 项目创建 创建项目: pnpm create vue安装包: pnpm add three@0.153.0 pnpm add gsap初始化项目 修改App.js代码&#x…

Elasticsearch 性能测试工具 Loadgen 之 001——部署及应用详解

在现代软件开发中,性能测试是确保应用程序稳定性和响应速度的关键环节。 今天,我们就来深入了解一款国产化功能强大的 Elasticsearch 负载测试工具——INFINI Loadgen。 一、INFINI Loadgen 简介 Github地址:https://github.com/infinilabs/l…

Python从0到100(八十五):神经网络-使用迁移学习完成猫狗分类

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能…

(1)SpringBoot入门+彩蛋

SpringBoot 官网(中文):Spring Boot 中文文档 Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能…

C语言从入门到进阶

视频:https://www.bilibili.com/video/BV1Vm4y1r7jY?spm_id_from333.788.player.switch&vd_sourcec988f28ad9af37435316731758625407&p23 //枚举常量 enum Sex{MALE,FEMALE,SECRET };printf("%d\n", MALE);//0 printf("%d\n", FEMALE…

MacOS安装Docker battery-historian

文章目录 需求安装battery-historian实测配置国内源相关文章 需求 分析Android电池耗电情况、唤醒、doze状态等都要用battery-historian, 在 MacOS 上安装 battery-historian,可以使用 Docker 进行安装runcare/battery-historian:latest。装完不需要做任…

公式与函数的应用

一 相邻表格相乘 1 也可以复制 打印标题

DeepSeek学术写作测评第二弹:数据分析、图表解读,效果怎么样?

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 针对最近全球热议的DeepSeek开源大模型,娜姐昨天分析了关于论文润色、中译英的详细效果测评: DeepSeek学术写作测评第一弹:论文润色&#…

MongoDB平替数据库对比

背景 项目一直是与实时在线监测相关,特点数据量大,读写操作大,所以选用的是MongoDB。但按趋势来讲,需要有一款国产数据库可替代,实现信创要求。选型对比如下 1. IoTDB 这款是由清华大学主导的开源时序数据库&#x…

动手学深度学习-卷积神经网络-3填充和步幅

目录 填充 步幅 小结 在上一节的例子(下图) 中,输入的高度和宽度都为3,卷积核的高度和宽度都为2,生成的输出表征的维数为22。 正如我们在 上一节中所概括的那样,假设输入形状为nhnw,卷积核形…

简易CPU设计入门:控制总线的剩余信号(二)

项目代码下载 请大家首先准备好本项目所用的源代码。如果已经下载了,那就不用重复下载了。如果还没有下载,那么,请大家点击下方链接,来了解下载本项目的CPU源代码的方法。 CSDN文章:下载本项目代码 上述链接为本项目…

【MySQL】 数据类型

欢迎拜访:雾里看山-CSDN博客 本篇主题:【MySQL】 数据类型 发布时间:2025.1.27 隶属专栏:MySQL 目录 数据类型分类数值类型tinyint类型数值越界测试结果说明 bit类型基本语法使用注意事项 小数类型float语法使用注意事项 decimal语…

深度剖析C++17中的std::optional:处理可能缺失值的利器

文章目录 一、基本概念与设计理念二、构建与初始化(一)默认构造(二)值初始化(三)使用std::make_optional(四)使用std::nullopt 三、访问值(一)value()&#x…

云计算架构学习之LNMP架构部署、架构拆分、负载均衡-会话保持

一.LNMP架构部署 1.1. LNMP服务搭建 1.磁盘信息 2.内存 3.负载信息 4.Nginx你们公司都用来干嘛 5.文件句柄(文件描述符 打开文件最大数量) 6.你处理过系统中的漏洞吗 SSH漏洞 7.你写过什么shell脚本 8.监控通过什么告警 zabbix 具体监控哪些内容 9.mysql redis查询 你好H…

[BSidesCF 2020]Had a bad day1

题目 这里有传参 文件包含使用伪协议读取flag 先读取index.php查看 /index.php?categoryphp://filter/readconvert.base64-encode/resourceindex 解码 index.php源码 <?php$file $_GET[category];if(isset($file)){if( strpos( $file, "woofers" ) ! false …

12 款开源OCR发 PDF 识别框架

2024 年 12 款开源文档解析框架的选型对比评测&#xff1a;PDF解析、OCR识别功能解读、应用场景分析及优缺点比较 这是该系列的第二篇文章&#xff0c;聚焦于智能文档处理&#xff08;特别是 PDF 解析&#xff09;。无论是在模型预训练的数据收集阶段&#xff0c;还是基于 RAG…

银行卡三要素验证接口:方便快捷地实现银行卡核验功能

银行卡三要素验证API&#xff1a;防止欺诈交易的有力武器 随着互联网的发展&#xff0c;电子支付方式也越来越普及。在支付过程中&#xff0c;银行卡是最常用的支付工具之一。然而&#xff0c;在一些支付场景中&#xff0c;需要对用户的银行卡信息进行验证&#xff0c;以确保支…