数据库 DB Link(Database Link,数据库链接) 是一种跨数据库实例访问对象的机制,常用于 Oracle、PostgreSQL、DB2 等数据库中。它允许你在一个数据库会话中,直接访问另一个数据库中的表、视图或执行远程 SQL。
可以把 DB Link 理解为:
“在当前数据库里,建立一条通往另一个数据库的‘通道’或‘快捷方式’”
有了这个通道,你就可以像访问本地表一样访问远程数据库的数据。
✅ 跨数据库实例查询数据
✅ 跨库进行数据同步、迁移
✅ 分布式数据库访问
✅ 本地表与远程表进行 JOIN
✅ 在存储过程、视图中使用远程数据
SELECT *
FROM remote_table@remote_db;
SELECT a.id, b.name
FROM local_table a
JOIN remote_table@remote_db b
ON a.id = b.id;
INSERT INTO local_table
SELECT * FROM remote_table@remote_db;
CREATE DATABASE LINK remote_db
CONNECT TO remote_user IDENTIFIED BY "password"
USING 'remote_tns_name';
或:
CREATE DATABASE LINK remote_db
USING 'DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.10)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=orcl)))';
SELECT * FROM emp@remote_db;
SELECT * FROM user_db_links;
DROP DATABASE LINK remote_db;
| 类型 | 说明 |
|---|---|
| 私有 DB Link | 仅创建用户可用 |
| 公有 DB Link | 所有用户可用 |
| 固定用户 DB Link | 指定远程用户 |
| 当前用户 DB Link | 使用当前用户身份 |
| 方案 | 适合场景 |
|---|---|
| DB Link | 数据库层跨库访问 |
| ETL | 大数据量同步 |
| 数据同步工具 | 实时 / 准实时 |
| API | 微服务架构 |
| 视图 / 物化视图 | 缓存远程数据 |
⚠️ 不要在 DB Link 上做大量 JOIN
⚠️ 避免长事务跨 DB Link
⚠️ 密码变更需同步更新 DB Link
⚠️ 生产环境慎用 PUBLIC DB Link
DB Link 是数据库层面的“远程数据库连接通道”,用于在一个数据库中直接访问另一个数据库的对象。
如果你愿意,我可以:
你更想了解哪一部分?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。