"C:\>net  stop  OracleServiceORCL",执行之后,会把“任务管理器”中的“oracle.exe”关闭。
"SQL>shutdown",执行之后,却不会。但,第一个是停止oracle服务;第二个是关闭卸载数据库。那么,为什么反而是第一个把“任务管理器”中的“oracle.exe”关闭了呢?我认为应该是第二个才会关闭“oracle.exe”。不明白

解决方案 »

  1.   

    net  stop  OracleServiceORCL这个命令会停止后台服务,数据库自然也被关闭了。
      

  2.   

    在使用命令启动数据库的时候,可以利用不同的选项让数据库启动在不同的状态中。如通常情况下利用命令来启动数据库,带上不同的选项,可以让数据库只启动例程(带上Nomount选项)、挂载数据库而不打开数据库(采用mount选贤)、打开数据库(采用open选项)或者以受限模式(带上restrict选项)打开数据库系统。有时候以某种特定的方式来打开数据库系统对于数据库管理员维护数据库是非常重要的。如数据库管理员需要将某个数据库文件移动到新的硬盘上以减少硬盘的I/Q冲突或者需要将数据库从非归档模式转换到归档模式的时候,就需要将数据库启动到挂载模式。即打开控制文件而没有打开数据文件。此时可以更改控制文件中的内容(控制文件已经打开);也可以移动数据文件(数据文件在挂载模式下还没有打开。只有在这个模式下才能够完成对数据文件的更名、移动等操作。而且利用命令还可以在不同的模式下进行转换。如现在处于数据库挂载模式,则可以利用alter database open命令将数据库转换为打开模式。这些功能通过Oracle服务都是无法完成的。而通过服务来控制数据库的启动与关闭,就不能够做到这么精细的控制。一般情况下,只有监听程序服务、数据库例程服务和数据库企业管理器服务三个服务同时打开的情况下,对应的数据库才处于启动状态。或者说,只有数据库企业管理器服务启动时数据库才处于打开状态。因为只有有监听程序服务、数据库例程服务这两个服务启动后,才可以启动企业管理器服务。所以一般情况下,企业管理器服务启动了,就表示这三个服务已经同时启动。如果有一个服务还处于关闭的状态,那么数据库就是处于关闭状态。可见通过命令与通过服务来管理数据库的启动与关闭存在很多的差异。一般情况下笔者建议大家还是通过命令来维护数据库的启动与关闭操作为好。不过通过服务,也可以起到一些命令无法实现的功能。如现在数据库管理员不希望数据库随着操作系统的启动而自动启动,此时就可以通过更改对应服务启动类型来实现。如可以将上面的服务的启动类型设置为“手工”启动。此时当操作系统启动时,就不会自动启动数据库系统。不过这主要用于一些测试服务器或者培训服务器上。对于在企业生产环境中使用的数据库服务器,往往要将这个服务设置为自动启动。即让操作系统启动时自动启动数据库服务,以减少数据库管理员的工作量。所以说,虽然通过服务来管理数据库的启动与关闭进程,属于粗放型的管理。但是有时候数据库管理员确实也离不开它。最后需要提醒的一点是,在Windows操作系统中,默认情况下数据库系统是会随着操作系统的启动而自动启动的。而在Linux等到作系统平台上,由于没有这种服务的管理机制,所以在Linux操作系统部署Oracle数据库系统的时候,默认情况下是不会随着操作系统的启动而启动的。如果数据库管理员需要让其随着操作系统启动而自动启动,就需要在启动列表中加入相关的指令才行。这是在两个不同操作系统上部署Oracle数据库的一个很明显的区别。
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wh62592855/archive/2009/11/21/4846474.aspx