YashanDB 知识库|轻松打通多库数据,YashanDB DBLink 使用指南!

今天来聊一聊在 YashanDB 中如何通过 DBLink 技术,优雅地实现跨库访问。不论是访问其他 YashanDB 实例,还是连接到 Oracle 数据库,DBLink 都能让跨实例操作变得像操作本地表一样丝滑!

一、为什么要用 DBLink?

在实际业务开发中,我们经常会遇到这样的场景:

数据分散在不同的数据库实例中,需要统一查询、统计;

应用程序要同时读写多个数据库,跨库操作复杂;

需要在不同系统之间实现数据整合和同步。

传统做法是让应用层分别连接多个数据库,自己写逻辑做数据整合,但这种方式开发维护成本高,性能也受限。而通过数据库内置的 DBLink 功能,可以直接用 SQL 完成跨实例的数据访问、更新和同步,简单高效!

二、准备工作:环境说明

本次操作的环境配置如下:

YashanDB 实例 1:192.168.23.53:3688

YashanDB 实例 2:192.168.23.53:5688

Oracle 实例:192.168.33.174:1521

三、操作步骤详解

创建用户并授权

首先在本地 YashanDB 实例创建一个专门用于 DBLink 的账号,并授予必要权限:

sql 复制代码
create user test identified by yasdb_123 default tablespace users;
grant CREATE DATABASE LINK to test;

建立 YashanDB → YashanDB 的 DBLink

连接到第一个 YashanDB 实例,创建一个指向第二个实例的 DBLink:

sql 复制代码
create database link dblink_yashan
connect to test identified by yasdb_123
using '192.168.23.53:5688';

通过 DBLink 查询远程数据

创建好 DBLink 后,就可以像查询本地表一样,直接访问远程实例的数据:

sql 复制代码
select * from t1@dblink_yashan;

通过 DBLink 修改远程数据

不仅能查询,还能直接操作远端表,包括插入、更新和删除:

插入数据:

sql 复制代码
insert into t1@dblink_yashan values(73, 29, 3, 5, 18, 'new row 1');
insert into t1@dblink_yashan values(31, 49, 20, 50, 71, 'new row 2');

更新数据:

ini 复制代码
update t1@dblink_yashan set x1 = 'Updated by DBLINK';

删除数据:

sql 复制代码
delete from t1@dblink_yashan where a1 = 73;

建立 YashanDB → Oracle 的 DBLink

YashanDB 还支持直接连接到 Oracle 数据库。创建指向 Oracle 实例的 DBLink:

sql 复制代码
create database link dblink_oracle
connect to test identified by 123456
using 'oracle:192.168.33.174/orcl';

通过 DBLink 查询 Oracle 数据

查询 Oracle 实例的表数据也很方便:

sql 复制代码
select * from t1@dblink_oracle;

联合查询:Oracle + YashanDB

甚至可以在一条 SQL 中,同时联动两个不同库的数据:

sql 复制代码
select o1.a1, o1.b1, o1.c1, y1.d1, y1.e1, y1.x1
from t1@dblink_oracle o1, t1@dblink_yashan y1
where o1.a1 = y1.a1;

通过 DBLink 修改 Oracle 数据

同样支持对 Oracle 实例表的数据插入、更新、删除操作:

插入数据:

sql 复制代码
insert into t1@dblink_oracle values(73, 29, 3, 5, 18, 'new row from yashan');
insert into t1@dblink_oracle values(31, 49, 20, 50, 71, 'another row');

更新数据:

ini 复制代码
update t1@dblink_oracle set x1 = 'Updated by YashanDB DBLINK';

删除数据:

sql 复制代码
delete from t1@dblink_oracle where a1 = 73;

四、总结

通过简单几步操作,YashanDB 的 DBLink 功能就能轻松打通本地实例、其他 YashanDB 实例,甚至是 Oracle 数据库之间的数据访问和操作需求。

DBLink 不仅提升了跨库处理效率,还极大简化了应用开发与维护成本,是 YashanDB 在多库协同场景下的重要利器!

相关推荐
不羁。。1 小时前
【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
数据库·sql·mybatis
AwhiteV1 小时前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
m0_595199852 小时前
Redis(以Django为例,含具体操作步骤)
数据库·redis·缓存
爱尚你19932 小时前
MySQL 三大日志:redo log、undo log、binlog 详解
数据库·mysql
小猿姐3 小时前
KubeBlocks AI:AI时代的云原生数据库运维探索
数据库·人工智能·云原生·kubeblocks
NocoBase5 小时前
10 个开源工具,快速构建数据应用
数据库·低代码·开源
麻辣清汤5 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi
Kan先生7 小时前
对象存储解决方案:MinIO 的架构与代码实战
数据库·python
超级迅猛龙7 小时前
保姆级Debezium抽取SQL Server同步kafka
数据库·hadoop·mysql·sqlserver·kafka·linq·cdc
杨过过儿7 小时前
【Task02】:四步构建简单rag(第一章3节)
android·java·数据库