当前位置:  数据库>oracle

在SQL*Plus中启动和关闭Oracle数据库

    来源: 互联网  发布时间:2017-04-09

    本文导语: 关闭数据库         与数据库启动一样,有几个可供选择的选项用于关闭数据库。无论在什么情况下,读者都需要弄清楚这些关闭选项 关闭数据库的语法是:SHUTDOWN [ NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ] 注意:如果不在windows服...

关闭数据库

        与数据库启动一样,有几个可供选择的选项用于关闭数据库。无论在什么情况下,读者都需要弄清楚这些关闭选项

关闭数据库的语法是:SHUTDOWN [ NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

注意:如果不在windows服务中事先关闭OracleDBControlSID,则使用shutdown或shutdown normal 来关闭数据库时没有相应结果,但其他几个选项有响应结果。

一、 NORMAL(正常)选项

        shutdown 和 shutdown normal 作用相同,使用带有normal选项的shutdown语句将以正常方式关闭数据库。用normal选项时,Oracle将执行如下操作:

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

        2、 等待当前所有正在建立连接的用户主动断开连接。正在连接的用户能够继续他们当前的工作,甚至能够提交新的事务。

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

注意:按这个选项关闭数据库,则在下次启动数据库时不需要进行任何恢复操作。

二、 TRANSACTIONAL(事务处理)选项

        transactional选项比normal选项稍微主动些,他能在尽可能短的时间内关闭数据库。按transactional选项关闭数据库时,Oracle将等待所有未提交的事务完成后再关闭数据库。用transactional选项关闭数据库时,oracle将执行如下操作:

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

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

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

注意:按这个选项关闭数据库,则在下次启动数据库时不需要进行任何恢复操作。

三、 IMMEDIATE(立即)选项

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

        1、 即将启动自动数据库备份操作

        2、 即将发生电力供应中断

        3、 数据库本身或者某个数据库应用程序发生异常,并且这时候无法通知用户主动断开连接,或者数据库用户本身无法制定断开操作

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

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

        2、 任何当前未提交的事务均被退回

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

注意:按这个选项关闭数据库,则在下次启动数据库时不需要进行任何恢复操作。

四、 ABORT(终止)选项

        通常在以下情况下可以考虑使用abort选项来关闭数据库

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

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

        3、 在启动数据库例程时产生错误

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

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

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

        3、 任何未提交的事务均不被回退

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

注意:按这个选项来关闭数据库,由于当前未完成的事务并不会回退,所以可能会丢失一部分数据信息,并对数据库的完整性造成损坏,需要在下一次启动数据库的时候进行恢复。


启动数据库

        数据库有三种启动模式,分别代表启动数据库的三个步骤。当数据库管理员使用startup命令时,可以指定不同的选项来决定将数据库的启动推进到哪个启动模式。在进入某个模式后,可以使用alter database命令来将数据库提升到更高的启动模式,但是不能使数据库降低到前面的启动模式。

启动模式

说明

对应的界面提示信息

NOMOUNT

启动例程,但不装载数据库,即只完成启动步骤的第一步

Oracle例程已经启动

MOUNT

启动例程,装载数据库,但不打开数据库,即只完成启动步骤的第一步和第二步

Oracle例程已经启动

数据库装载完毕

OPEN

启动例程,装载数据库,打开数据库,即完成全部的三个步骤

Oracle例程已经启动

数据库装载完毕

数据库已经打开

启动数据库的语法是:STARTUP [ NOMOUNT | MOUNT | OPEN | FORSE ] [ RESTRICT ] [ PFILE = 'PFILE_NAME' ];

一、 NOMOUNT选项

        该选项只创建例程,但不装在数据库。Oracle读取参数文件,仅为例程创建各种内存结构和后台服务进程,用户能够与数据库进行通信,但不能使用数据库中的任何文件。

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

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

        2、 重建控制文件

注意:在该启动模式下,只能访问到那些与SGA区相关的数据字典视图,这些视图的信息都是从SGA区获取的,与数据库是否装载,是否打开无关。

二、 MOUNT选项

        该选项不仅创建历程,还装载数据库,但却不打开数据库。Oracle读取控制文件,并从中获取数据库名称、数据文件的位置、名称等数据库物理结构的信息,为下一步打开数据库做好准备。

        在这种模式下,仅数据库管理员可以通过部分命令修改数据库,用户还无法与数据库建立连接或会话。这在进行一些特定的数据库维护工作时是十分必要的。

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

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

        2、 执行数据库的完全恢复

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

注意:在该模式下,除了可以访问那些与SGA区相关的数据字典视图以外,还可以访问到那些与控制文件相关的数据字典视图,这些视图信息都是从控制文件中获取的。 

三、 OPEN选项

        该选项不仅创建例程,还装载数据库,并且打开数据库。这是正常的启动模式。如果startup语句没有指定任何选项,那就是使用该选项进行德启动。

        将数据库设置为打开状态后,任何具有create session权限的用户都能连接到数据库,并且进行常规的数据访问操作。

四、 FORSE选项

        如果在正常方式启动数据库时遇到了困难,则可以使用FORSE选项启动。FORSE选项与正常启动选项之间的差别在于无论数据库处于什么模式,都可以使用该选项,即FORSE选项首先关闭异常数据库,然后在重新启动他,而不需要事先用shutdown语句关闭数据库。 

五、 RESTRICT选项

        用该选项启动数据库时,会将数据库启动到open模式,但此时只有拥有restricted session   权限的用户才能访问数据库。如果需要在数据库处于open模式下执行维护任务,又要保证此时其他用户不能再数据库上建立连接和执行任务,则需要使用restrict 选项来打开数据库,以便完成以下任务:

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

        2、 执行数据库装载操作(用SQL*Loader)

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

        4、 进行数据库移植或升级

        当工作进行完毕后,可以使用 alter system disable restrict session 语句来禁用restricted session,以便一般用户能连接并使用数据库。

六、 PFILE选项

        数据库例程在启动的时候必须读取一个初始化参数文件,oracle必须从初始化参数文件中获得有关例程的参数配置信息。如果在执行startup语句时没有指定pfile 选项,oracle将首先读取默认位置的服务器初始化参数文件(spfile),如果没有找到默认的服务器初始化参数文件,oracle将继续读取默认的文本初始化参数文件(pfile),如果也没有找到文本初始化参数文件,启动就会失败。

        使用startup语句时可以通过pfile选项指定一个文本初始化参数文件。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SQL Server 2008如何进行数据库分离和附加详细介绍
  • SQL Server数据库的修复SQL语句
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • 查询SQL Server中所有数据库的数据文件位置的sql脚本
  • 取数据库前几条数据(sql server、oracle、mysql)的sql写法
  • 使用php语句将数据库*.sql文件导入数据库
  • SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • sql数据库多用户模式修改方法
  • sql数据库如何查询修改数据库恢复模式?
  • 数据库前端 SQL Workbench-J
  • 在Java中以MS SQL2000为后端数据库?
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Java 数据库工具类库 sql2o
  • PHP SQL数据库开发框架 Medoo
  • sql语句获取数据库服务器上所有数据库的名字
  • Linux下能装SQL server 2000数据库吗?
  • linux中把a.sql文件还原数据库a,在线等
  • 谁用过sql server 2000?做jsp的数据库服务器?
  • sql server 2005删除用户时“数据库主体在该数据库中拥有架构,无法删除”错误的解决办法
  • sql 语句 取数据库服务器上所有数据库的名字
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3