oracle监听器启动1067错误处理

oracle监听器启动1067错误处理

     在一次web开发的练习中,要用到oracle数据库,然后启动oracle服务时可以正常启动,启动OracleOraDb10g_home1TNSListener服务是却报出1067的错误或是可以启动,但是刷新之后显示关闭,本来可以把报出的错误截图贴上去的。当时处理时没有截图,所以没有图,也没有Myeclipse报出的错误提示,不过我可以把错误的解决办法说一下,以前遇到过一次,解决后没记住,这次又遇到了,折腾了半天才解决,所以给大家说一下,也使我记得牢靠一点!

   1067错误的出现是因为监听文件listener.oratnsnames.ora里面的IP地址和本机的不一样,(网络连接的时候,地址容易发生变化),解决办法可以是修改oracle的配置文件和修改监听配置,开始—>输入Net manager打开监听配置程序,如图:

oracle监听器启动1067错误处理

配置主机名称(自己写的,我的配置的localhost)和端口号,然后在oracle的安装目录中(比如我的F:\oracle\product\10.2.0)中搜索文件listener.oratnsnames.ora文件,分别查看和修改这两个文件中的Host项(用net manager配置了主机名称和端口后,listener.ora文件中会自动改变)改为修改的主机名称:tnsnames.ora中要自己修改,好了,这会儿重启OracleOraDb10g_home1TNSListener服务就可以启动了。

  启动之后,在连接时又会报出如下错误:
java.sql.SQLException: Listener refused the connection with the following error:

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

The Connection descriptor used by the client was:

这会儿是因为没有数据库名(SID),程序不能连接数据库。打开Oracle listener.ora 文件:原文如下

# listener.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora

# Generated by Oracle configuration tools.

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

    )

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

  )

加入如下代码:

(SID_DESC =

      (GLOBAL_DBNAME = ORCL)

      (ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1)

      (SID_NAME = ORCL)

    )

变成:

#listener.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

     (SID_DESC =

      (GLOBAL_DBNAME = ORCL)

      (ORACLE_HOME = /app/oracle/oracle/product/10.2.0/db_1)

      (SID_NAME = ORCL)

    )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

    )

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    )

  )

然后重新启动OracleOraDb10g_home1TNSListener服务就可以了!

你可能感兴趣的:(数据库)