Oracle修改监听IP地址---- hostname必须填127.0.0.1的问题----除本机外其它电脑连接不了本机oracle数据服务器

本文解决Oracle11g断网安装后其他主机无法连接的问题。通过修改listener.ora和tnsnames.ora文件中的主机名,实现正确配置网络监听。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle 11g断网安装时,没有检测net的功能,所以安装完后,netstat -an 发现自动监听的是127.0.0.1:1521,这样安装完成后,其他的主机根本无法连接,是什么原因呢?

 

排错后发现,是主机名的问题,操作:

1.在cmd中,输入hostname 发现主机名


2.修改监听文件 listener.ora 文件在 D:\app\Administrator\product\11.2.0\dbhome_1\network\admin 目录下,注释部分的主机名原为Localhost

# listener.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
 
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-ASA0GB1AV61)(PORT = 1521))//WIN-ASA0GB1AV61原为localhost
) ) ADR_BASE_LISTENER = D:\app\Administrator


3.
把其中的localhost换成自己的主机名
 
再修改主机名文件 tnsnames.ora
# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
 
LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-ASA0GB1AV61)(PORT = 1521))//WIN..原为localhost
 
 
ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
 
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-ASA0GB1AV61)(PORT = 1521))//WIN..原为localhost
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

同样把localhost换成自己的主机名
再用lsnrctl.ora检测,发现监听IP地址变为:192.168.1.251:1521 0.0.0.0 (192.168.1.251为本主机IP)
 
成功!





http://www.cnblogs.com/xing901022/p/3327857.html




<think>好的,我现在需要帮助用户解决ORA-12541错误,也就是“TNS:no listener”的问题。首先,我得回忆一下这个错误的常见原因和解决方法。根据用户提供的引用内容,似乎涉及到Oracle环境的设置,比如目录权限和配置,这可能和监听器配置有关。 首先,ORA-12541通常表示客户端无法连接监听器,可能的原因包括监听器未启动、监听地址配置错误,或者防火墙阻止了连接。用户提到的引用中提到了设置目录权限和Oracle环境,这可能意味着需要检查监听器的配置文件是否正确,比如listener.ora中的HOST和PORT是否正确,是否使用了正确的主机名或IP地址。 接下来,我应该分步骤来排查问题。第一步是检查监听器状态,使用lsnrctl status命令查看监听器是否在运行。如果未运行,可能需要启动它。如果监听器已经启动,但问题依旧,那么需要检查listener.ora文件中的配置是否正确,特别是HOST参数是否指向了正确的主机名或IP地址。有时候,HOST设置为localhost或127.0.0.1可能导致远程连接问题,应该改为实际的主机名或IP。 然后,检查客户端的tnsnames.ora文件,确保连接字符串中的主机名和端口与监听器配置一致。如果这里不匹配,也会导致连接失败。另,防火墙设置可能阻止了1521端口的通信,需要确认防火墙是否开放了这个端口。 用户提供的引用中提到了创建目录并设置权限,这也提示可能需要检查Oracle用户的权限,确保监听器进程有权限访问相关目录和文件。此,环境变量如ORACLE_HOME和PATH是否正确设置,可能影响监听器的启动和运行。 最后,如果以上步骤都正确,可能需要查看监听器的日志文件,通常位于$ORACLE_HOME/network/log目录下,检查是否有错误信息,帮助进一步诊断问题。 总结下来,解决ORA-12541需要系统性地检查监听器的状态、配置文件、网络设置以及权限问题。确保每一步都正确配置,并逐一排可能的原因,才能有效解决问题。</think>### ORA-12541: TNS 无监听程序 解决方案 #### 1. 检查监听器状态 首先确认Oracle监听服务是否正常运行: ```bash lsnrctl status # 若未启动,执行: lsnrctl start ``` 如果监听器未启动或启动失败,需进一步检查配置[^1]。 #### 2. 验证监听器配置 检查`$ORACLE_HOME/network/admin/listener.ora`文件: ```bash # 示例配置片段 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = /u01/app/oracle/product/9.2.0) (SID_NAME = ORCL) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521)) ) ) ``` 注意`HOST`必须为服务器实际主机名或IP,不能使用`localhost`。 #### 3. 检查网络连通性 使用telnet测试端口可达性: ```bash telnet <服务器IP> 1521 ``` 若无法连接,需检查: - 防火墙是否开放1521端口 - 服务器是否启用IP转发 - 网络路由是否正常 #### 4. 验证客户端配置 检查客户端`tnsnames.ora`配置: ```bash ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 服务器真实IP)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) ) ``` #### 5. 检查权限设置 确保Oracle用户具有相关目录权限: ```bash chown -R oracle:oinstall /u01/app/oracle chmod -R 755 /var/opt/oracle ``` 如引用内容所示,正确的权限设置是环境正常工作的基础[^1]。 #### 6. 查看监听日志 分析监听日志获取详细信息: ```bash tail -f $ORACLE_HOME/network/log/listener.log ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值