为什么listener.ora文件里面HOST后面到底应该输入IP地址还是主机名。我的经验告诉我,这边最好使用主机名。很多的时候,一个机器绑定的不只一个IP地址,如HOST后面是IP地址,那么ORACLE的listener只会监听指定的IP地址的访问请求,本机其它IP地址的连接都会拒绝的。另外,创建监听的时候,listener.ora文件默认创建的就是主机名。那么,如果没有特别的需要,就不要再去画蛇添足的修改host_name为IP地址了。

将.ora和tnsnames.ora文件中的HOST信息从原来的主机名字修改为IP地址后,监听可以启动,但是无论如何也监听不到数据库实例的信息(即使反复重启数据库)。

修改后重新启动监听,但是监听一直保持在如下的状态
LSNRCTL> status
Connecting

to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=144.194.192.183)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                21-JUL-2009 14:34:20
Uptime                    0 days 0 hr. 0 min. 36 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /oracle/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=144.194.192.183)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

.【问题原因】
罪魁祸首在/etc/hosts文件!!
先看一下在我处理之前该文件的内容:
[root@testdb ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1   testdb  localhost.localdomain   localhost
::1     localhost6.localdomain6 localhost6

在这种默认配置下(操作系统后的状态),主机名字和本机的IP地址没有对应起来.

.【问题解决】
(1)将/etc/hosts内容修改为:
[root@testdb ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhost.localdomain   localhost
::1     localhost6.localdomain6 localhost6
144.194.192.183   testdb

比较一下与之前文件的不同,这里修改的内容如下:
1)将127.0.0.1后面的testdb主机名删除
2)添加IP地址和主机名对应关系144.194.192.183   testdb

通过ping主机名testdb的方式验证一下修改后的效果:
ora10g@testdb /home/oracle$ ping testdb
PING testdb (144.194.192.183) 56(84) bytes of data.
64 bytes from testdb (144.194.192.183): icmp_seq=1 ttl=64 time=0.082 ms
64 bytes from testdb (144.194.192.183): icmp_seq=2 ttl=64 time=0.047 ms
64 bytes from testdb (144.194.192.183): icmp_seq=3 ttl=64 time=0.050 ms
到此,主机名testdb与IP地址144.194.192.183建立起了对应关系。

(2)重新启动监听

oracle监听器启动错误-TNS-12546: TNS:permission denied

看下监听器状态

oracle@linux-34:~> lsnrctl status  
      
    LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 14-OCT-2011 09:12:37  
      
    Copyright (c) 1991, 2007, Oracle.  All rights reserved.  
      
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux-34.site)(PORT=1521)))  
    TNS-12541: TNS:no listener  
     TNS-12560: TNS:protocol adapter error  
      TNS-00511: No listener  
       Linux Error: 111: Connection refused  
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))  
    TNS-12541: TNS:no listener  
     TNS-12560: TNS:protocol adapter error  
      TNS-00511: No listener  
       Linux Error: 111: Connection refused

启动下试试

oracle@linux-34:~> lsnrctl start  
      
    LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 14-OCT-2011 09:12:45  
      
    Copyright (c) 1991, 2007, Oracle.  All rights reserved.  
      
    Starting /home/oracle/product/11.1.0/db_1/bin/tnslsnr: please wait...  
      
    TNSLSNR for Linux: Version 11.1.0.6.0 - Production  
    System parameter file is /home/oracle/product/11.1.0/db_1/network/admin/listener.ora  
    Log messages written to /home/oracle/diag/tnslsnr/linux-34/listener/alert/log.xml  
    Error listening on: (ADDRESS=(PROTOCOL=ipc)(PARTIAL=yes)(QUEUESIZE=1))  
    No longer listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux-34.site)(PORT=1521)))  
    TNS-12546: TNS:permission denied  
     TNS-12560: TNS:protocol adapter error  
      TNS-00516: Permission denied  
       Linux Error: 13: Permission denied  
      
    Listener failed to start. See the error message(s) above...

竟然报TNS-12546: TNS:permission denied
查看下 /var/tmp/.oracle、/tmp/.oracle 这两个目录的权限访问。

linux-34:~ # ls -lrtd /tmp/.oracle  
    drwxrwxrwx 2 root root 4096 May  9 16:01 /tmp/.oracle  
      
    linux-34:~ # ls -lrtd /var/tmp/.oracle  
    drwxr-xr-x 2 root root 4096 Oct 14 09:45 /var/tmp/.oracle

原因应该就在这了,/var/tmp/.oracle是755权限,把它修改为777。
view plainprint?

linux-34:~ # chmod -R 777 /var/tmp/.oracle

================================================================

oracle监听错误与hosts文件配置

ORACLE数据库的监听起不来报错,很快解决了。在这里记录一下遇到的问题,方便备查。在数据库listener.ora文件里面HOST后面到底应该输入IP地址还是主机名?很多人可能有不同的做法。我的经验是最好使用主机名。比如说,一个机器绑定的不只一个IP地址,你在HOST后面写的是IP地址,那么ORACLE的listener只会监听指定IP地址的访问请求,本机其它IP地址的连接都会拒绝的。而且创建监听的时候,listener.ora文件默认创建的就是主机名。在listener.ora文件里HOST后面如果是主机名,那么就会与/etc/hosts这个文件扯上关系了。

这次出现的问题,就是因为研发人员不小心修改了主机名,而在/etc/hosts文件里又没有修改主机名和IP的对应造成的。
 我们看报错截图:

当你查找1521端口时发现PMON(缺省情况下,PMON 向TCP/IP 的缺省本地地址- 端口1521- 处的本地监听程序注册服务信息)
# netstat -antp | grep 1521
 tcp      0   1    192.168.1.252:36842         202.106.0.20:1521     SYN_SENT 28794/ora_pmon_orcl
检查202.106.0.20这个ip到底哪来的?
 在 /etc/hosts 里居然多了这条记录
202.106.0.20         wxtest
不知道是谁加上的,从来没有这个部署需求。先不管了,直接把这条语句注释掉
 重新启动数据库,重新启动监听,一切正常了!
 附图:

补充:/etc/hosts文件相关的几个错误。
1、/etc/hosts文件oracle没有权限访问
 这时候oracle用户去启动监听会报如下错误
TNS-12545: Connect failed because target host or object does not exist
 TNS-12560: TNS:protocol adapter error
 TNS-00515: Connect failed because target host or object does not exist
Linux Error: 13: Permission denied

2、/etc/hosts文件里面的主机名对应的IP地址没有正确在本机绑定
 这时候oracle用户去启动监听会报如下错误
TNS-12535: TNS:operation timed out
 TNS-12560: TNS:protocol adapter error
 TNS-00505: Operation timed out
 Linux Error: 110: Connection timed out

Oracle LISTENER 主机名修改为IP地址后LISTENER无法监听到实例 oracle监听错误与hosts文件配置的更多相关文章

  1. 通过ping 主机名,或者主机名对应的IP地址

    通过ping 主机名,或者主机名对应的IP地址: 如下图: 懵了吧? 但是你用 ping 主机名 -4

  2. 解决Win8系统修改IP地址后保存不了的方法

    Win8系统用户表示在修改IP地址后,发现无法保存了.遇到这样的问题该怎么办?要怎么设置,win8系统才能在修改完IP地址后还能进行保存.接下来笔者就跟大家分享一个简单有效的方法. 具体步骤如下: 1 ...

  3. Oracle 11g RAC 修改各类IP地址

    Oracle 11g RAC 修改各类IP地址 首先,我们都知道Oracle 11g RAC中的IP主要有:Public IP.VIP.SCAN VIP.Private IP这几种. 一般这类改IP地 ...

  4. CentOS 网络设置修改 指定IP地址 DNS 网关(转)

    CentOS 网络设置修改 指定IP地址 DNS 网关(实测 笔记)   环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 ...

  5. CentOS7主机名修改

    1.命令行更改主机名,重启终端即生效. #hostnamectl --static set-hostname k8s-master

  6. Win10系统修改电脑IP地址

    方法/步骤 1.首先,打开控制面板 2.接着,点开“网络和Internet”,再点开“网络和共享中心” 3.点击"无线网络连接IT4822",可以看到下图 4.然后点击开“属性”, ...

  7. linux -- Ubuntu修改静态IP地址重启后无法上网的解决

    ubuntu设置静态IP地址后,上不了网 文章中也提到,如果是在/etc/resolv.conf添加DNS,由于Ubuntu 有一个 resolvconf 服务,如果重启它,那么 /etc/resol ...

  8. Shell 脚本修改 Mac IP地址

    本篇文章由:http://xinpure.com/shell-script-to-modify-the-mac-ip-address/ 麻烦事 最近在笔记本 WIFI 网络上遇到一个麻烦事, 在公司需 ...

  9. CentOS 修改固定IP地址

    CentOS 修改固定IP地址 参考地址:https://www.cnblogs.com/technology-huangyan/p/9146699.htmlhttps://blog.csdn.net ...

随机推荐

  1. 《Java核心技术 卷II 高级特性(原书第9版)》

    <Java核心技术 卷II 高级特性(原书第9版)> 基本信息 原书名:Core Java Volume II—Advanced Features(Ninth Edition) 作者: ( ...

  2. JConsole详解

    一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...

  3. java web中servlet、jsp、html 互相访问的路径问题

    java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...

  4. C语言:字符串读取流读取文件中的数据

    #include<stdio.h> int main() { //定义文件指针 FILE *f = NULL; //打开文件 f = fopen("1.txt",&qu ...

  5. C#操作AD及Exchange Server总结(一)

    这篇博客的目的:根据亲身项目经历,总结对AD及Exchange Server的操作,包括新建AD用户,设置密码,为AD用户创建邮箱等. 本文完全原创,转载请说明出处,希望对大家有用. 文档目录: 测试 ...

  6. Debug时检测到Loaderlock的解决办法

    昨天遇到了Loaderlock的问题. 出错信息为:检测到LoaderLock,正试图在OS加载程序锁内执行托管代码,不要尝试在DllMain或映像初始化函数内运行托管代码,这样会导致应用程序挂起. ...

  7. STL List::sort() 解析

    看侯捷翻译那本<STL源码剖析>中list内置sort的算法,书中注释说是quick sort,看了半天没看明白, template <class T, class Alloc> ...

  8. word 文档如何加密

    给Word文档加密主要有以下几个方法:文件加密文件菜单设置:1.打开需要加密的Word文档.2.选“文件”的“另存为”,出现“另存为”对话框,在“工具”中选“常规选项”,出现“保存”选项卡.3.分别在 ...

  9. 【树莓派】制作树莓派所使用的img镜像(一)

    最近一直在折腾树莓派,前几天装了10台设备,最近又来了15台开发板子.基本每台设备都需要进行如下操作: 1.安装树莓派OS,并配置键盘.时区.语言编码格式等: 2.新增组.用户.配置静态IP地址: 3 ...

  10. Hibernate框架简介(二)基本使用增、删、改、查

    一.Hibernate框架简介 Hibernate是一个优秀的Java持久化层解决方案,是当今主流的对象-关系映射(ORM,ObjectRelationalMapping)工具 1.1.理解持久化 瞬 ...