温馨提示×

温馨提示×

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

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

如何创建数据库DB Link

发布时间:2026-07-02 22:57:53 来源:亿速云 阅读:82 作者:小樊 栏目:数据库

创建数据库 DB Link(数据库链接) 的方法取决于你使用的数据库类型。下面以 OraclePostgreSQL 为例说明,这是最常见的两种场景。


一、Oracle 中创建 DB Link

1️⃣ 创建 DB Link 的基本语法

CREATE DATABASE LINK dblink_name
CONNECT TO remote_user IDENTIFIED BY remote_password
USING 'tns_service_name';

2️⃣ 示例

假设:

  • 远程数据库 TNS 名称:REMOTE_DB
  • 远程用户:scott
  • 密码:tiger
CREATE DATABASE LINK remote_scott
CONNECT TO scott IDENTIFIED BY tiger
USING 'REMOTE_DB';

3️⃣ 使用 DB Link 查询

SELECT * FROM emp@remote_scott;

4️⃣ 创建公共同步 DB Link(所有用户可用)

CREATE PUBLIC DATABASE LINK remote_scott
CONNECT TO scott IDENTIFIED BY tiger
USING 'REMOTE_DB';

5️⃣ 查看和删除 DB Link

-- 查看
SELECT * FROM dba_db_links;

-- 删除
DROP DATABASE LINK remote_scott;
-- 或
DROP PUBLIC DATABASE LINK remote_scott;

二、PostgreSQL 中创建 DB Link

PostgreSQL 使用 dblink 扩展

1️⃣ 安装 dblink 扩展

CREATE EXTENSION IF NOT EXISTS dblink;

2️⃣ 使用 dblink 查询(无需永久创建)

SELECT *
FROM dblink(
    'host=192.168.1.10 dbname=test user=postgres password=123456',
    'SELECT id, name FROM users'
) AS t(id int, name text);

3️⃣ 创建视图方式“模拟 DB Link”

CREATE VIEW remote_users AS
SELECT *
FROM dblink(
    'host=192.168.1.10 dbname=test user=postgres password=123456',
    'SELECT id, name FROM users'
) AS t(id int, name text);

三、MySQL 的说明(重要)

⚠️ MySQL 不支持 DB Link
常见替代方案:

  • 使用 FEDERATED 存储引擎
  • 应用层连接多个数据库
  • 使用中间件(如 MyCat、ShardingSphere)

四、常见问题

✅ 创建 DB Link 需要什么权限?

  • Oracle:CREATE DATABASE LINKCREATE PUBLIC DATABASE LINK
  • PostgreSQL:安装扩展权限

✅ DB Link 安全吗?

  • 不建议明文密码
  • 生产环境建议使用:
    • Oracle Wallet
    • PostgreSQL 的 .pgpass

五、总结

数据库 是否支持 DB Link 方式
Oracle ✅ 原生支持 CREATE DATABASE LINK
PostgreSQL ✅ 扩展支持 dblink
MySQL ❌ 不支持 FEDERATED / 应用层

如果你能告诉我:

  • 使用的是 哪种数据库
  • 是否 跨库 / 跨服务器
  • 是否 长期复用

我可以给你一个完全贴合你场景的示例

向AI问一下细节

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

AI