如何创建本地Oracle数据库服务器地址,详细步骤是什么?

创建本地Oracle数据库服务器地址的核心答案:安装Oracle数据库软件并完成建库后,通过listener.ora配置监听器,然后使用tnsping命令验证连通性,最终在客户端工具中用主机名或IP:端口号/服务名格式拼接完整的服务器地址。

为什么你需要搞清楚本地Oracle服务器地址

很多人第一次接触Oracle数据库时,卡住的往往不是SQL语句,而是根本连不上服务器,你装了Oracle之后,总要有个地址让SQL Developer、PL/SQL Developer或者Java程序能找到它,本地地址搞不定的原因通常集中在监听器没配好、服务名写错、或者主机名解析失败这三个环节。

011.创建Oracle数据库
加载中
011.创建Oracle数据库
_
_TaoGe
8014--
原视频地址

行业共识认为,绝大多数“连接失败”问题不是因为数据库本身坏了,而是地址信息不完整,本地Oracle数据库服务器地址本质上由三个要素组成:主机标识、端口号、服务名,搞清楚这三者的关系,你就能理解为什么有时候用localhost能通、用计算机名却不行,也能明白为什么网上那些教程里的地址拿到你电脑上就失效。

开始之前:本地Oracle环境需要准备什么

确认你需要哪个版本

这里有个现实问题:Oracle 19c、21c和23ai的安装包差异很大,但服务器地址的配置逻辑基本一致,如果你只是学习用,建议装Oracle 19c或21c的Express Edition(XE版),免费且安装过程简单得多,企业版那套复杂的ASM磁盘组和非容器数据库配置,对“创建本地服务器地址”这件事来说并不必要。

安装完成后必须验证的两件事

Oracle软件装完不意味着数据库就能连了,你要打开命令提示符(CMD)或终端,依次跑这两个命令:

  • lsnrctl status 查看监听器是否处于运行状态,这个命令会直接告诉你监听器端口(默认1521)和它正在监听的服务名。
  • sqlplus / as sysdba 以系统管理员身份登录本地数据库,确认实例状态是OPEN。

如果这两步都通过,说明你的数据库“活”着,只是还没暴露地址给外部连接。

本地Oracle数据库服务器地址配置全流程

第一步:修改listener.ora和tnsnames.ora

这两个文件位于$ORACLE_HOME/network/admin目录下,以Oracle 19c Windows环境为例,完整路径通常是D:\app\oracle\product\19.0.0\dbhome_1\network\admin。

listener.ora核心配置长这样:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

HOST字段可以写成localhost,也可以写成你的计算机名,但你需要注意:局域网内其他电脑访问你时,这个地址必须是实际IP或主机名,如果你只在本机用,localhost最稳妥,不涉及网卡冲突。

tnsnames.ora则定义了连接字符串的别名,

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

这里的ORCL就是你要用的连接别名,SERVICE_NAME必须和数据库实际服务名一致。

第二步:修改后重启监听器

配置文件改完不重启监听器是新手最常见的遗漏,用管理员权限打开CMD,依次执行:

lsnrctl stop
lsnrctl start

然后再次运行lsnrctl status里的Services Summary区域会列出监听中的服务列表,如果你的服务名没出现在这里,说明数据库注册到监听器的过程失败了,最常见的原因是数据库实例没有启动或LOCAL_LISTENER参数没有设置正确。

第三步:测试本地Oracle数据库服务器地址是否通

命令行执行:

tnsping ORCL

如果返回类似于Used TNSNAMES adapter to resolve the alias的提示,并且出现OK (0 msec)结尾的响应,说明地址解析和服务名匹配都正常,这一步通过后,你就可以在SQL Developer里输入连接信息了:主机填localhost,端口填1521,服务名填orcl。

本机连接和远程连接地址的区别

很多人在这一步犯迷糊:为什么别人给我一个地址我连不上?原因是本机地址和网络可见地址不一样。

如果你用listener.ora里的HOST字段记住了localhost,那这台机器自己访问没问题,但其他电脑尝试用localhost:1521/orcl连接你时,实际上是在连它们自己的1521端口,自然连不上,这是本地Oracle数据库服务器地址最常见的错位场景。

获取局域网可见的服务器地址

打开CMD输入ipconfig,找到你的IPv4地址(类似168.1.100),然后把listener.ora和tnsnames.ora里的HOST字段都改成这个IP地址,重启监听器,此时其他电脑用168.1.100:1521/orcl就能访问你的Oracle数据库。

防火墙和端口放行

也有一部分情况是监听器配置正确,但Windows防火墙拦截了1521端口,你需要去“Windows Defender防火墙”的“高级设置”里添加入站规则,放行TCP协议1521端口,这一步不做的后果是:tnsping自己本机可以通,换台电脑就不行。

连接字符串中地址的三种写法对比

场景 地址格式 使用方式
本机开发 localhost:1521/orcl 最简单,不依赖网络环境
局域网联调 168.1.100:1521/orcl 其他开发机连接你的数据库
专用连接名称 ORCL 在配置好tnsnames.ora的前提下使用

这个表格里第一种情况和第二种的情况你经常会同时遇到:你既希望本机能连,又希望别人能连,理想方案是在listener.ora里将HOST设为0.0.0(监听所有网卡),然后在客户端工具里区分使用localhost还是实际IP,这也是为什么业内常强调:服务器地址不是一个固定值,它取决于连接方与被连接方的网络关系。

常见的本地Oracle地址配置问题排查

监听器能起但服务不在列表中

执行lsnrctl services看看有没有输出,没有的话,多半是数据库实例没有向监听器注册,这时候你需要在数据库里执行:

ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))';
ALTER SYSTEM REGISTER;

然后再次检查lsnrctl status,服务名应该就会出现在那里了。

主机名解析不一致

如果你在listener.ora里写了计算机名,而客户端工具里填了IP地址,或者反过来,就容易遇到ORA-12514或ORA-12541错误,建议统一用IP地址,因为IP在不同环境下表现最稳定,如果使用云服务器或虚拟机,考虑使用私有IP和公网IP的映射关系,也需要注意是否配置了NAT转发。

tnsping通但SQL Developer连不上

有相当一部分情况是账号被锁了(sqlplus里用alter user scott identified by tiger account unlock;解锁)、或者密码过期,先把这类身份认证问题排除,再回头审查地址和端口。

用Docker替代全套安装来获取代理服务地址

如果你是Mac电脑或者不想在Windows上折腾完整安装包,可以用轻量化方案:拉取Oracle Database的容器镜像运行,得到映射后的本地端口地址。

docker run -d --name oracle19c -p 1521:1521 container-registry.oracle.com/database/express:19c

这种情况下你的地址就是localhost:1521(宿主机端口映射到容器内1521),需要注意的是,容器方案提取连接地址更简单,但数据持久化配置比原生安装稍复杂,如果你连“Oracle数据库服务器地址怎么配置”这个问题都刚起步,还是从原生安装开始更稳妥。

验证整个地址链路是否可用的最终方法

一切配置结束后,在另一台机器或另一个进程内,用Oracle官方最小的连接测试工具sqlplus:

sqlplus username/password@//192.168.1.100:1521/orcl

如果登录成功,你的完整连接链路就算打通了,返回Connected to Oracle Database字样意味着服务器地址已经完全有效,这时候把地址组合保存到你的开发工具里,后续操作就跟连远程数据库没有逻辑差异了。

Q&A:关于本地Oracle数据库服务器地址的高频疑问

本地Oracle数据库服务器地址怎么查询?

地址不是一条命令能直接打印出来的,它由三处信息拼合:主机IP(ipconfig命令获取)、端口(默认1521,可用lsnrctl status查看)、服务名(连接数据库后执行show parameter service_names查看),打个比方,数据库地址和你家地址一样,需要城市、街道和门牌号三者拼接,缺一个就无法定位。

Oracle服务器地址和实例名有什么区别?

实例名(INSTANCE_NAME)对应的是数据库的内存管理结构,服务名(SERVICE_NAME)对外提供连接入口,一个实例可以注册多个服务名,生产环境常把一个实例暴露给不同应用场景,通过不同服务名区分负载策略,但在本地开发场景中,二者通常相同,都是orcl或XE这类名称,不需要过度区分。

连接字符串里SID和SERVICE_NAME有什么不同?

SID标识特定的数据库实例,SERVICE_NAME是服务层面的逻辑名,从Oracle 10g开始行业共识推荐使用SERVICE_NAME,因为它支持负载均衡和故障转移,较少情况下两者不同会导致连接报错,本地环境下你用SERVICE_NAME=orcl完全足够;至于连接远程数据库时遇到SID与SERVICE_NAME不匹配导致的连接超时,就需要好好核对这两者到底哪个对应你的目标库了。

配置本地Oracle数据库服务器地址的核心要素,就是保证监听器文件、系统网络、客户端工具三者对“主机-端口-服务名”的认知一致,这也是所有数据库连接问题的通用排查逻辑,把这套思路记下来,下次遇到连接类报错,你就能按顺序检查而不是一头雾水地反复重启监听器了。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/773759.html

赞 (0)
上一篇 2026年10月23日 12:26
下一篇 2026年10月23日 12:26

相关推荐

  • 广州高宽带cn2域名解析怎么选?CN2服务器域名解析配置教程

    2026年广州地区企业若要实现极速稳定的网络体验,选择广州高宽带cn2域名解析是破局关键,其通过CN2 GIA优质骨干网与智能DNS调度的深度融合,彻底解决南方跨境及高频业务的高延迟与丢包痛点,为何广州高宽带cn2域名解析成为2026年企业刚需粤港澳大湾区网络枢纽的底层逻辑广州作为亚太互联网交换中心,常规BGP……

    2026年4月27日
    5500
  • ASP.NET串口通信如何实现 | ASP.NET串口读取教程

    ASP.NET读串口在ASP.NET Core中高效读取串口数据的关键是使用跨平台兼容的System.IO.Ports库(.NET 6+)或SerialPortStream库,结合异步操作、正确的资源管理和异常处理,确保在Web环境中稳定可靠地获取硬件设备发送的信息,串口通信基础与ASP.NET挑战串口(COM……

    2026年2月8日
    13510
  • ASP.NET多媒体视频播放器如何实现?| ASP.NET多媒体开发指南

    ASP.NET多媒体处理是现代Web开发中不可或缺的核心能力,它使开发者能够高效地集成、管理和优化图像、音频、视频等媒体内容,提升用户体验和应用程序性能,作为微软ASP.NET框架的关键功能,它结合了服务器端处理、客户端交互和云集成,为电商、社交平台、教育系统等场景提供强大支持,通过System.Drawing……

    2026年2月12日
    13060
  • Linux如何查看JDK版本?,查JDK版本命令是什么

    想看 Linux 服务器装了哪个 JDK 版本,最直接的方式是执行 java -version 和 javac -version,再用 echo $JAVA_HOME、which java 交叉确认安装路径,四个命令各看一个维度,配合起来才能回答完整,用 linux 查看 jdk 版本命令之前,先搞懂你看到的是……

    程序编程 2026年11月5日
    000
  • 客户端是怎么请求服务器js文件的,有什么步骤?

    客户端请求服务器JS文件的核心答案是:客户端通过HTTP/HTTPS协议向服务器发起GET请求,服务器将JS文件作为响应体返回,浏览器接收后解析并执行, 整个过程中,DNS解析、TCP握手、HTTP请求头、服务器响应头、缓存策略都会影响请求速度与成功率,客户端请求服务器JS文件的过程是什么?当浏览器需要加载一个……

    2026年10月10日
    100
  • AI导航优惠怎么领,哪个AI工具导航折扣力度大

    在当前的人工智能技术爆发期,企业和个人开发者面临着高昂的软件订阅成本,工具选择的复杂性也日益增加,利用AI导航优惠获取高性价比工具资源,已成为降低运营成本、提升生产效率的核心策略, 这不仅是对资金的优化配置,更是对技术获取渠道的精准把控,通过专业的导航平台整合资源,用户能够以最低的成本获取最前沿的AI能力,从而……

    2026年2月17日
    16600
  • 我的世界服务器加AE为何启动不了,常见原因有哪些

    我的世界服务器加AE启动不了,核心原因基本锁定在模组冲突、Forge版本不匹配、服务端文件损坏这三件事上,解决顺序也应该按这个优先级来排查,AE模组(Applied Energistics,应用能源)对服务端环境要求比较苛刻,它不像客户端那边改个配置就能跑,服务端缺了前置、装错版本,启动器报错是家常便饭,下面按……

    程序编程 2026年10月22日
    100
  • PhotonVPSVPS测评,新加坡、韩国2.5美元/月实测数据与性能表现,PhotonVPSVPS测评

    Photon VPS在新加坡与韩国节点的2.5美元/月套餐实测表现稳定,适合对亚洲低延迟有需求且预算有限的个人开发者、小型博客搭建者及轻量级游戏服用户,其性价比在2026年入门级市场中仍具竞争力,核心配置与价格体系解析5美元档位的硬件实质在2026年的VPS市场中,$2.5/月的定价通常被视为“入门级甜点区……

    2026年5月15日
    5400
  • 我的世界服务器bug刷物品怎么卡,指令代码有哪些

    直接用bug刷物品在绝大多数服务器里都会导致封号,正确做法是掌握漏洞原理后提交给管理组换取奖励,或者利用游戏机制实现等价交换,这几年服务器反作弊系统已经相当成熟,2026年还在靠老一套复制法刷物品,基本等于自投罗网,今天这篇内容,把目前玩家圈里常见的bug类型、具体触发条件、以及服务器的处理机制一次说清楚,让你……

    2026年10月14日
    200
  • ASP.NET缓存方法有哪些?最佳实践示例解析

    ASP.NET缓存方法分析和实践示例ASP.NET 缓存是提升应用性能、减轻数据库压力、改善用户体验的核心机制,深入理解并正确运用各类缓存策略,是构建高性能、可伸缩Web应用的关键, 输出缓存:全页加速利器输出缓存将整个页面或用户控件的渲染结果存储在内存中,后续相同请求直接返回缓存内容,跳过页面生命周期和代码执……

    2026年2月10日
    11910

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注