首先看张图

下面来解释下这个图.
对于一个数据库系统来说,假设这个系统没有运行,我们所能看到的和这个数据库相关的无非就是几个基于操作系统的物理文件,这是从静态的角度来看,如果从动态的角度来看呢,也就是说这个数据库系统运行起来了,能够对外提供服务了,那就意外着数据库系统启动了自己的一个实例,综合以上2个角度,oracle如何定义上述描述呢?
我们来引入第一个概念,oracle服务器,所谓oracle服务器是一个数据库管理系统,它包括一个oracle实例(动态)和一个oracle数据库(静态)。oracle实例是一个运行的概念(如操作系统的进程),提供了一种访问oracle数据库的方式,始终打开一个,并且只能打开一个oracle数据库,oracle实例有SGA和一些后台服务进程组成,在后台服务进程当中,DBWn PMON CKPT LGWR SMON是必备的后台进程,而ad queue,rac,shared server,ad replication则是可选的,之所以可选,要们是因为离开它oracle也能正常运行,要么是一些高级的功能才可以用得到。
oracle数据库是一个被统一处理的的数据的集合,从物理角度来看包括三类文件数据文件,控制文件,重做日志文件。从逻辑角度来看,oracle数据库至少包含一个表空间,表空间至少包含一个段,段由区做成,区有块组成。需要注意的是表空间可以包含若干个数据文件,段可以跨同一个表空间的多个数据文件,区只能在同一个数据文件内。
oracle还设计了其他的关键文件用来为整个系统服务,如配置文件,密码文件,归档日志文件,还有还有用户进程和服务进程,现在可以简单理解下执行sql语句就要用到这2个进程。
下表是SGA和PGA的总结
 

SGA

SHARE POOL

(共享池)

用如下命令可以调整

ALTER SYSTEM SET

SHARED_POOL_SIZE=64M

LIBRARY CACHE

(库高速缓存)

1存储最近使用的SQL和PL/SQL语句信息

2包括SHARED SQL和SHARED PL/SQL

3用LRU算法管理

4大小由SHARE POOL大小决定

DATA DICTIONARY CACHE

(数据字典高速缓存)

1数据库中最近使用的定义的集合

2包含数据库文件,表,索引,列,用户,权限和其他的数据库对象相关信息

3在语法分析阶段,服务器进程会在数据字典中查找用于对象解析和验证访问的信息

4将数据字典信息高速缓存到内存中,可缩短查询和DML的响应时间

5大小由共享池的大小决定

DATABASE BUFFER CACHE

(数据缓冲区高速缓存)

1存储已从数据文件检索到的数据的复本

2大幅提高读取和更新数据的性能

3使用LRU算法管理

4主块的大小由DB_BLOCK_SIZE确定

REDO LOG BUFFER

(重做日志缓冲区)

1记录对数据库数据块作的全部更改

2主要用来恢复

3其中记录的更改被称作重做条目

4重做条目包含用于重新构建或重做更改的信息

5大小由LOG_BUFFER定义

LARGE POOL

(大型池)

1 SGA可选的内存区

2分担了共享池的一部分工作

3用于共享服务器的UGA

4用于I/O服务器进程

5备份和恢复操作或RMAN

6并行执行消息缓冲区(前提PARALLEL_POOL_SIZE=TRUE)

7不使用LRU列表

8大小由LARGE_POOL_SIZE确定

JAVA POOL

(JAVA池)

1存储JAVA命令服务分析要求

2安装和使用JAVA时必须的

3大小有JAVA_POOL_SIZE确定

PGA

PRIVATE SQL AREA

(专用SQL区)

专用SQL 区的位置取决于为会话建立的连接类型。在专用服务器环境中,专用SQL 区位于各自服务器进程的PGA中。在共享服务器环境中,专用SQL 区位于SGA 中。

管理专用SQL 区是用户进程的职责。用户进程可以分配的专用SQL 区的数目始终由

初始化参数OPEN_CURSORS 来限制。该参数的缺省值是50。

PERSISTEN AREA

(永久区)

包含绑定信息,并且只在关闭游标时释放

RUNTIME AREA

(运行时区)

在执行请求时的第一步创建。对于INSERT、UPDATE 和DELETE命令,该区在执行语句后释放,对于查询操作,该区只在提取所有行或取消查询后释放。

SESSION MEMORY

(会话内存)

包含为保留会话变量以及与该会话相关的其它信息而分配的内存。对于共享服务器环境,该会话是共享的而不是专用的。

SQL WORK AREAS

(SQL工作区)

用于大量占用内存的操作,如排序、散列联接、位图合并和位图创建。

工作区的大小可进行控制和调整

                            下表是后台进程总结

DBWn

DBWn 延迟写入数据文件,直到发生下列事件之一:

• 增量或正常检查点

• 灰数据缓冲区的数量达到阈值

• 进程扫描指定数量的块而无法找到任何空闲缓冲区时

• 出现超时

• 实时应用集群(Real Application Clusters, RAC) 环境中出现ping 请求

• 使一般表空间或临时表空间处于脱机状态

• 使表空间处于只读模式

• 删除或截断表

• 执行ALTER TABLESPACE 表空间名BEGIN BACKUP 操作

LGWR

LGWR 在下列情况下执行从重做日志缓冲区到重做日志文件的连续写入:

• 当提交事务时

• 当重做日志缓冲区的三分之一填满时

• 当重做日志缓冲区中记录了超过1 MB 的更改时

• 在DBWn 将数据库缓冲区高速缓存中修改的块写入数据文件以前

• 每隔三秒

SMON

例程恢复

– 前滚重做日志中的更改

– 打开数据库供用户访问

– 回退未提交的事务处理

• 合并空闲空间

• 回收临时段

PMON

进程失败后,后台进程PMON 通过下面的方法进行清理:

• 回退用户的当前事务处理

• 释放当前保留的所有表锁或行锁

• 释放用户当前保留的其它资源

• 重新启动已失效的调度程序

CKPT

• 在检查点发信号给DBWn

• 使用检查点信息更新数据文件的标头

• 使用检查点信息更新控制

启动检查点的原因如下:

• 确保定期向磁盘写入内存中发生修改的数据块,以便在系统或数据库失败时不会丢失数据

• 缩短例程恢复所需的时间。只需处理最后一个检查点后面的重做日志条目以启动恢复操作

• 确保提交的所有数据在关闭期间均已写入数据文件

由CKPT 写入的检查点信息包括检查点位置、系统更改号、重做日志中恢复操作的起始位置以及有关日志的信息等等。

注:CKPT 并不将数据块写入磁盘,或将重做块写入联机重做日志。

ARCn

• 可选的后台进程

• 设置ARCHIVELOG 模式时自动归档联机重做日志

• 保留数据库的全部更改记录

 
  最后,举一个用户提交sql语句的的例子来结束本文,如果用户想提交sql语句,那么首先你必须要连接到oracle实例,连接到oracle实例有三种途径,1如果用户登陆到运行oracle实例的操作系统上,则通过进程间通信进行访问2C/S结构访问3三层结构
发起连接的应用程序或工具通常称为用户进程,连接发起后,oracle服务器就会创建一个进程来接受连接,这个进程就成为服务进程,服务器进程代表用户进程与oracle实例进行通信,在专用服务器连接模式下,用户进程和服务进程是1对1的关系,在共享服务器模式下,多个用户进程可能共享一个服务进程。
当服务器进程开始和oracle实例进行通信时,一个会话就被创建了。
显然处理一个查询要经过语法分析,绑定,执行,提取等阶段。
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Oracle体系中各个组件的含义的更多相关文章

  1. Oracle db中 CONNECT role的含义

    出自: Complete Checklist for Manual Upgrades to 11gR2 (文档 ID 837570.1) 该文章中有例如以下的文字: From Oracle 10.2, ...

  2. WebLogic中WLS 组件漏洞(CVE-2017-10271)专项检测工具

    来源: 时间:2017-12-23 00:00:00 作者: 浏览:1929 次 近期安恒信息在应急响应过程中发现有恶意攻击者利用WebLogic漏洞对企业服务器发起大范围远程攻击,攻击成功后植入挖矿 ...

  3. oracle存储过程中%type的含义

    转: oracle存储过程中%type的含义 2018-11-07 11:43:56 lizhi_ma 阅读数 1361更多 分类专栏: 数据库   版权声明:本文为博主原创文章,遵循CC 4.0 B ...

  4. 理解 Oracle 多租户体系中(12c,18c,19c)Grant授权作用域范围

    本篇探讨以下几个问题:你可提前猜测下面6个场景语句中,哪几个授权可以成功执行? 1. 在CDB级别中对用户进行授权,不带 container 子句的效果: 2. 在CDB级别中对用户进行授权,带 co ...

  5. Oracle基础学习(二)v$session中Command的数字含义

    v$session中Command的数字含义. 1 CREATE TABLE 2 INSERT 3 SELECT 4 CREATE CLUSTER 5 ALTER CLUSTER 6 UPDATE 7 ...

  6. RTSP RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议

    RTSP 编辑 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetwo ...

  7. 盘点 Oracle 11g 中新特性带来的10大性能影响

    Oracle的任何一个新版本,总是会带来大量引人瞩目的新特性,但是往往在这些新特性引入之初,首先引起的是一些麻烦,因为对于新技术的不了解.因为对于旧环境的不适应,从Oracle产品到技术服务运维,总是 ...

  8. Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义

    Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义 首先我们指明,任何一种行动以及教派修行方法都有他的多元化,只看到某一方面,就不能很好的评估利弊,适不适合自己使 ...

  9. 关于Oracle GoldenGate中Extract的checkpoint的理解 转载

    什么是checkpoint? 在Oracle 数据库中checkpoint的意思是将内存中的脏数据强制写入到磁盘的事件,其作用是保持内存中的数据与磁盘上的数据一致.SCN是用来描述该事件发生的准确的时 ...

随机推荐

  1. linux下 nginx、php-fpm、mysql 开机自启动

    1.分别为每个编写shell脚本放入/etc/init.d下,添加service服务 2.把每个service服务加入到chkconfig列表 这里我们以php-fpm为例说明下步骤: php-fpm ...

  2. 【JAVA并发编程实战】8、锁顺序死锁

    package cn.study.concurrency.ch10; public class Account { private String staffAccount; //账号 private ...

  3. javascript中的弹框

    大家都见过某度中的恶意广告,你关闭了又出来了!为何,JS来告诉你 效果猛戳此处 HTML <body> <h3 class="whiteColor">无法关 ...

  4. 【一次面试】再谈javascript中的继承

    前言 面向对象编程是每次面试必问的知识点,而前端js如何实现继承每次命中率高达80% 这不,近两天我们面试时候,同事就问道面试者此问题,但是,不论之前自己做的回答,还是面试者的回答,基本都不太令人满意 ...

  5. 1-2 nodejs小节 文件读取

    1.表达式 在命令行输入  node回车后,可以在后边输入相应的表达式,进行运算操作   2.阻塞文件读取 var data=fs.readFileSync('input.txt', 'utf-8') ...

  6. 基本排序算法——shell排序java实现

    shell排序是对插入排序的一种改进. package basic.sort; import java.util.Arrays; import java.util.Random; public cla ...

  7. QuickFlow UI 控件之 NamedFormAttachment

    在开发自定义表单时,如果碰到需要按类别上传附件的情况,(比如流程附件分为草稿版,正式版,发布版),比较难处理,需要开发自定义字段控件来实现. QF最新版本(Build131124)提供了NamedFo ...

  8. EventBus源码解析 源码阅读记录

    EventBus源码阅读记录 repo地址: greenrobot/EventBus EventBus的构造 双重加锁的单例. static volatile EventBus defaultInst ...

  9. UILabel

    //UILabel->UIView /* 1.实例化 2.属性 3.添加到父视图上 */ //实例化 UILabel *label = [[UILabel alloc] initWithFram ...

  10. iOS百度地图简单使用

    本文介绍三种接口: 1.基础地图2.POI检索3.定位 首先是配置环境,有两种方法,方法在官方教程里都有,不再多说 1.使用CocoaPods自动配置[这个方法特别好,因为当你使用CocoaPods配 ...