温馨提示×

温馨提示×

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

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

DB Link怎么配置

发布时间:2026-10-19 21:16:31 来源:亿速云 阅读:99 作者:小樊 栏目:数据库

“DB Link”通常指数据库之间的连接(Database Link),最常见的场景是 Oracle DB Link,也可能是 PostgreSQL、MySQL、SQL Server 等。下面我分别说明。


一、Oracle DB Link 配置(最常见)

1️⃣ 前提条件

  • 本地和远程数据库网络互通
  • 知道远程库:
    • IP / 端口
    • SID 或 Service Name
    • 用户名 / 密码

2️⃣ 配置 TNS(可选但推荐)

在 tnsnames.ora 中配置远程库:

REMOTE_DB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

3️⃣ 创建 DB Link

✅ 私有 DB Link(当前用户可用)

CREATE DATABASE LINK remote_link
CONNECT TO remote_user IDENTIFIED BY "password"
USING 'REMOTE_DB';

或不用 TNS,直接写连接:

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

✅ 公有 DB Link(所有用户可用)

CREATE PUBLIC DATABASE LINK remote_link
CONNECT TO remote_user IDENTIFIED BY "password"
USING 'REMOTE_DB';

4️⃣ 使用 DB Link

SELECT * FROM emp@remote_link;

5️⃣ 查看 / 删除

-- 查看
SELECT * FROM user_db_links;

-- 删除
DROP DATABASE LINK remote_link;

二、PostgreSQL 的 DB Link(dblink 扩展)

1️⃣ 安装扩展

CREATE EXTENSION dblink;

2️⃣ 使用示例

SELECT *
FROM dblink(
  'host=192.168.1.100 port=5432 dbname=test user=u password=p',
  'SELECT id, name FROM users'
) AS t(id int, name text);

三、MySQL(通常用 FEDERATED 或程序连接)

1️⃣ FEDERATED 表方式

CREATE TABLE remote_users (
  id INT,
  name VARCHAR(50)
)
ENGINE=FEDERATED
CONNECTION='mysql://user:pwd@192.168.1.100:3306/db/users';

⚠️ FEDERATED 在新版本中默认不启用


四、SQL Server Linked Server

EXEC sp_addlinkedserver
  @server = 'REMOTE_SRV',
  @srvproduct = '',
  @provider = 'SQLNCLI',
  @datasrc = '192.168.1.100';

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

使用:

SELECT * FROM REMOTE_SRV.db.dbo.table;

五、常见问题

❌ ORA-12154:TNS 配置错误
❌ ORA-02019:DB Link 不存在
❌ 网络不通(防火墙、端口)
❌ 权限不足(CREATE DATABASE LINK)


如果你能告诉我:

  • 使用的是哪种数据库?
  • 本地 & 远程环境?
  • 是否跨库/跨网?

我可以直接给你可用的配置示例。

向AI问一下细节

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

AI
助
手