Oracle的启动与关闭

Oracle

启动Oracle

    启动Oracle数据库需要执行三个操作步骤: 1.启动例程、2.装载数据库、3.打开数据库。

    每完成一个步骤,就进入一个模式或状态,以便保证数据库处于某种一致性的操作状态。可以通过在启动过程中设置选项

来控制使数据库进入某个模式。

    通过切换启动模式和更改数据库的状态,就可以控制数据库的可用性。这样就可以给DBA提供一个能够完成一些特殊管

理和维护操作的机会。否则会对数据库的安全构成极大的危害和困难。

 

Oracle的各种启动方式

  1. 一般启动

、启动例程

当启动例程时,这些内存结构和服务进程得到分配,初始化和启动。此时例程还没有与一个确定的数据库相关联,或者说

数据库是否存在对例程的启动并没有影响,即还没有装载数据库,在启动例程的过程中只会使用STRATUP语句中指定的

(或使用默认的)初始化参数文件。如果初始化参数文件或参数设置有误,则无法启动例程。

   启动例程包括执行如下几个任务:

   、读取初始化参数文件,默认时读取SPFILE服务器参数文件,或读取PFILE选项指定的文本参数文件。

   、根据该初始化参数文件中有关SGA区、PGA区的参数以及其设置值,在内存中分配相应的空间。

、根据该初始化参数文件中有关后台进程的参数及其设置值,启动相应的后台进程。

、打开跟踪文件、预警文件

(如果使用STARTUP NOMOUNT命令启动例程 (但不打开控制文件,也不装载数据库)通常使用数据库的这种状态

来创建一个新的数据库,或创建一个新的控制文件。)

、装载数据库

         装载数据库时,例程将打开数据库的控制文件,根据初始化参数control_files的设置,找到控制文件,并从中获取数据库

         物理文件(即数据文件,重做日志文件)的位置和名称等关于数据库物理结构的信息,为打开数据库做好准备。

         此时数据库仍然处于关闭状态,只有数据库管理员可以通过部分命名修改数据库,用户无法与数据库建立连接或会话。

         在执行下列任务时,需要数据库处于装载状态,但无须打开数据库:

             、重新命名、增加、删除数据文件和重做日志文件

             、执行数据库的完全恢复

             、改变数据库的归当模式

         使用STARTUP MOUNT命令启动例程并装载数据库。

、打开数据库

打开数据库时,例程将打开所有处于联机状态的数据文件和重做日志文件。

如果在控制文件中列出来的任何一个数据文件或重做日志文件无法正常打开,数据库都将返回错误信息。这时需要进行数

据库恢复。可以使用STARTUP OPEN (或STARTUP)依次、透明地启动例程,装载数据库并打开数据库。

 

  1. Windows服务窗口启动

在Windows操作系统中,因为Oracle将数据库的启动过程写入到了服务表中,并将其设置”自动”启动方式。

、Oracle服务

在服务窗口中,将出现计算机上所有服务的列表,与Oracle相关的服务均以Oracle为前缀。其中,名称 列显示的服务名

称,状态列显示的是服务的当前状态,启动类型列显示的是服务的启动方式 有 自动 手动 和禁用三种。

以Oracle 11g为例说明:

服务名称:

OracleOraDb10g_home1TNSListener   //Oracle数据库数据监听服务

OracleServiceSID                   //Oracle数据库例程

OracleDBConsoleSID                //对应于OEM

其中Oracle_home表示Oracle主目录;

SID表示Oracle系统标识符,如Orcl

尽管这3个服务都可以单独地启动和关闭,但它们之间具有一定的关系,具体如下:

  、 比较传统的启动次序是:OracleOraDb10g_home1TNSListener、OracleServiceSID、OracleDBconsoleSID,关闭反之。

  、为了实现例程向监听程序的动态注册服务,应首先启动OracleOraDb10g_home1TNSListener服务。否则动态注册服务

就会有时间延迟。

          、如果启动OracleOraDb10g_home1TNSListener,但启动了OracleServiceSID,则可以在服务器中使用SQL*Plus。

          、关闭并重新启动OracleOraDb10g_home1TNSListener后,最好关闭重新启动OracleDBCosoleSID,否则将不能使用OEM.

         

数据库有3重启动模式,分别代表启动数据库的3个步骤,如果6.2所示,当数据库管理员使用STARTUP命令时,可以

指定不同的选项来决定将数据库的启动推进到哪启动模式。在进入某个模式后,可以使用ALTER DATABASE命令将数据

库提升到更高的启动模式,但不能使数据库降低到前面的启动模式。

启动模式及说明:

  、NOMOUNT 模式 :启动例程,但不装载数据库,提示:ORACLE例程已经启动

  、MOUNT模式:启动例程、装载数据库,但不打开数据库 提示:ORACLE例程已经启动,数据库装载完毕、

  、OPEN模式:启动例程、装载数据库、打开数据库 提示:例程已经启动,数据库装载完毕,数据库已经打开。

启动数据库的语法如下:

STARTUP [NOMOUNT | MOUNT | OPEN | FORCE] [RESTRICT] [RESTRICT] [PFILE=’pfile_name’]

如果要执行下列维护工作,就必须用NOMOUNT 选项启动数据库。

  、运行一个创建新数据库的脚本

  、重建控制文件

如果要执行下列维护工作,就必须用MOUNT选项启动数据库

  、重新命名、增加、删除数据文件和重做日志文件

  、执行数据库的完全恢复

  、改变数据库的归档模式。

FORCE选项

   当启动数据库时遇到困难,可以使用FORCE启动选项。通常该选项不需要、FORCE选项与正常启动选项之间的差别

还在于无论数据库处于什么模式,都可以使用该选项,即FORCE选项首先异常关闭数据库,然后重新启动它,而不需事

先用SHUTDOWN语句关闭数据库。

RESTRICE选项

   用RESTRICT选项启动数据库时,会将数据库启动到OPEN模式,但此时只有拥有RESTRICTED SESSION权限的用

户才能访问数据库。

   如果需要在数据库处于OPEN模式下执行维护任务,又要保证此时其他用户不能在数据库上建立连接和执行任务,则

需要使用RESTRICT选项来打开数据库,以便完成如下任务:

   、执行数据库数据的导出或导入操作

   、执行数据装载操作

   、暂时阻止一般的用户使用数据

   、进行数据库移植或升级

   当工作完毕时,可以用ALTER SYSTEM语句禁用RESTRICTED SESSION权限,一般用户能连接并使用数据库。

PFLIE选项

   数据库例程在启动时必须读取一个初始化参数文件。Oracle需要从初始化参数文件中获得有关例程的参数配置信息。如在执行STARTUP语句时没有指定PFLIE选项,Oracle就会读取默认的服务器初始化参数文件(SPFILE)

关闭Oracle数据库

当执行数据库的定期备份、数据库软件的升级时,常需要关闭数据库。关闭数据库的操作与启动数据库的操作对应,也是3个步骤(或模式):

  1. 关闭数据库

关闭数据库时,Oracle将重做日志高速缓存中的内容写入重做日志文件,并且将数据库高速中被改动的数据写入数据文件。在数据文件中执行一个检查点,即记录下数据库关闭的时间,然后再关闭所有的数据文件和重做日志文件。这时数据库的控制文件仍然处于打开状态,但是由于数据库已经处于关闭状态,所有用户将无法访问数据库。

  1. 卸载数据库

关闭数据库后,例程才能够卸载数据库,并在控制文件中更改相关的项目,然后关闭控制文件,但是例程仍然存在

  1. 关闭例程

上述俩步完成后接下来的操作便是终止例程,例程所拥有的所有后台进程和服务进程被终止,分配给例程的内存SGA区和PGA区被回收。

SQL*Plus关闭书库的语法如下:

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]

其中,各个选项的作用与意义介绍:

、NORMAL(正常)

   如果对关闭数据库的时间没有限制,通常会使用NORMAL选项来关闭数据库,SHUTDOWN 与SHUTDOWN NORMAL作用相同。NORMAL选项的SHUTDOWN语句将以正常方式关闭数据库。

   使用NORMAL选项关闭数据库时,Oracle执行如下的操作:

     )阻止任何用户建立新的连接

     )等待当前所有正在连接的用户主动断开连接。在当前连接的用户能够继续各自的工作,甚至能够提交新的事务。

     )一旦所有的用户都断开连接,才进行关闭、卸载数据库、并终止例程。

、TRANSACTIONAL(事务处理)选项

比NORMAL选项主动些,它能在尽可能短的时间内关闭数据库,Oracle将等待所有当前未提交的事务完后再关闭数据库。

用TRANSACTIONAL选项关闭数据库时,Oracle将执行如下操作:

 )阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务

)等待所有当前未提交的活动事务提交完毕,然后立即段开用户的连接

、IMMEDIATE(立即)选项

  采用改选项关闭数据库,就能够在尽可能短的时间内关闭数据库。

  通常在如下几种情况下需要使用IMMEDIATE选项来关闭数据库

     )即将发送电力供应中断

     )即将启动自动数据备份操作

     )数据库本身或某个数据库应用程序发生异常,并且这时无法通知用户主动断开连接,或用户根本无法执行断开操作

  用IMMEDIATE选项关闭数据库时,Oracle将执行如下操作:

)阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务

 )任何当前末提交的事务均被退回

)Oracle不再等待用户主动断开连接,而是直接关闭、卸载数据库、并终止例程.

、ABORT选项来关闭Oracle数据库

    当以上几种方法都无法关闭数据库,若出现如下几种情况,则可以使用ABORT选项来关闭Oracle数据库。

     )数据库本身或某个数据库应程序发生异常,并且使用其他选项均无效时。

     )出现紧急情况,需要立刻关闭数据库

     )在启动数据库例程的过程中产生错误。

   用ABORT选项来关闭数据库时,Oracle将执行如下操作:

     )阻止任何用户建立新的连接,同时阻止当前连接的用户开始任何新的事务

     )立即结束当前正在执行的SQL语句

     )任何末提交的事务均不退回

     )立即断开所有用户的连接,关闭、卸载数据库、并终止例程

posted @ 2012-08-18 15:26  Xiao方丈  阅读(287)  评论(0编辑  收藏  举报