温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

数据库DB Link是啥原理

发布时间:2026-09-08 15:27:54 来源:亿速云 阅读:95 作者:小樊 栏目:数据库

数据库 DB Link(Database Link,数据库链接)常见于 Oracle 等关系型数据库中,用来在一个数据库实例中访问另一个数据库实例中的对象(表、视图等),就像访问本地表一样。

下面从「是什么 → 原理 → 工作流程 → 关键点」给你讲清楚。


一、DB Link 是什么

DB Link 是数据库中的一个逻辑对象,它保存了:

  • 远程数据库的连接信息(IP、端口、服务名/SID)
  • 远程数据库的认证信息(用户名、密码)
  • 连接类型(公有 / 私有)

有了它,你可以写:

SELECT * FROM emp@remote_db;

就像 emp 表在本地一样。


二、核心原理(重点)

DB Link 本质:本地数据库作为“客户端”,远程数据库作为“服务端”

简化原理图

本地数据库进程
   ↓(建立网络连接)
远程数据库监听端口
   ↓(鉴权)
远程数据库会话
   ↓(执行 SQL)
返回结果给本地

关键点:

  • DB Link 不是数据同步
  • 数据实时从远程查
  • 本地数据库只是“转发 SQL”

三、一次 DB Link 查询的执行流程

以:

SELECT * FROM emp@remote_db;

执行步骤

  1. 本地解析 SQL,发现 @remote_db
  2. 本地数据库:
    • 读取 DB Link 定义
    • 使用配置的用户名/密码
  3. 建立到远程数据库的网络连接(TCP)
  4. 在远程库:
    • 创建会话
    • 执行 SELECT * FROM emp
  5. 远程把结果集返回给本地
  6. 本地再返回给客户端

四、连接建立方式

1️⃣ 本地发起连接(最常见)

  • 本地数据库主动连远程
  • 远程只需正常监听

2️⃣ 连接类型

类型 说明
Private 只有创建用户能用
Public 所有用户可用
Global 跨目录服务(少用)

五、和“数据库同步”的区别

对比 DB Link 数据同步
是否复制数据
实时性 实时 延迟
网络依赖
性能 受网络影响 本地快

六、常见使用场景

  • 跨库查询(报表)
  • 数据稽核
  • 老系统迁移过渡
  • 分布式数据库雏形

七、性能和风险注意

⚠️ 常见问题:

  • 网络慢 → 查询极慢
  • 大表 JOIN → 灾难
  • 远程锁表 → 本地阻塞
  • 密码过期 → Link 失效

✅ 优化建议:

  • 远程先过滤(WHERE 下推)
  • 少用 JOIN
  • 必要时用物化视图

如果你愿意,我可以:

  • 画一张 DB Link 网络交互图
  • 对比 Oracle / PostgreSQL / MySQL 的跨库方案
  • DB Link 在内网/云环境下的坑

你想看哪一个?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI