很急啊,ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME

[复制链接]
查看11 | 回复9 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
碰到怪问题了。。。。
昨天还好好,重新启动w2k ,后有问题。
现象:
F:\oracle\NETWORK\ADMIN>svrmgrl
Oracle Server Manager Release 3.1.7.0.0 - Production
Copyright (c) 2000, Oracle Corporation.All Rights Reserved.
ORA-12560: TNS: 协议适配器错误
SVRMGR>
-------------
ORACLE8I =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = developer)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = o8i))
)
-------------
F:\oracle\ADMIN>tnsping oracle8i
TNS Ping Utility for 32-bit Windows: Version 8.1.7.0.0 - Production
(c) Copyright 1997 Oracle Corporation.All rights reserved.
Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=developer)(PORT=1521))OK(60毫秒)
可是
F:\oracle\ADMIN>sqlplus
SQL*Plus: Release 8.1.7.0.0 - Production on 星期六 5月 31 10:29:54 2003
(c) Copyright 2000 Oracle Corporation.All rights reserved.
请输入用户名:fxx/fxx@oracle8i
ERROR:
ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的 SERVICE_NAME

我努力的试着,可是不行,
希望各位帮帮忙,谢谢。。很急啊
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
1、是在服务器上操作吗?你重新启动的Window2000的那台机器是客户端还是服务器?
2、看看有几个tnsnames.ora文件?
3、看看sqlnet.ora中,names.default_domain的值是什么?还是没有?
4、另外,试试把tnsnames.ora中
CONNECT_DATA = (SERVICE_NAME = o8i)
增加一个(SERVER=DEDICATED),即变成
CONNECT_DATA = (SERVICE_NAME = o8i)(SERVER=DEDICATED)
试试。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
如果服务器端的listener没有监听o8i的实例,也会出现可以tnsping通过,但不能用sqlplus连上的现
象,在服务器用lsnrctl status 看看!
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
谢谢 jaunt版主。。
是在服务器上操作,重新启动的Window2000的那台机器是服务器
因为前几天,改了compatible 的值,为了建临时表。。
当时,数据库本身有重新启动过,那时候没问题。。
但后来,Window2000 越来越慢,我就重新启动window..
tnsnames.ora只剩下一个
sqlnet.ora 现在无法看,我不在单位。。。在itpub bbs 啊
另外,我想问一下,def_oracle8i.ora 这个文件重要吗
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
只是改了compatible值之后就不行了吗?没有其他任何的改动?
或者把tnsnames.ora中改为CONNECT_DATA = (SID = ***)试试?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
thank youzjfan!
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
改了compatible后 还可以的,我不直接在init.ora 里改,通过oracle 提供的 DBA工具进行改的
现在就算通过init.ora 改compatible的值,数据库也起不来。
数据库起不来后,我就去改其他的东西。
我的oracle 有2个实例 o8i, oracle8i
注册表oracle_sid =o8i
如果把oracle_sid =oracle8i
数据库可以起来,但是我原来的数据都没有了,比如用原来的user /password
就不能login.......这种情况看来,我的数据文件没有open.
另外:def_oracle8i.ora 的部份内容
background_dump_dest = F:\oracle\admin\o8i\bdump
#compatible = 8.1.5
compatible = 8.1.0
control_files = "F:\oracle\oradata\o8i\control01.ctl"
control_files = "F:\oracle\oradata\o8i\control02.ctl"
control_files = "F:\oracle\oradata\o8i\control03.ctl"
。。。。。
------------------------------
在我的 F:\oracle\oradata\oracle8i\下也有数据文件的。。。
我是不是把 oracle8i 于 o8i 搞 混 了?
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
补充:

把oracle_sid = oracle8i

并且ORACLE8I =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA = (SERVICE_NAME = o8i))

) 中的CONNECT_DATA = (SERVICE_NAME = o8i))->

CONNECT_DATA = (SERVICE_NAME = oracle8i))

CONNECT_DATA = (SID = ***)就是SID = *** ???
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
你的命名有点乱啊,注册表里默认的例程应该是o8i,所以你应该看看跟o8i有关的服务是否在win2k中都启动了,services,listener。你set sid=oracle8i 后,你连接的例程就变了了oracle8i ,你的数据当然就没了!还是先看看在win2k的服务吧,是否首先把服务都启动了,然后在考察别的!
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
在各位的帮忙下,我总算搞定了,数据库起来了(可以安心的小睡一下了)。
其实 还是compatible 的值的问题。我昨天改的是oracle8i 下的init.ora 里compatible 的值,是没有用的。今天,我再看了里面的*.ora 文件后,发现o8i下也有init.ora ,于是我改了里面的compatible ,restart win2k 后,数据库就起来了。

我的 命名有点乱啊-》楼上说的对。。。,以后会注意的。
thanks,again.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行