running mode:

STARTUP NOMOUNT startup instance and occupy memory
read pfile in order:
– spfile$ORACLE_SID.ora or
– spfile.ora or
– init$ORACLE_SID.ora

(for winshit it is necessary run service which open ORACLE.EXE [instance_name] and only one process unlike many processes at -nix systems)

STARTUP MOUNT mount database to instance,
read controlfile,
allocating database structure
STARTUP OPEN open database for all users
STARTUP READ ONLY open database for all users but read only
TARTUP FORCE restart database as SHUTDOWN ABORT and startup again
STARTUP RESTRICT open database for users with priviele RESTRICTED SESSION, if you want to open for all put ALTER SYSTEM DISABLE RESTRICTED SESSION
STARTUP UPGRADE open database for AS SYSDBA, prepare database to upgrade

shutdown mode:

SHUTDOWN disallow new connections and wait for finish session for present users
SHUTDOWN TRANSACTIONAL disallow new connections, disallow new transactions, when transactions was finished, all users are disconnected
SHUTDOWN IMMEDIATE disallow new connections, all transactions which was not commit are rollback and users are disconnected
SHUTDOWN ABORT disallow new connections, all transactions are interupted, not rollback, users are disconnected, during next startup database allow recovery

run order:
spfile[db_sid].ora
spfile.ora
pfile[sb_sid].ora
pfile.ora