双实例数据库登录失败的有关问题

双实例数据库登录失败的问题大家好:我在Oracle 10g中安装了两个数据库实例:orcl和demo,当我shutdown immed

双实例数据库登录失败的问题
大家好:
    我在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有什么用
[其他解释]

引用:
执行set ORACLE_SID=orcl 还是不行

--执行完了就不应该写@,直接sqlplus 用户/密码

--没事不要as sysdba

--发tnsnames.ora,发listener.ora有什么用

好的,谢谢!试过 不用@orcl就可以了。
那请问是不是设置一个环境变量ORACLE_SID=orcl或demo其中一个后,另外一个就不用@符号登录了,而是直接登录就可以了?
[其他解释]
@用来指定存在tnsnames.ora里的连库串,可以连远程库

不用@只能连本地库。
[其他解释]
楼上+1,,,