系统中只有:唯一数据库study.oracle.com.cn,唯一实例study11
侦听器中配置:全局数据库名-study.oracle.com.cn
            oracle主目录-E:\oracle\ora92
            sid-study12
conn sys/sys as sysdba居然能连得上,为什么呀?为何要配置sid?多个实例,如何配置sid?

解决方案 »

  1.   

    conn sys/sys as sysdba
    这个命令是不检测用户名和密码的,connect / as sysdba 也可以连接成功
      

  2.   

    我的sid号是错的啊,怎么连接得上呢?
      

  3.   

    这个跟你说的sid没关系conn sys/sys as sysdba 
    这个会从环境变量$ORACLE_SID 寻找实例;
    如果是windows则从环境变量oracle_sid找( set oracle_sid可看),如果环境变更未设置,则从注册表中的oracle_sid找
      

  4.   

    另外就是,你这个没有@tns_name,所以只是在装oracle的本机上使用
      

  5.   

    4楼 我多一句嘴啊
    没有@tns_name的话,linnux系统下是有个默认的数据库连接(这个是需要配置的),即是在不填tns_name就会自动连接到默认的数据库,在这种情况下,不填写@tns_name 只要用户密码正确 一样可以连接到数据库。
    我记得我试过这样的情况,但是我想不起来了,就是windows系统下,不填@tns_name 也可以连接到默认的数据库,当时我的本地只有一个sid 所以就直接连进去了,对于多个sid的情况我没有试过。
      

  6.   

    5楼说的配置,不是我说的$ORACLE_SID?sql>conn / as sysdba就是在数据库的机器上,取$ORACLE_SID来指定连接到哪个实例。我现在知道:如果不指定@tns_name, 就不能连接到远程的机器上。能道是我错了?呵呵
      

  7.   

    conn sys/sys as sysdba:不通过侦听器。
    conn sys/sys@sid-study12  as sysdba:这样通过侦听器就连不上了。
      

  8.   

    9i 以后支持数据库实例在 listener 中自动注册。楼主可以同 lsnrctl status 命令查看当前 listener 在为那些数据库侦听
      

  9.   

    我在csdn上发的第一个帖子,这么多人回复,感觉到好温暖,以后好好向大家学习!
    恩,关于为什么能连上我明白了,期待有人能回答第二个问题!
    无论如何,谢谢大家!