本文内容

  • 服务器环境
  • 客户端环境
  • 概述
  • 启动数据库
  • 关闭数据库
  • 补充
  • 参考资料

本文说明 Oracle 数据库的启动和关闭,内容虽然基础,但是在数据库很多操作中都需要,因此,基础而重要,必须深入理解。比如,何种情况应该使用何种数据库加载模式,以及数据库文件打开模式。

服务器环境


  • Windows 2003 R2
  • Oracle11g 32位

 

客户端环境


  • Windows 2008R2
  • Oracle 11g 32位客户端

 

概述


若用 startup 命令启动数据库,执行的操作要经历三个不同的阶段:

  • 实例启动(instance startup)
  • 数据库加载(database mount)
  • 数据库打开(database open)

实例启动(instance startup),在这个阶段,Oracle 分析数据库参数文件,并通过设法获得实例锁来确定实例还未运行。随后,Oracle 启动多种不同的数据库进程,如 DBWn 和 LGWR 进程。Oracle 还将分配SGA所需的内存。一旦启动了实例,Oracle 会向启动实例的用户报告后台进程已经启动了实例。

数据库加载(加载启动),在加载阶段,Oracle 打开数据库控制文件。成功打开控制文件后,Oracle 从这个控制文件中析取数据库数据文件名,为打开这些数据库文件做准备。需要注意的是,这个时候,Oracle 不会检查这些数据文件是否存在,而只是从控制文件中标识数据文件的位置。完成这个步骤后,Oracle 向用户报告已经加载了数据库。

数据库打开,Oracle 将继续启动进程并设法打开数据库。在数据库打开阶段,Oracle 验证数据库文件是否存在,并打开这些文件。Oracle 打开数据文件时会检查数据文件头,并且比较这些文件头中的 SCN 信息和控制文件中存储的 SCN(SCN 是跟踪数据库状态的 Oracle 方法)。

Oracle 设法打开数据库时,会检查每个数据文件和数据库控制文件中的 SCN。如果 SCN 相同,并且位映射标记设置正确,则认为这个数据库是一致的,即可打开和使用数据库。如果 SCN 不相同,则 Oracle 会自动执行灾难或实例恢复。如果联机重做日志文件中存在生成一致的映像所需要的重做,就会发生灾难或实例恢复。如果由于数据文件损坏或由于恢复需要的重做不在联机重做日志中而不能执行灾难或实例恢复,Oracle 会要求 DBA 执行介质恢复。介质恢复需要从一个数据库备份中恢复一个或多个数据库数据文件,与实例恢复不同的是,介质恢复是一个手动执行的进程。

与启动对应是关闭 shutdown 命令,关闭卸载数据库,执行与 startup 相反的操作。

 

下面本例,启动或关闭数据库都在服务器上进行。

 

启动数据库


图 1 启动数据库

关闭数据库


图 2 关闭数据库

先关闭数据库,再启动。

Shutdown immediate 一般比较常用,而 Shutdown 往往关闭数据库很慢,还有可能关不掉~

 

补充


Startup 有几种不同的变体,这些变体包括:

  • Startup:使Oracle经历三个启动阶段。
  • Startup restrict:使Oracle经历三个启动阶段,并已限制模式打开数据库。只有具有限定权限的用户才能访问数据库。
  • Startup nomount:在成功启动数据库实例后,停止启动进程。通常在创建数据库之前,使用该命令来启动数据库实例。如果需要重新创建控制文件,使用这条命令也很方便。需要注意的是,为了在给定数据库中使用RMAN,必须能够使用startup nomount命令成功启动实例。
  • Startup mount:在成功启动数据库实例,并加载数据库后,停止启动进程。如果需要恢复system表空间,这个命令很有用。
  • Startup read only:使Oracle数据库(或备用数据库)以read only模式打开。这样,不支持DML操作,但可以查询数据库。如果正在执行时间点恢复操作,并且希望确保在使用resetlogs命令提交数据库实例之前,将数据库恢复到当前的时间点,这个命令很有用。
  • Startup force:与shutdown abort命令(接下来说明)一起关闭数据库。Startup force命令后面可以再加上数据库的打开模式。示例如下:

Startup force restrict

Startup force mount

Startup force nomount

 

换句话说,Startup 命令后面是可以加上数据库加载模式命令;加载模式命令后面,还加上数据库打开模式。

 

Shutdown命令有如下形式:

  • Shutdown(以及shutdown normal):使Oracle等待直至所有用户进程与数据库断开连接。所有进程断开连接后,数据库将完全闭关。这个命令可以避免实例恢复。执行后,任何新用户进程都不能连接到数据库。
  • Shutdown immediate:清除所有存在的用户回话,并且回滚所有未提交的事务。这个命令可以避免实例恢复。执行后,任何新用户进程都不能连接到数据库。
  • Shutdown abort:通常会使数据库奔溃。这个命令要求实例恢复(而不是介质恢复)。执行后,任何新用户进程都不能连接到数据库。
  • Shutdown transactional:使Oracle等待所有用户进程提交当前事务,再断开这些用户进程并关闭数据库。在等待完成这些事务的期间,任何新用户回话都不能连接到数据库。

 

参考资料

Oracle——数据库启动与关闭的更多相关文章

  1. Oracle数据库启动和关闭

    在介绍oracle数据库的启动和关闭前,先看一下Oracle的参数文件. oracle参数文件 1.初始化参数文件 oracle的初始化参数文件分为spfilesid.ora.spfile.ora.i ...

  2. Oracle 数据库启动与关闭 各种方式详解整理

    概述 只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库. 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库. 虽然数据库正常运行,但如果 ...

  3. Oracle 数据库启动与关闭

    只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库. 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库. 虽然数据库正常运行,但如果没有启 ...

  4. Linux 中 Oracle 数据库启动和关闭

    有时候你需要重启Linux 上的 Oracle 数据库. 注意先启动数据库,然后在启动数据库监听. a.切换为 oracle 用户身份,也可以使用 su - 将 home 和 path 都切换到 or ...

  5. oracle数据库--启动和关闭

    oracle--启动 oracle数据库的启动过程包含3个步骤:启动实例->加载数据库->打开数据库 分步骤启动过程可以对数据库进行不同的维护操作,对应我们不同的需求. 启动模式: 1.s ...

  6. oracle数据库启动和关闭方式

    Oracle数据库是重量级的,其管理非常复杂,将其在Linux平台上的启动和关闭步骤整理一下. 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_p ...

  7. Linux下oracle数据库启动和关闭操作

    第一步:登陆 root登陆之后切换到oracle用户上,输入 su oracle 第二步:连接 在oracle用户下,输入 sqlplus /nolog 第三步:使用管理员权限 输入 connect ...

  8. Oracle强制启动和关闭实例

    要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆.一般我们常用SYS用户以SYSDBA连接来启动和关闭数据库.下面介绍Oracle数据库几 ...

  9. Oracle的启动与关闭

    启动数据库的前提条件: 环境变量定义好($ORACLE_HOME,$ORACLE_SID,$PATH) 能密码文件认证或OS认证(确保能登入sys) 有正确的参数文件(启动数据库需要查找参数文件,默认 ...

随机推荐

  1. CRC校验的实现

    本例提供的是通过查表发来实现CRC校验. CRC余式表如下: unsigned int crctab[256] ={/*CRC余式表 */ 0x0000, 0x1021, 0x2042, 0x3063 ...

  2. godaddy 亚太机房 更换 美国机房 全过程(图)

    其它我就不说了,直接干货... 如果要换机房的话,要先支付134元人民币.在哪里支付,怎么支付我就不说了,自己在后台找... 关键的地方来了:当你支付完134元,你回到步骤3会发现没有美国机房选择,呵 ...

  3. 百度公共dns

    常用公共DNS服务器地址 DNS(Domain Name System),即域名解析系统,作为将域名和IP地址相互映射的一个分布式数据库,能够使人通过相对好记的域名访问网站,而是一串数字.目前国内运营 ...

  4. 基于开源SuperSocket实现客户端和服务端通信项目实战

    一.课程介绍 本期带给大家分享的是基于SuperSocket的项目实战,阿笨在实际工作中遇到的真实业务场景,请跟随阿笨的视角去如何实现打通B/S与C/S网络通讯,如果您对本期的<基于开源Supe ...

  5. .Net Discovery系列之十二-深入理解平台机制与性能影响(下)

    上一篇文章中Aicken为大家介绍了.Net平台的垃圾回收机制.即时编译机制与其对性能的影响,这一篇中将继续为大家介绍.Net平台的异常捕获机制与字符串驻留机制. 三.关于异常捕获机制 虽然我们已经很 ...

  6. npm WARN saveError ENOENT: no such file or directory

    转自树之名原文npm WARN saveError ENOENT: no such file or directory解决 我是在安装sequelize时出错的.提示的错误没有保存,类似于参考的文章中 ...

  7. Xcode工程文件打不开:cannot be opened because the project file cannot be parsed

    svn更新代码后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened because the project file cannot be parsed ...

  8. 越狱的 ios 如何 获取 读取 提取 手机上的 短信 通话记录 联系人 等信息

    http://willson.sinaapp.com/2011/12/iphone 获取短信脚本.html  Iphone获取短信脚本http://bbs.9ria.com/thread-209349 ...

  9. C#编程(四十七)----------集合接口和类型

    原文链接: http://blog.csdn.net/shanyongxu/article/details/47005979 集合接口和类型 前面介绍了数组和Array类实现的接口.数组的大小是固定的 ...

  10. AOP拦截器 表达式写法

    Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.Pointcut可以有下列方式来定义或者通过& ...