如何配置Oracle跨服务器数据库链_通过create database link语句

大枫酱_9937

大枫酱_9937

2026-06-21

787人浏览

原创

必须满足三个硬性前提:服务端网络连通、tnsnames.ora配置在数据库服务器上(非客户端)、创建者具备create database link或create public database link权限;tnsnames.ora仅被数据库实例所在服务器的$oracle_home/network/admin/目录下文件识别,不读取本地客户端配置。

能直接用 create database link 配置跨服务器访问,但必须满足三个硬性前提:服务端网络连通、tnsnames.ora 配置在数据库服务器上(不是客户端)、创建者有 create database link 或 create public database link 权限。

tnsnames.ora 必须配在数据库服务器上,不是你本地 PL/SQL 客户端

很多人执行 CREATE DATABASE LINK 后一查就报 ORA-12154: TNS:could not resolve service name,根本原因就是把 tnsnames.ora 放错了位置。Oracle 的 DB Link 解析连接串时,只读取数据库实例所在服务器上的 $ORACLE_HOME/network/admin/tnsnames.ora,不认你本机 PL/SQL 或 SQL Developer 里配的别名。

  • 先登录到目标数据库服务器(比如用 ssh),确认 tnsnames.ora 文件里已定义好远程库的服务名,例如:
    STUDYTEST =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.100)(PORT = 1521))
        (CONNECT_DATA = (SERVICE_NAME = orcl))
      )
  • 再在该服务器上用 tnsping STUDYTEST 测试是否能通——不通就别往下走了
  • 如果不想改 tnsnames.ora,也可以把完整连接描述直接写进 USING 子句里(见下一条)

USING 子句支持两种写法:tns 名称 or 完整连接字符串

语法上 USING 后面可以填一个字符串,但含义不同:

  • 填 'STUDYTEST':表示去服务器上的 tnsnames.ora 查这个别名
  • 填完整描述:'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.5.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))':绕过 tnsnames.ora,但注意括号要全、引号要闭合、不能换行
  • 用完整字符串时,HOST 必须是数据库服务器能直接解析的 IP 或主机名(比如不能写 localhost,除非远程库也装在同一台机器上)

PUBLIC 和私有 DB Link 的权限与可见范围差异很大

加不加 PUBLIC 关键字,决定谁能看到、谁可以用:

QuantOracle
QuantOracle

63个确定性量化金融计算器 + 10个通过MCP的复合工作流。期权定价、Greeks、奇异衍生品、风险指标、投资组合优化……

下载
  • CREATE DATABASE LINK dblink_study ...:私有链接,只有当前用户能用,且不会出现在 ALL_DB_LINKS 中(得查 USER_DB_LINKS)
  • CREATE PUBLIC DATABASE LINK dblink_study ...:所有用户都能用,只要他们有访问远程表的权限;它会出现在 DBA_DB_LINKS 和 ALL_DB_LINKS 中
  • 没有中间态:不能“授权给另一个用户用私有链接”,也不能“把私有改成公共”——只能删了重建
  • 如果远程库用户密码含特殊字符(如 @、/),建议用双引号包住密码:IDENTIFIED BY "My@Pass/2026"

测试和排查最常卡在 CONNECT TO 用户没 CREATE SESSION 权限

建完 DB Link 不等于就能查数据。执行 SELECT * FROM emp@dblink_study 报 ORA-01017: invalid username/password 或 ORA-01045: user lacks CREATE SESSION privilege,大概率是远程库那边的账号没开登录权限。

  • 登录远程数据库,运行:GRANT CREATE SESSION TO remote_user;
  • 如果要用远程库里的同义词或视图,还得确认该用户对那些对象有 SELECT 权限
  • 查不到数据但也不报错?可能是远程表名大小写问题:SELECT * FROM "Emp"@dblink 和 SELECT * FROM emp@dblink 可能指向不同对象
  • 性能慢?先查 V$DBLINK 看连接是否处于 OPEN 状态,再确认远程库是否有索引、网络延迟是否高

真正容易被忽略的是:DB Link 建立后,每次查询都走一次远程连接认证,它不像连接池那样复用会话。如果高频调用,最好封装成物化视图或定期同步,而不是裸写 @dblink。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

oracle

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

940

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3112

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1036

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

909

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

474

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2836

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5312

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

827

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程