温馨提示×

温馨提示×

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

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

怎么查看DB Link状态

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

查看 DB Link(数据库链接)状态 的方法取决于你用的是哪种数据库。下面以 Oracle 为主(最常见),并补充 MySQL / PostgreSQL 的说明。


一、Oracle 中查看 DB Link 状态

1️⃣ 查看当前用户可用的 DB Link

SELECT db_link, username, host FROM user_db_links;

2️⃣ 查看所有 DB Link(需要权限)

SELECT db_link, owner, username, host FROM dba_db_links;

3️⃣ 测试 DB Link 是否可用(最常用 ✅)

SELECT 1 FROM dual@db_link_name;

✅ 能返回结果 → DB Link 正常
❌ 报错(ORA-12154、ORA-02019、ORA-12541 等) → DB Link 异常


4️⃣ 查看 DB Link 是否处于“打开”状态

SELECT * FROM v$dblink;

说明:

  • 只有在 当前 session 使用过 DB Link 才会有记录
  • 可查看是否仍然打开、连接时间等

5️⃣ 查看 DB Link 连接失败的常见原因

SELECT * FROM dba_objects WHERE object_type = 'DATABASE LINK';

常见错误:

  • ORA-12154:TNS 无法解析
  • ORA-02019:未找到 DB Link
  • ORA-12541:无法连接远程监听
  • ORA-01017:用户名/密码错误

二、MySQL 中(FEDERATED 引擎)

MySQL 没有 Oracle 那种 DB Link,但可用 FEDERATED 表 模拟。

查看 FEDERATED 表状态

SHOW TABLE STATUS WHERE Engine = 'FEDERATED';

测试连接

SELECT * FROM federated_table LIMIT 1;

三、PostgreSQL 中(dblink 扩展)

1️⃣ 查看是否安装 dblink

SELECT * FROM pg_extension WHERE extname = 'dblink';

2️⃣ 测试 DB Link

SELECT dblink_connect('conn_name', 'host=xxx dbname=xxx user=xxx password=xxx');
SELECT * FROM dblink('conn_name', 'SELECT 1') AS t(a int);

四、总结(快速判断)

数据库 查看方式
Oracle SELECT 1 FROM dual@dblink
Oracle v$dblink
MySQL FEDERATED 表
PostgreSQL dblink() 函数

如果你能告诉我:

  • ✅ 数据库类型(Oracle / MySQL / PG)
  • ✅ 是 当前用户 还是 所有用户 的 DB Link
  • ✅ 是否报错(贴错误信息)

我可以给你 精确到命令级别 的排查方案。

向AI问一下细节

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

AI