`
chengyue2007
  • 浏览: 1467942 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

解决ora-12514 问题

 
阅读更多

0.同时修改了/etc/hosts 文件不知道是不是起了作用。

修改为如下:

192.168.1.168      cyerp.test.com       cyerp

127.0.0.1              localhost.localdomain    localhost       

 

 

1.
echo $TNS_ADMIN
查看tns 路径的位置 。

一般那会涉及到三个文件  listener.ora  tnaname.ora   sqlnet.ora

这三个文件是干啥的自己在网上查找 。

 

2.
 netstat -ntulp|grep 1521

查看某个端口的程序是不是被占用。

3.

修改这个文件 就可以了  ,注意下面的黑体部分 NETWORK\ADMIN中找到listner.ora文件,

::http://blog.sina.com.cn/s/blog_5ffd70480100dm8b.html 这个是原文的地址,

 

制定它的globle database name 和SID 都是testDB.

我又已system 登陆oracle 创建了一个anna的用户:

c:>sqlplus system/geh*****
sql>create user anna identified by geh*****;
sql>grant all privileges to anna;

接下来我以anna向登陆前面创建的testDB. 但是在输入

c:>sqlplus anna/geh*******@testDB

 

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBANAME = testDB)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (SID_NAME = testDB)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

 

在原始的文件中加入黑体字的部分,即将你创建的数据库的SID描述告知给监听器。保存文件。注意重新尝试登陆之前要按顺序重新启动一下SQLplus服务和TNSListner服务。然后重新登陆sqlplus,指定username为anna和它的密码,在hoststring处写入testDB,或在命令行中敲入

sqlplus anna/geh****@testDB

就可以连接入testDB database.

 

 

 

3.在做上面的步骤之前需要立马修改。sqlnet.ora 中的内容,不然客户端会爆 “TNS:连接已经关闭”的错误。

 

$ cat sqlnet.ora
NAMES.DIRECTORY_PATH=(TNSNAMES ONAMES HOSTNAME)
SQLNET.EXPIRE_TIME= 10
tcp.validnode_checking = yes
tcp.invited_nodes=(ERPTEST.domain)

到这问题差不多看出来了。注释掉最后两行。重新启动监听器,OK!问题解决。
重启监听:$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/lsnrctl start

 

 

注意:在启动的时候如果爆The listener supports no services_  这样的错误不用管;

如果不修改步骤3 就会出现服务器连接被拒绝的问题,TNS:连接已经关闭。

如果不修改步骤2 就会出现 。

ora-12514 message 12514 not found; product =rdbms80

 

注意一些问题:就是启动oracle 服务的时候 最好都是用拥有权限的 用户来启动这个服务,如果没有权限也就不能启动这个服务。

查看数据库的命令:tnsping vis

查看当前状态的命令:lsnrctl status 

network中还有日志文件。 

转载:

http://guojie.blog.51cto.com/59049/49542/

 

最近,时间允许了,把Oralce的服务启动,但是,却遇到下面的问题,经过查资料和反复试验,终于搞清楚问题的原因。所以,想记录下来,以备将来遇到类似问题不再麻烦。

OracleOraDb10g_home1TNSListener:
 该服务对应 %Oracle_Hoem\bin   TNSLSNR.EXE
若该服务未启动,将会导致Oracle错误- Ora-12514:TNS:无监听程序

OracleServiceORACLE:
 若该服务未启动,将会导致Oracle错误- Ora-12514:TNS:监听程序当前无法识别链接描述符中请求的服务。
但是,启动了该服务也有可能导致该错误。解决方法如下:
 
 打开:%Oracle_Hoem%/network/admin/listener.ora文件
 在
  SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\Oracle\Oracle10g)
      (PROGRAM = extproc)
    )
 后面添加: 
    (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\Oracle\Oracle10g) 
       (SID_NAME = ORACLE)
      ) 
 
  最后变成:
 SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\Oracle\Oracle10g)
       (PROGRAM = extproc)
     ) (SID_DESC =
        (GLOBAL_DBNAME = ORACLE)
        (ORACLE_HOME = D:\Oracle\Oracle10g) 
        (SID_NAME = ORACLE)
       )
   )

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics