双实例数据库登录失败的问题
大家好:
我在Oracle 10g中安装了两个数据库实例:orcl和demo,当我shutdown immediate了orcl数据库后,再次想执行 sqlplus "sys@orcl as sysdba" 登录数据库启动实例时,提示:
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
--
执行set ORACLE_SID=orcl 还是不行,但是执行 sqlplus "sys@demo as sysdba" 是可以登录demo数据库的。
麻烦各位大侠帮忙看看为什么执行执行 sqlplus "sys@orcl as sysdba" 登录数据库启动实例时,提示:
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
---
谢谢!
错误信息及lsnrctl status监听状态信息、listener.ora文件内容如下:
C:\Users\Administrator>set ORACLE_SID=orcl
C:\Users\Administrator>sqlplus "sys/abc123@orcl as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 11月 23 11:42:04 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
请输入用户名:
C:\Users\Administrator>lsnrctl status
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 23-11月-2012 11:4
3:06
Copyright (c) 1991, 2005, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期 23-11月-2012 11:40:48
正常运行时间 0 天 0 小时 2 分 23 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 E:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra
监听程序日志文件 E:\oracle\product\10.2.0\db_1\network\log\listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=MY-PC)(PORT=1521)))
服务摘要..
服务 "PLSExtProc" 包含 1 个例程。
例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "demo" 包含 1 个例程。
例程 "demo", 状态 READY, 包含此服务的 1 个处理程序...
服务 "demoXDB" 包含 1 个例程。
例程 "demo", 状态 READY, 包含此服务的 1 个处理程序...
服务 "demo_XPT" 包含 1 个例程。
例程 "demo", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
-----------
### listener.ora 文件内容如下 #####
# listener.ora Network Configuration File: E:\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 = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = MY-PC)(PORT = 1521))
)
)
[最优解释]
设置了ORACLE_SID环境变量后,不用再用@的。其它实例才用@
[其他解释]
执行set ORACLE_SID=orcl 还是不行
--执行完了就不应该写@,直接sqlplus 用户/密码
--没事不要as sysdba
--发tnsnames.ora,发listener.ora有什么用
[其他解释]
好的,谢谢!试过 不用@orcl就可以了。
那请问是不是设置一个环境变量ORACLE_SID=orcl或demo其中一个后,另外一个就不用@符号登录了,而是直接登录就可以了?
[其他解释]
@用来指定存在tnsnames.ora里的连库串,可以连远程库
不用@只能连本地库。
[其他解释]
楼上+1,,,
