如何创建本地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

相关推荐

  • 如何保存ASP.NET程序分页源码?ASP.NET分页源码保存方法详解

    在ASP.NET应用中实现高效的程序分页核心在于结合数据库分页技术与服务器端逻辑控制,通过精准的数据切片减少网络传输与内存占用,以下为专业级实现方案:程序分页的核心优势性能优化仅查询当前页数据(如SQL Server的OFFSET-FETCH或ROW_NUMBER())避免一次性加载全部数据到内存// SQL分……

    程序编程 2026年2月10日
    10800
  • AIoT技术如何赋能智能家居?智能家居系统怎么选

    AIoT技术通过打通设备孤岛,让智能家居从“被动控制”进化为“主动服务”,其核心在于利用边缘计算与云端协同,实现设备间的无感联动与个性化场景自适应,AIoT重塑智能家居底层逻辑过去我们谈智能家居,往往停留在“用手机开关灯”的初级阶段,那时的设备是孤立的岛屿,你需要一个个去连接、去配置,AIoT(人工智能物联网……

    2026年6月13日
    5500
  • 联想服务器BIOS怎么U盘启动?,联想服务器U盘启动按F几?

    联想服务器设置U盘启动的核心操作是:开机按F1(部分机型F2或Del)进入BIOS/UEFI,在Boot或Startup菜单中把USB HDD或U盘设备调到第一启动项,保存后重启即可, 如果机器支持F12启动菜单,直接按F12选U盘更省事,下面按机型、步骤、排错、对比和费用逐层说清,联想服务器怎么进入BIOS设……

    2026年10月16日
    100
  • 我的世界服务器OP如何加名字前缀,指令是什么?

    给我的世界服务器玩家加名字前缀,核心方法是用Bukkit/Spigot端的权限插件(如LuckPerms、PermissionsEx)配合聊天前缀插件,或是直接用DeluxeTags、AnimatedNames等轻量插件一键设置,网上流传的“改服务器文件”老办法早已过时,2026年主流做法既安全又支持中文前缀……

    2026年10月8日
    100
  • 大促防刷的人机校验影响转化吗?,怎么办?

    大促防刷的人机校验对转化的真实影响,取决于你把它当成“拦路闸”还是“分诊台”,做成闸,真实用户会流失;做成分诊台,垃圾流量被挡在结算前,真实买家的支付路径反而更顺,大促防刷人机校验会不会误伤真实用户会,而且误伤往往集中在最不该出错的环节,大促零点、秒杀场、库存告急时,人机校验弹出的时机越靠后,真实用户被挡在支付……

    2026年9月9日
    500
  • AIoT的生态大会是什么?2026年AIoT生态大会有哪些看点

    AIoT产业已步入“深水区”,单纯的技术堆叠已无法驱动商业价值的指数级增长,构建开放、协同、共赢的生态系统成为行业发展的唯一确定性路径,在这一进程中,AIoT的生态大会不仅是技术展示的窗口,更是产业链上下游重构价值逻辑、确立行业标准的战略高地,未来的竞争不再是单一企业的单打独斗,而是生态系统之间的综合博弈,核心……

    2026年3月19日
    13000
  • ICE服务器3月26日到底怎么样了,现在恢复正常了吗?

    3月26日ICE服务器整体不是“全面关停”状态,主入口在多数时段可以访问;但部分子服、手机版入口以及华北、华东、华南网络会出现排队、延迟或分批维护,要判断你遇到的是服务器维护还是本地网络,最稳的是看官方状态页、公告时间戳,再做多节点实测,ICE服务器3月26日怎么样了?先看三个可验证信号你搜“ice服务器3月2……

    2026年9月25日
    000
  • Excel次幂该怎么计算,如何用公式快速求次方?

    Excel 次幂(幂运算)计算指南在 Excel 中,计算一个数的次幂(即乘方运算)主要有三种常用的方法:使用运算符、使用内置函数以及处理特殊指数,使用脱字符运算符 ^ (最推荐)这是 Excel 中最简单、最直观的方法,类似于数学中的上标表示,语法: =底数^指数操作步骤:直接输入数值:=2^3 (结果为 8……

    2026年7月13日
    19400
  • 无法与主DNS服务器通信怎么办,DNS服务器未响应怎么解决?

    遇到“无法与主DNS服务器通信”的报错,核心解决办法就三步:先把路由器重启,再手动把电脑手机的DNS改成114.114.114.114或223.5.5.5,最后在命令行里刷一遍DNS缓存,这套组合拳能解决90%以上的DNS通信故障,剩下那部分通常是运营商光猫或网线物理链路出了问题,先搞明白:主DNS服务器通信失……

    2026年10月8日
    200
  • 怎么看服务器的端口IP,有哪些查询方法?

    要查看服务器的端口和IP,最直接的办法是登录服务器后输入 ip addr 看IP,再用 netstat -tulnp 或 ss -tulnp 看端口监听状态, 下面我把常用查询方法、命令细节和排错思路拆开讲,保证你能照着操作,查看服务器IP地址的常用方法IP地址分内网和公网,查看方法略有区别,别嫌基础,实际工作……

    2026年9月27日
    100

发表回复

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