首先看张图

下面来解释下这个图.
对于一个数据库系统来说,假设这个系统没有运行,我们所能看到的和这个数据库相关的无非就是几个基于操作系统的物理文件,这是从静态的角度来看,如果从动态的角度来看呢,也就是说这个数据库系统运行起来了,能够对外提供服务了,那就意外着数据库系统启动了自己的一个实例,综合以上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. 25、ASP.NET MVC入门到精通——Spring.net-业务层仓储

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一节,我们已经把项目框架的雏形搭建好了,那么现在我来开始业务实现,在业务实现的过程当中,不断的来完善我们现有的框架. 1.假设我们来做一个 ...

  2. C#中==、Equals、ReferenceEquals的区别

    原文链接:http://www.studyofnet.com/news/1188.html 本文导读: C#中Equals , == , ReferenceEquals都可以用于判断两个对象的个体是不 ...

  3. HTML5中使用图片传递密文

    上面的两张图片中,你能看出有什么不同吗? 右图使用 html5 canvas api 中的 getImageData 和 putImageData 函数嵌入了一段文字. 道理很简单,getImageD ...

  4. html meta标签使用总结

    meta标签作用 META标签是HTML标记HEAD区的一个关键标签,提供文档字符集.使用语言.作者等基本信息,以及对关键词和网页等级的设定等,最大的作用是能够做搜索引擎优化(SEO). PS:便于搜 ...

  5. Android中的AlertDialog使用示例一(警告对话框)

    在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择.这些功能我们叫它Android Dialog对话框,AlertDialog实现方法为建造者模式. ...

  6. collection view 开发笔记

    使用collectionView 注册的cell 不会调用 init 方法 会调用 initwith fram 方法.

  7. Android的四大组件之Activity

    Android的四大组件之Activity Activity:是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,B ...

  8. 学习Swift的点点滴滴

    1.类型标注 之前不知道为啥别人写的Swift语言的时候,定义常量或者变量的格式是 常量: let 常量名: 常量类型 = 常量值  或者 变量: var 变量名: 变量类型 = 初始值 原来书上有记 ...

  9. jxl导入导出实例

    1 package com.tgb.test; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.util.Ar ...

  10. 我对uml类图关系的理解

    uml类图的关系: 泛化关系也就是继承. 实现关系就是一个类实现另外一个接口. 依赖关系就是一个类使用了另外一个类,是一种使用关系,在这个类的某个服务中需要另外一个类来协助. 关联关系就是一类拥有另外 ...