阿宝 Keep Walking......


JUST DO IT, DO YOUR BEST ! -- 勿在浮沙筑高台

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  49 Posts :: 6 Stories :: 26 Comments :: 0 Trackbacks

最近在测试程序的时候发现数据库服务器总是无法连接,但是登入到数据库服务器上用SQLPlus连接和使用却没有问题。其实解决问题的办法很简单,主要的问题还是自己对Oracle数据库不熟悉。(主要参考http://fanqiang.chinaunix.net/db/oracle/2006-06-29/4714.shtml,谢谢作者)

1. 数据库的Listener没有正确启动,
如果Listener没有正确启动,则客户端无法连接数据库服务器。而造成不能启动的原因比较多,比如listener.ora配置文件不对,1521端口被占等等。我所遇到的问题主要就是listener.ora文件配置有些问题。(另外两个比较重要的文件是tnsname.ora和sqlnet.ora ,用于客户端)

下面是我原来的配置文件

SID_LIST_LISTENER =
  (SID_LIST 
=
    (SID_DESC 
=
      (SID_NAME 
= PLSExtProc)
      (ORACLE_HOME 
= /oracle/app/oracle/orcl/10.1.0/db_1)
      (PROGRAM 
= extproc)
    )
  )

LISTENER 
=
  (DESCRIPTION_LIST 
=
    (DESCRIPTION 
=
      (ADDRESS_LIST 
=
        (ADDRESS 
= (PROTOCOL = TCP)(HOST = 192.168.10.1)(PORT = 1521))
      )
      (ADDRESS_LIST 
=
        (ADDRESS 
= (PROTOCOL = IPC)(KEY = EXTPROC))
      )
    )
  )


这是我修改过后的配置文件

SID_LIST_LISTENER =
  (SID_LIST 
=
    (SID_DESC 
=
      (SID_NAME 
= contact)
      (ORACLE_HOME 
= /oracle/app/oracle/orcl/10.1.0/db_1)
    )
  )

LISTENER 
=
  (DESCRIPTION_LIST 
=
    (DESCRIPTION 
=
      (ADDRESS_LIST 
=
        (ADDRESS 
= (PROTOCOL = TCP)(HOST = 192.168.10.1)(PORT = 1521))
        )
    )
  )



这里比较让我疑惑的是我看其他的数据库用上面第一段来启动Listener并没有问题,但是这台数据库却不行。我不是很理解PLSExtProc,希望哪位大侠指点一下。

配置完后,切换到oralce用户(su - oracle),用lsnrctl staus查看一下状态。启动和停止分别是lsnrctl start 和lsnrctl stop.
   

posted on 2009-02-02 12:59 阿宝 阅读(466) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: