Hm... dunno on Unix but on NT the Service has to be running, and I guess that the connect somehow connects to that:- If the service isnt running I dont think you get that far even. As to Unix....no idea as theere is no process running to connect to....
It's get connected to SID only,
The SID is a site/system identifier. SID plus the Oracle_home are hashed together in Unix to create a unique key name for attaching an SGA. If your Oracle_sid is not set
correctly, you'll get "oracle not available" since it cannot
attach to a shared memory segment that is identified by magic key. On NT, we don't use shared memory but the SID is still important. We can have more then 1 database on the same oracle home so we need a way to id them.
There are two main administrative privileges in Oracle: SYSOPER and SYSDBA
These are special privileges as they allow access to a database instance even when it is not running and so control of these privileges is totally outside of the database itself.
SYSOPER privilege allows operations such as:
Instance startup, mount & database open ;
Instance shutdown, dismount & database close ;
Alter database BACKUP, ARCHIVE LOG, and RECOVER.
This privilege allows the user to perform basic operational tasks without the ability to look at user data.
SYSDBA privilege includes all SYSOPER privileges plus full system privileges (with the ADMIN option), plus 'CREATE DATABASE' etc.. This is effectively the same set of privileges available when previously connected INTERNAL.
Internal get connected to instance through ORACLE.EXE and
since the control of this privileges is totally outside the database, it doesn't matter whether database is up or down.
Imagine the DB is down. At svrmgrl when u say connect internal it will connect to an idle instance. (A location in the memory) This name is taken from the env variable $ORACLE_SID.
before connecting kindly issue the foll command on unix :-
echo $ORACLE_SID . this will give u the sid identifier. Similarly echo $ORACLE_HOME will give u the Oracle Home directory path. When you say startup, Oracle will look for initSID.ora in Oracle Home or init.ora and eventually your SGA is initialised and DB is started. Hope that would suffice.