oracle体系架构简介

先来简要了解一下Oracle数据库体系架构以便于后面深入理解,Oracle Server主要由实例(instance数据库(database组成。实例(instance共享内存(SGA后台进程系统组成,数据库(database是存储在磁盘上的一系列物理文件。

SGA主要由Share Pool(共享池,又分Library Cache和Data Dictionary Cache,前者临时存储最近执行过的语句代码等,后者临时存储数据位置、表定义及用户权限等)、Database Buffer Cache(数据缓冲区,临时存储读过的数据块)、Redo Log Buffer(重做日志缓冲区,临时存储数据库修改操作)、Large Pool(大池,分担Share Pool部分工作供共享服务器进程使用,如备份恢复、大型I/O操作、并行查询等)和Java Pool(Java池,分析Java语句)。

后台进程是数据库和操作系统进行交互的通道,后台进程的命名由ORACLE_SID决定,ORACLE根据ORACLE_SID来寻找参数文件启动实例。是Oracle数据库为保持最佳性能和协调多用户请求而设置的,主要有DBWR(将Database Buffer Cache数据写入Data Files)、LGWR(将Redo Log Buffer数据写入Redo Log Files)、CKPT(协调数据文件、控制文件和重做日志,将System Change Number即SCN写入到控制文件和数据文件头部,促使DBWR、LGWR执行)、SMON(System Monitor,3方面作用:instance recovery实例故障数据恢复、合并空闲碎片空间、回收临时段)、PMON(用户例程意外终止时处理事务,如回退事务、释放锁及其他资源等)、ARCH(将Redo Log Files写入Archive Log Files)、CJQ0(job queue coordinator)、RVWR(recover writer,为flashback database提供日志记录)等进程。

数据库(database是指存储在磁盘上的一组物理文件,如数据文件(Data files,用于存储数据)、控制文件(Control files,存储数据文件、重做日志文件、归档日志文件位置及维护数据库完整性所需信息)和重做日志文件(Redo Log files,存储修改数据的所有操作记录以备故障后恢复),这三个是启动数据库必须的文件;另外还有参数文件(Parameter file,设置内存后台进程的启动等)、归档日志文件(Archived Log files,归档记录写满的重做日志文件的内容)和口令文件(Password file,验证用户名密码),这三个是非必须的文件。

oracle启动状态

Oracle启动分3个过程nomount、mount和open,这三个过程具体执行的工作如下:

  • NOMOUNT状态: SGA和后台进程已经启动
  • MOUNT状态: 通过参数读取了控制文件 ,拥有sysdba权限的可以进行一些数据的备份和恢复操作,其他用户还不能访问
  • OPEN状态; 其他用户正常访问
  

NOMOUNT状态

创建数据库实例
首先从spfile或者pfile中读取数据库参数文件,然后分配SGA和创建后台进程。

相当于生产线和工人都到位了,但是没有开始生产,生产线上没有产品。
 

MOUNT状态

建立数据库和实例的关系。

首先根据初始化参数文件中的CONTROL_FILE参数找到相应的控制文件然后打开它们,在控制文件中包含了数据库的数据文件和redo log文件信息。

这个时候数据库还没有打开,仍然处于关闭状态,这个时候普通的用户还不能连接到数据库,只有数据库管理员可以进行一些备份恢复等工作。
 

OPEN状态

打开数据库。

通过控制文件信息找到联机数据文件和redo log 文件,如果没有以上两个文件,数据库就会报错。如果这两个文件坏了,数据库无法打开,这个时候可以通过sysdba权限进入mount挂载状态后,对这两个数据文件进行恢复操作后再打开数据库。

参考:

Oracle数据库启动过程及状态详解(nomount、mount和open)

oracle启动的四个状态

Oracle学习笔记—oracle体系架构及状态(nomount、mount和open)简介的更多相关文章

  1. Oracle学习笔记—Oracle左连接、右连接、全外连接以及(+)号用法(转载)

    转载自: Oracle左连接.右连接.全外连接以及(+)号用法 对于外连接,Oracle中可以使用“(+)”来表示. 关于使用(+)的一些注意事项: (+)操作符只能出现在WHERE子句中,并且不能与 ...

  2. Oracle学习笔记--Oracle启动过程归纳整理

    Oracle 启动过程分为nomount状态mount状态open状态 每个状态下Oracle都会进行不同的操作:1.nomount状态 在$ORACLE_HOME/dbs目录下寻找参数文件 参数文件 ...

  3. ORACLE学习笔记-ORACLE(基本命令)

    --查看VGA信息: show sga; select * from v$sgastat;--可以通过以下几个动态性能视图查看信息: V$sysstat                系统统计信息 V ...

  4. Android学习笔记__1__Android体系架构

    Android 体系结构图 Android作为一个移动设备的平台,其软件层次结构包括了一个操作系统(OS),中间件(MiddleWare)和应用程序(Application).根据Android的软件 ...

  5. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  6. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  7. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  8. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

  9. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

随机推荐

  1. php学习网站推荐

    http://nikic.github.io/https://github.com/walu/phpbook http://www.chinaunix.net/ https://news.ycombi ...

  2. protobuf 在win10系统如何编译jar包

    最近在搞java服务器项目,前段要求用protobuf进行数据传输,以前没搞过,查了很多资料,走了一些弯路! 先把一些需要下载的链接放上来: protobuf下载地址:https://github.c ...

  3. Sphinx 安装与使用(1)-- 安装Coreseek

    Coreseek就是Sphinx的中文版 官方网站 http://www.coreseek.cn/ 一.安装 1.修改LANG 永久修改: vim /etc/locale.conf LANG=&quo ...

  4. CentOS7安装mysql提示“No package mysql-server available

    在CentOS7上安装mysql时,出现了以下的提示: 原因是: CentOS7带有MariaDB而不是MySQL,MariaDB和MySQL一样也是开元的数据库,您可以使用yum -y instal ...

  5. Win10系统如何配置Tomcat环境变量

    我们知道win10用户在配置Tomcat环境变量的时候,首先需要配置JAVA,这样才能配置Tomcat环境.很多用户并不知道要如何进行配置,下面就给大家介绍win10系统怎样Tomcat环境变量的. ...

  6. CentOS下使用MyTop实时监控MySQL

    CentOS下使用MyTop实时监控MySQL MyTop的项目页面为:http://jeremy.zawodny.com/mysql/mytop/ MyTop安装 $ yum -y install ...

  7. unity3d面试题与参考答案

    1.C#程序题 1 2 3 4 5 6 7 8 9 10 11 private static void aaa(int x) { x = 10; }   private static void bbb ...

  8. Laravel5.1 模型 --软删除

    软删除是比较实用的一种删除手段,比如说 你有一本账 有一笔记录你觉得不对给删了 过了几天发现不应该删除,这时候软删除的目的就实现了 你可以找到已经被删除的数据进行操作 可以是还原也可以是真正的删除. ...

  9. mysql UNION all 实现不对称数据统计

    当统计多条的三个参数在不同时间段的数据的sum,又只能写在同一个sql上时,可以考虑union all三次查询, select * from ( select kk.a_time as dates,k ...

  10. ScheduleFactory(不同scheduler name)

    package com.unis.uvm.quartz; import java.util.Properties; import org.quartz.Scheduler; import org.qu ...