Oracle——数据库启动与关闭
本文内容
- 服务器环境
- 客户端环境
- 概述
- 启动数据库
- 关闭数据库
- 补充
- 参考资料
本文说明 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——数据库启动与关闭的更多相关文章
- Oracle数据库启动和关闭
在介绍oracle数据库的启动和关闭前,先看一下Oracle的参数文件. oracle参数文件 1.初始化参数文件 oracle的初始化参数文件分为spfilesid.ora.spfile.ora.i ...
- Oracle 数据库启动与关闭 各种方式详解整理
概述 只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库. 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库. 虽然数据库正常运行,但如果 ...
- Oracle 数据库启动与关闭
只有具备sysdba和sysoper系统特权的用户才能启动和关闭数据库. 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库. 虽然数据库正常运行,但如果没有启 ...
- Linux 中 Oracle 数据库启动和关闭
有时候你需要重启Linux 上的 Oracle 数据库. 注意先启动数据库,然后在启动数据库监听. a.切换为 oracle 用户身份,也可以使用 su - 将 home 和 path 都切换到 or ...
- oracle数据库--启动和关闭
oracle--启动 oracle数据库的启动过程包含3个步骤:启动实例->加载数据库->打开数据库 分步骤启动过程可以对数据库进行不同的维护操作,对应我们不同的需求. 启动模式: 1.s ...
- oracle数据库启动和关闭方式
Oracle数据库是重量级的,其管理非常复杂,将其在Linux平台上的启动和关闭步骤整理一下. 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_p ...
- Linux下oracle数据库启动和关闭操作
第一步:登陆 root登陆之后切换到oracle用户上,输入 su oracle 第二步:连接 在oracle用户下,输入 sqlplus /nolog 第三步:使用管理员权限 输入 connect ...
- Oracle强制启动和关闭实例
要启动和关闭数据库,必须要以具有Oracle 管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆.一般我们常用SYS用户以SYSDBA连接来启动和关闭数据库.下面介绍Oracle数据库几 ...
- Oracle的启动与关闭
启动数据库的前提条件: 环境变量定义好($ORACLE_HOME,$ORACLE_SID,$PATH) 能密码文件认证或OS认证(确保能登入sys) 有正确的参数文件(启动数据库需要查找参数文件,默认 ...
随机推荐
- WCF X.509证书双向认证小结
最近在学习WCF X.509证书验证,想实现使用证书实现服务端和客户端的双向认证,实现原理是利用了数字证书包含的一对非对称密钥来实现数字签名及加密.所谓非对称密钥是采用两个密钥将加密和解密能力分开:一 ...
- 警告 7 隐藏了继承的成员。如果是有意隐藏,请使用关键字 new
public new bool Print(string 承包方编码, MapPrint.My2Progress pMy2Progress, bool Label2ZJ)
- 【CentOS】centos7 稳定使用版本,centos镜像的下载
命令: cat /etc/redhat-release 下载地址: https://wiki.centos.org/Download 下载版本:
- .NET:枚举的默认值
.NET中的值类型默认都会设置为0,枚举也是如此,因此当你定义自己的枚举值类型且显式的指定了枚举值时,别忘记使用0,如果由于某种原因不能使用0,如使用了Flag标记,则别忘记在使用了枚举类型的构造方法 ...
- java容器HashMap原理
1.为什么需要HashMap 前面我们说了ArrayList和LinkedList,它们对容器内的对象都能实现增.删.改.查.遍历等操作, 并且对应不同的情况,我们可以选择不同的List,用以提高效率 ...
- linux设置允许和禁止访问的IP host.allow 和 host.deny
对于能过xinetd程序启动的网络服务,比如ftp telnet,我们就可以修改/etc/hosts.allow和/etc/hosts.deny的配制,来许可或者拒绝哪些IP.主机.用户可以访问. 比 ...
- 毒枭第一季/全集Narcos迅雷下载
英文全名Narcos,第1季(2015)Netflix.本季看点:<缉毒特警>该剧再现了上世纪八十年代末期警方与臭名昭著的大毒枭激烈交战的真实故事.律师.法官.政客.警察.军队甚至平民全都 ...
- android BitmapDrawable的使用
<span style="font-size:18px;"> //功能:显示缩略图,大小为40*40 //通过openRawResource获取一个inputStrea ...
- 用make编译openCV报错:ts_gtest.cpp:(.text._ZN7testing8internal2RED2Ev+0xf): undefined reference to 'regfreeA'
解决方案: the cause is the google tests is looking for the generic regex.h but cmake used the regex.h fr ...
- django数据模型中 null=True 和 blank=True 有什么区别?
null 如果为 True , Django 在数据库中会将空值(empty)存储为 NULL .默认为 False . blank 设置字段是否可以为空,默认为False(不允许为空) 和null的 ...