温馨提示×

温馨提示×

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

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

不同库如何用DB Link

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

在数据库里,DB Link(数据库链接) 的作用是让你在 一个数据库实例中,直接访问另一个数据库实例中的表/视图。不同数据库产品的做法不一样,下面按常见数据库分别说明。


一、Oracle → Oracle(最典型)

1. 创建 DB Link

CREATE DATABASE LINK dblink_to_b
CONNECT TO remote_user IDENTIFIED BY "password"
USING '(DESCRIPTION=
  (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.2)(PORT=1521))
  (CONNECT_DATA=(SERVICE_NAME=orclb))
)';

2. 使用 DB Link

SELECT * FROM emp@dblink_to_b;

3. 常见用途

  • 跨库查询
  • 跨库 INSERT / UPDATE
  • 数据同步

二、MySQL(本身没有 DB Link)

MySQL 没有原生 DB Link,常用替代方案:

方案 1:FEDERATED 引擎

CREATE TABLE remote_emp (
  id INT,
  name VARCHAR(50)
) ENGINE=FEDERATED
CONNECTION='mysql://user:pwd@192.168.1.2:3306/db_b/emp';

然后:

SELECT * FROM remote_emp;

⚠ 限制:

  • 只支持 MySQL
  • 性能较差
  • 不支持事务

方案 2:应用层 / 中间件

  • 程序里分别连两个库
  • 使用 MyCat / ShardingSphere

三、PostgreSQL → PostgreSQL(或异构)

1. 安装扩展

CREATE EXTENSION postgres_fdw;

2. 创建外部服务

CREATE SERVER remote_pg
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '192.168.1.2', dbname 'db_b', port '5432');

3. 用户映射

CREATE USER MAPPING FOR local_user
SERVER remote_pg
OPTIONS (user 'remote_user', password 'pwd');

4. 创建外部表

CREATE FOREIGN TABLE emp (
  id int,
  name text
) SERVER remote_pg
OPTIONS (schema_name 'public', table_name 'emp');

使用:

SELECT * FROM emp;

四、SQL Server(Linked Server)

1. 创建 Linked Server

EXEC sp_addlinkedserver
  @server='SRV_B',
  @srvproduct='',
  @provider='SQLNCLI',
  @datasrc='192.168.1.2';

2. 登录映射

EXEC sp_addlinkedsrvlogin
  @rmtsrvname='SRV_B',
  @useself='false',
  @rmtuser='user',
  @rmtpassword='pwd';

3. 使用

SELECT * FROM SRV_B.db_b.dbo.emp;

五、异构数据库(如 Oracle 访问 MySQL)

常用方式:

  • Oracle Gateway
  • ODBC + DG4ODBC
  • 中间件(DataX、Kafka、ETL)

六、DB Link 使用建议

✅ 适合:

  • 少量跨库查询
  • 报表、同步

❌ 不适合:

  • 高频大事务
  • 跨库 JOIN 大量数据

如果你能告诉我:

  • 使用的数据库类型(Oracle / MySQL / PG / SQL Server)
  • 同构还是异构
  • 使用场景(查询 / 同步 / 报表)

我可以给你 更精确的 DB Link 配置示例

向AI问一下细节

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

AI