oracle的sqlplus连接问题 高手进~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~・

oracle服务器:不开【默认实例】服务
C:\Documents and Settings\Administrator>set ORACLE_SID=orcl

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 8月 20 09:23:06 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn /as sysdba
ERROR:
ORA-12560: TNS: 协议适配器错误

oracle服务器端:开默认【实例服务】

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 8月 20 09:53:45 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

SQL> conn /as sysdba
已连接。

难道这种连接方式必须开【实例服务】么?
那么linux下常用的启动方式不是只有lsnrctl start(启监听)
sqlplus /nolog
conn /as sysdba
startup
怎么就能起????这组命令不是只是启动了监听么?根本就没有启动实例啊?
这怎么解释啊????????????
1 我先说startup命令:虽然是启动了之后,可以访问数据库,比如select * from table123;但是这个命令本身,做了以下3个方面的动作:
启动实例。此处会找oracle安宴罩装目录的spfile.ora文件,依据配置启动实例。
装载(即mount)数据库。依据控制文件(.ctl)所在的位置,绝悔装载数据库,比如控制文件中有数据库的block_size大小,分配多少内存空间什么的。
打开(open)数据库。根据控制文件中定义的数据文件的位置,加载数据库中的相关数据,打开数据库。
这三步之后,就可以select * from table123,发现就能查到数据了。
2 sqlplus /nolog conn /as sysdba 这两步在oracle 10g以上的版本,可以用一句话来代替:sqlplus / as sysdba。不信可以试试。

lsnrctl start监听肯定是要启动的,因为当你发出conn /as sysdba的连接请求时,首先接收你请求的监听,它接收了conn命令之后,再将这个命令请求转发到服务器,这样你才能连上。

如果你输入的conn /as sysdba是在登陆到oracle服务器上,开了服务器的终端输入的,或者通过客户端ssh登陆到oracle服务器上输入的这行命令,这就涉及到oracle身份验证的问题。

从本质上来说,如果conn /as sysdba能够连上,那么,你输入一个不存在的用户,conn aaadsfsdfs/fdsfjsdlkfsd as sysdba也能够连接上。可以试试。很奇怪吧?呵呵。

这是因为oracle身份验证有三级,而conn /as sysdba用的是操作系统身份验证或者密码文件身份验证,而不是数据库级别的身份验证。确切的说,当你的操作系统登陆的用户如果在ora_dba这个组里,就直接能够以sysdba的身份连接上。根本就不管你创建的服务名是什么,用户和密码是什么,因为你当前系统用户就是ora_dba这种人。当然,并祥正如果你把当前系统用户从ora_dba组中去除,你就会发现conn /as sysdba无法连上了,这时就需要输入用户名和密码。而这个也可以去密码文件中找到。

无论是windows还是linux,连接命令和启动的原理,身份验证的机制都是一样的。可以去oracle专业网站上去查询。如果有问题,欢迎一起探讨。
这儿给你的提示是密码过期啊;另外你说的不能输入是什么掘芹旅意思?如果你只是说看不到光标的话,那是正常的,你就按判凳照你想要的首敬密码直接输入然后ENTER就可以了,在某些软件中输入密码并不是说你输入一个字符就会有个对应的字符出现。
conn / as sysdba后面的startup就是启动实例的命令。
windows跟linux平台不同,必须要启动服务(控制面板下面“服务”里面能看到的东西)才能连接到实例,而linux平台随便指定一个ORACLE_SID就可以连接到一个空闲实例含册。你在windows平台set ORACLE_SID=orcl后遇到ORA-12560说明那台服务器上没有对应orcl的服务或者对应的服务没仔老亮有启动念宽。
oracle实例对应服务的命名规则是OracleService,你可以去找。
你把windows的服务进程和数据库实例进程的概念弄混了。在安装后的默认情况下是启动windows的服核卖务进程之后,渗氏薯默认启动oracle的实例进程,但是你可以在oracle配置管理工具下的administrator assistant for windows中去更改。

而linux下没有windows服务进程一说,默认的是开机启丛者动oracle配置的实例进程。
应该是安装后服务就已经开启的原因吧
oracle的sqlplus连接问题 高手进~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~・
← 上一篇: 下一篇: →