我是个初学者,在看《oracle 10g dba宝典》创建和删除数据库一章时,按照书上的步骤用DBCA创建了demo.beijing.com数据库,然后也是用DBCA删除了数据库。删除了后问题出现了。
OEM可以正常登录,oracle sql*plus也可以登录
但在DOS下用语句"connect scott/tiger"登录时,就出现了“error:ora-12560:TNS:协议适配器错误”
而如果用语句“connect scott/tiger@king”又可以成功登录(注:king是原数据库名)
问题是:为什么少了“@king”就登录不了了呢?如何解决??
上网查了好多方法,但无一能解决。
哪位高手能指点迷津?在此先多谢指教!!
(注:服务都已经开了,版本是oracle 10g,操作系统是XP)

解决方案 »

  1.   

    把注册表中的oracle_sid设为 king 
    命令行
    set oracle_sid=king一样效果
      

  2.   

    我想确认一下你的信息 king的数据库你是删除了吗?king
    onnect   scott/tiger@king
    你看看有关监听器的资料吧,@king这是个服务名,默认会与数据库名一致
      

  3.   

    注册表中oracle_sid是正确的,是king
    也用了set oracle_sid=king,都没用
      

  4.   

    回复3楼
    king数据库没删。
      

  5.   

    用你oracle登录,然后找到.bash_file并
    ---------------------------------
    加上
    ORACLE_SID=server_name
    最后一句 export后 加上 ORACLE_SID 
    ---------------------------------
    这样就可以达到你的要求来...
    这个语句也可以不在写这个文件里面,可以每次登录的时候 export sid=king
    然后connect   scott/tiger 也行
    ------------------------------------
    这个export目的就是设定当前连接实例
      

  6.   

    .bash_file在哪里?是什么文件?
      

  7.   

    1:  conn / as sysdba                    本机登陆,使用操作系统认证,有无监听都可以
    2:  conn sys/password as sysdba   本机登陆,使用密码文件认证,有无监听都可以
    3:  conn sys/password@dbanote as sysdba  可以本机可以远程,使用密码文件认证,必须有监听,必须有tnsnames.ora, remote_login_passwordfile必须是EXCLUSIVE
      

  8.   

    connect ... as sysdba都做了些什么?
    1.先判断oracle_sid有没有设置,如果没有设置,连接时报错:
    ERROR:
    ORA-12560: TNS: 协议适配器错误
    2.然后判断OracleServiceSID服务有没有启动,如果没有启动,连接时报错:
    ERROR:
    ORA-12560: TNS: 协议适配器错误
    3.如果上面都没有问题,连接时不会报上面的错误。
    但是注意连接时又会根据实际情况进行不同的判断,连接成功后执行不同的操作
    以sysdba连接,操作系统认证
    SQL> connect / as sysdba
    ERROR:
    ORA-01031: insufficient privileges
    以sysdba连接,密码文件认证
    SQL> connect sys/ddf as sysdba
    ERROR:
    ORA-01031: insufficient privileges
    连接数据库,但实例没有启动
    SQL> connect sys/dfkdj
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist