一直以来都是在用startup和shutdown来启动和关闭Oracle,偶然间看到其实这两个命令也有一些参数的不同,Oracle会不同对待的。这个是从一个论坛里看到大家的讨论后,摘取,整理出来的。

From:http://www.itpub.net/110597.html 大家在转载的时候,也不要忘了注明出处,随便地给写上一个轶名,这个是对作者的不尊重哦。。。

Startup:

 
  
  1. STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ database]  | MOUNT | NOMOUNT] 
  2.  
  3. STARTUP OPEN:STARTUP缺省的参数就是OPEN,打开数据库,允许数据库的访问。当前实例的控制文件中所描述的所有文件都已经打开。 
  4. STARTUP MOUNT:MOUNT数据库,仅仅给DBA进行管理操作,不允许数据库的用户访问。仅仅只是当前实例的控制文件被打开,数据文件未打开。 
  5. STARTUP NOMOUNT:仅仅通过初始化文件,分配出SGA区,启动数据库后台进程,没有打开控制文件和数据文件。不能任何访问数据库。 
  6. STARTUP PFILE= filename:以filename为初始化文件启动数据库,不是采用缺省初始化文件。 
  7. STARTUP FORCE:中止当前数据库的运行,并开始重新正常的启动数据库。 
  8. STARTUP RESTRICT:只允许具有RESTRICTED SESSION权限的用户访问数据库。 
  9. STARTUP RECOVER:数据库启动,并开始介质恢复。 

Shutdown:

 
  
  1. SHUTDOWN有四个参数:NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。缺省不带任何参数时表示是NORMAL。  
  2.  
  3. SHUTDOWN NORMAL:不允许新的连接、等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。  
  4. SHUTDOWN TRANSACTIONAL:不允许新的连接、不等待会话结束、等待事务结束、做一个检查点并关闭数据文件。启动时不需要实例恢复。  
  5. SHUTDOWN IMMEDIATE:不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件。没有结束的事务是自动rollback的。启动时不需要实例恢复。  
  6. SHUTDOWN ABORT:不允许新的连接、不等待会话结束、不等待事务结束、不做检查点且没有关闭数据文件。启动时自动进行实例恢复。  
  7.  
  8. 另外,对于NORMAL、TRANSACTIONAL、IMMEDIATE,DB Buffer Cache的内容写入了数据文件,没有提交的事务被回滚,所有的资源被释放,数据库被“干净”的关闭。  
  9. 对于ABORT,DB Buffer Cache的内容没有写入数据文件,没有提交的事务也没有回滚。数据库没有dismount和关闭,数据文件也没有关闭。当数据库启动时,需要通过redo log恢复数据,通过回滚段对事务回滚,对资源进行释放。