今天照例开始学习oracle,实例启动了,但是listener却突然很奇怪,怎么都起不来。

我检查了下listener配置,网络配置,ssh服务,一切都正常,最后看防火墙开着,关了以后,问题还是照旧。

[oracle@oel log]$ lsnrctl

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 02-MAY-2013 12:11:38

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

sWelcome to LSNRCTL, type "help" for information.

LSNRCTL> tatus

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=oel.oracle.com)(PORT=1521))

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

   Linux Error: 111: Connection refused

Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))

start

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

   Linux Error: 111: Connection refused

LSNRCTL> Starting /u01/app/ora10g/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

System parameter file is /u01/app/ora10g/product/10.2.0/db_1/network/admin/listener.ora

Log messages written to /u01/app/ora10g/product/10.2.0/db_1/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel.oracle.com)(PORT=1521)))

Error listening on: (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))

TNS-12555: TNS:permission denied

 TNS-12560: TNS:protocol adapter error

  TNS-00525: Insufficient privilege for operation

   Linux Error: 1: Operation not permitted

Listener failed to start. See the error message(s) above...

最后各处查找,总算找到了问题根源。在 /var/tmp下的 .oracle权限有问题

[root@oel tmp]# ll -a

total 24

drwxrwxrwt  4 root   root 4096 May  2 12:10 .

drwxr-xr-x 24 root   root 4096 Jun 16  2012 ..

drwxrwxrwt  2 root   root 4096 May  2 12:11 .oracle

drwx------  2 oracle dba  4096 May  1 12:36 yum-oracle-n3UNcY

[root@oel tmp]# cd .oracle

[root@oel .oracle]# ll

total 0

srwxrwxrwx 1 oracle dba 0 Apr  1 16:44 s#16480.1

srwxrwxrwx 1 oracle dba 0 Apr  1 16:44 s#16480.2

srwxrwxrwx 1 ora11g dba 0 Apr 21 16:59 s#2171.1

srwxrwxrwx 1 ora11g dba 0 Apr 21 16:59 s#2171.2

srwxrwxrwx 1 ora11g dba 0 Apr 21 16:59 sPNPKEY

[root@oel .oracle]# 

改正一下,应该是上次启动的时候用root来启动,之后再用oracle用户就启动不了了。

[root@oel tmp]# chown oracle:dba .oracle

[root@oel tmp]# ll

total 4

drwx------ 2 oracle dba 4096 May  1 12:36 yum-oracle-n3UNcY

[root@oel tmp]# ll -a

total 24

drwxrwxrwt  4 root   root 4096 May  2 12:10 .

drwxr-xr-x 24 root   root 4096 Jun 16  2012 ..

drwxrwxrwt  2 oracle dba  4096 May  2 12:11 .oracle

drwx------  2 oracle dba  4096 May  1 12:36 yum-oracle-n3UNcY

修改以后,再启动一次试试。成功了。

LSNRCTL> status

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=oel.oracle.com)(PORT=1521))

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

   Linux Error: 111: Connection refused

Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))

startTNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

  TNS-00511: No listener

   Linux Error: 111: Connection refused

LSNRCTL> 

Starting /u01/app/ora10g/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.1.0 - Production

System parameter file is /u01/app/ora10g/product/10.2.0/db_1/network/admin/listener.ora

Log messages written to /u01/app/ora10g/product/10.2.0/db_1/network/log/listener.log

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel.oracle.com)(PORT=1521)))

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=oel.oracle.com)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date                02-MAY-2013 12:15:07

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/ora10g/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File         /u01/app/ora10g/product/10.2.0/db_1/network/log/listener.log

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel.oracle.com)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

Services Summary...

Service "CUST01" has 1 instance(s).

  Instance "CUST01", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

LSNRCTL>