使用的oracle安装文件:10201_database_linux_x86_64.cpio.gz
在RHEL5.0上安装完成ORACLE10g后,启动监听器时遇到了一点小麻烦。启动错误如下:
TNS-12537: TNS:connection closed
TNS-12560: TNS:protocol adapter error
TNS-00507: Connection closed
Linux Error: 29: Illegal seek
 
在监听器文件中使用localhost.localdomain作为主机标识,所以在/etc/hosts中必须有localhost(去掉domain名称的主机名)
127.0.0.1 localhost.localdomain localhost
 
这样可以启动监听器了,但仍不能使用tnsname来建立数据库连接
需要启动监听实例
有两个办法,一个是将默认实例更改为你自己的实例(本例为orcl),另一个办法是增加监听实例
1.将PLSExtProc更改为orcl,更改后的listener.ora为
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
      #(PROGRAM = extproc)
    )
  )
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
  )
2.增加一个orcl的监听实例,更改后的listener.ora为
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
   (SID_DESC =
       (GLOBAL_DBNAME = orcl)
       (ORACLE_HOME = /opt/oracle/product/10.2.0/db_1)
       (SID_NAME = orcl)
     )
  )
 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
  )