Linux下监听程序TNS-12543错误解决方法

遇到的问题:安装虚拟机Vmware之后,打开系统项目虚拟机,经过以下处理步骤

1) root 123456

2)启动Oracle

2.1 su - oracle  oracle

2.2 lsnrctl start       --启动Listener

2.3 sqlplus / as sysdba

2.4 startup

2.5 exit

3)启动JBOSS

3.1 su - portal  portal

3.2 cd Jboss/bin

3.3 ./startup.sh

在处理  lsnrctl start  启动监听器的时候,控制台抛出以下错误信息:

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 15-10��-2010 12:32:19

 

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

 

Starting /home/oracle/10.2.0/db_1/bin/tnslsnr: please wait...

 

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

System parameter file is /home/oracle/10.2.0/db_1/network/admin/listener.ora

Log messages written to /home/oracle/10.2.0/db_1/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cmms)(PORT=1521)))

 

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12543: TNS:destination host unreachable

 TNS-12560: TNS:protocol adapter error

  TNS-00513: Destination host unreachable

   Linux Error: 101: Network is unreachable

 

处理过程:

Oracle  的 listener.ora 文件里面HOST后面应该输入IP地址还是主机名呢?最好使用主机名。很多时候,一个机器绑定的不止一个IP地址,如果HOST后面是IP地址,那么Oracle的Listener只会监听指定的IP地址的访问请求,本机其他的IP地址的连接都会拒绝的。当创建监听的时候,listener.ora 文件里面默认创建的是主机名。那么,企业、邮局,如果没有特别的需要,如果没有特别的需要就不要画蛇添足的去修改host_name为IP地址了。但是,如果HOST后面是主机名,那么就会与/etc/hosts 这个文件扯上关系了。

第一种情况:/etc/hosts文件oracle没有权限访问

在etc下打开终端

[root@localhost etc]# l hosts

 

这时候oracle用户去启动listener

[oracle@localhost admin]$ lsnrctl start

 

[oracle@localhost admin]$ lsnrctl start

 

 

第二种情况,就是现在遇到的情况是:2/etc/hosts文件里面的主机名对应的IP地址没有在本机绑定

 

查看本机/etc/hosts文件里面主机定义的IP信息,用以下命令

[root@localhost etc]# cat /etc/hosts

 

查找本机的IP地址有没有指定的IP,用以下命令
[root@localhost etc]# ifconfig|grep xxxx.xxxx.xxxx.xxxx

 

现在问题明朗了,通过cat /etc/hosts命令查看etc/hosts文件中主机对应的ip192.168.238.128

但是我安装虚拟机的时候,virtual  network editor (虚拟网络编辑器)中类型为Host-only的VMnet1 定义的子网IP为192.168.89.0,与192.168.238.128中的网段有冲突,

因此更改为192.168.89.128,问题解决。

因此当吧虚拟机中的项目拷贝到另一个电脑中时,由于虚拟机的安装环境更改需要更改以下虚拟网络IP

你可能感兴趣的:(Linux下监听程序TNS-12543错误解决方法)