Oracle实例的概念:

实例(Instance):就是数据库管理系统,处于用户与物理数据库之间的一个中间层软件,由一系列内存结构和后台进程组成。

用户操作数据库的过程实质上与数据库实例建立连接,然后通过实例操作数据库的过程。

内存结构是oracle数据库体系结构的重要组成部分,是oracle数据库重要的信息缓存和共享区域。它的大小、速度直接影响数据库的运行效率。oracle数据库内存管理就是根据数据库运行状态的改变而不断优化内存结构大小的过程。

内存区域信心使用范围的不同,分为系统全局去(SGA)和程序全局区(PGA).oracle支持对着两个的完全自动管理。

后台进程是实例被创建时创建的一些具有特定功能的小程序,在数据库实力启动时被启动,用于监视各个服务器的进程状态,协调各个服务器进程的任务。

数据库与实例的关系

通常数据库和实例是一一对应的,即一个数据库对应一个实例。

在同一台计算机上可以创建多个oracle数据库,当要同时使用这些数据库是,,就要创建多个实例。

SGA

SGA是由oracle分配的共享内存结构,包含一个数据库实例的数据和控制信息。SGA数据供所有的服务器进程和后台进程共享所以称为共享全局区。用户对数据库的各种操作主要在SGA中进行。该内存区随数据库实例的创建而创建,终止而释放。

数据高速缓冲区:是存储的是最近从数据文件中检索出来的数据,供所有用户共享。当用户要操作数据库中的数据时,先由服务器进程将数据从磁盘的数据文件中读取到数据高速缓冲区中,然后在缓冲区中进行处理。用户处理后的结果被存储在

数据高速缓冲区中,最后由数据库写入进程DBWR写到磁盘的数据文件中永久保存。

缓存快的类型:

1.脏缓存块:存储的是已经被修改过的数据。

2.空闲缓存块:它不包含任何数据,它们等待后台进程或服务器进程向其中写入数据。

3.命中缓存块:指那些正在被使用的数据块,同时还有很多回话等待修改或访问的数据块。

4.干净缓存块:指那些当前没有被使用,即将被换出内存的缓存块。

缓存块的管理:在oracle中。采用脏缓存块列表和LRU列表来管理数据高速缓冲区中的缓存块。

LRU列表能保证最频繁使用的数据块始终保存在内存中。

当用户进程需要访问某些数据时,Oracle首先在数据高速缓冲区中寻找,若存在,则直接从数据高速缓冲区中读取并返回给用户,这种情况称为“缓存命中”否则,就要从数据文件中读取到高速缓冲区中,然后再从数据高速缓冲区中读取并返回给用户。

这种情况“缓存失败”

当“缓存失败”的情况,oracle的工作原理是,从LRU列表的尾部开始搜索所需要的空闲缓存。在搜索过程中如果搜索到了一个脏缓存块,则移入脏缓存块列表,然后继续搜索;如果搜索到合适的空闲缓存块,则将数据写入,并把该缓存块移动到LRU列表的头部;

如果搜索了一个数量的缓存块后任然没有找到所需空间缓存块,将停止对LRU列表搜索,然后激活DBWR,将脏缓存块列表中的脏缓存块写入数据文件,同时脏缓存块将恢复为空闲缓存块,并移动到LRU列表中。

数据高速缓冲区的大小不能太大也尽量大。

重做日志缓冲区:用于缓存用户对数据库进行修改操作时生成的重做记录。例如,当用户执行insert ,update等对表进行修改,或者执行create alter等语句创建、修改数据库对象时,oracle都会自动为这些操作生成重做记录,并写入重做日志文件。

而为了提高效率,日志和数据修改一样,不是直接写到日志文件中,而是首先被服务器进程写入重做日志缓冲区中,在一定条件下,再由日志写入进程LGWR把重做日志缓冲区内容写入到日志文件中做永久性保存。

在归档模式下,当重做日志切换时,由归档进程ARCH将重做日志文件的内容写入归档文件中。

重做日志缓冲区的大小对数据性能有较大的影响。由参数LOG_BUFFER参数指定,可以在数据运行期间进行调整。例如

alter system set LOG_BUFFER=30M;

共享池

是用与缓存最近执行过的SQL语句、PL/SQL程序和数据字典,是对SQL语句等进行语法分析、编译、执行的区域。由库缓存和数据字典缓存组成。

库缓存简单的将就是将编译执行过的SQL语句、pl/sql程序缓存在里面,当执行这些时。oracle首先在共享池的库缓存中搜索,这样不用对新的语句进行解析,从而大大提高了系统的执行速度。

数据字段缓存区中保存最常使用的数据字典信息。

共享池的大小由初始化参数文件中的SHARED_POOL_SIZE参数指定。

合适的笑答,可使编译过的程序代码常驻内存,大大降低了重复还行相同SQL语句。

java池是一个可选的内存配置项。提供对java程序设计的支持,用于存储java代码,java语句的语法分析表。由参数java_pool_size控制。

PGA

PGA是一个私有的内存区,不能共享,每个服务器进程只能访问自己的PGA。

PGA由四部分组成

排序区:存放排序操作所产生的临时数据

游标去:存放执行游标操作锁产生额数据

会话去:保存用户会话锁具有的权限、角色、性能统计信息

堆栈区:用于保存会话过程中的绑定变量、会话变量等信息

Oracle数据库体系结构(2)数据库实例的更多相关文章

  1. Oracle数据库体系结构、启动过程、关闭过程

    一.Oracle数据库体系结构体系结构由下面组件组成:1.Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1 ...

  2. Oracle数据库------体系结构

    ORACLE体系结构包括:实例(Instance),数据库文件,用户进程(User process),服务器进程以及其他文件. 1.ORACLE实例(instance)     1).要访问数据库必须 ...

  3. Oracle学习笔记--第2章 oracle 数据库体系结构

    第2章 oracle 数据库体系结构 目录: ————————————— 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...

  4. Oracle数据库基本操作(一) —— Oracle数据库体系结构介绍、DDL、DCL、DML

    一.Oracle数据库介绍 1.基本介绍 Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/ ...

  5. oracle数据库体系结构

    一.oracle数据库体系结构 基本组成: Oracle server:一般情况下是一个instance和一个database组成 一般:1个instance只能对应一个数据库. 特殊:1个数据库可以 ...

  6. Oracle数据库体系结构-Shared Pool

    Oracle数据库简单介绍 对象关系型数据库 重点:一致性+性能 一致性优于性能 处理模型:C/S模型 Client:用户和用户进程             Server:服务器进程,实例,数据库本身 ...

  7. 创建多个Oracle数据库及相应的实例

    转 http://blog.csdn.net/luiseradl/article/details/6972217 对于使用过SQL Server数据库的用户可以会对Oracle中的数据库的实例的概念理 ...

  8. 关于ORACLE数据库名以及数据实例名等几个重要概念

    在Oracle中有关数据库和数据库实例的几个重要概念,有时候如果理解不是很深或者对其疏忽.混淆了,还真容易搞错或弄不清其概念,下面就数据库实例名.数据库名.数据库域名.数据库服务名.全局数据库名几个概 ...

  9. Oracle体系结构之数据库启动的不同状态

    数据库启动的不同状态: nomount状态:spfile和plile mount状态:control file open状态:data file和redo file 启动数据库的过程:nomount状 ...

随机推荐

  1. Deferred Shader GBuffer 感性认识。。。

  2. sqlplus登入和plsql登入的差别

    以下是两种登入方式的截图.用sqlplus登入须要输入主机字: 假设是用本机的SQL*Plus连接本机的数据库.则"主机字符串"能够为空. 假设是从远程连接xp的oracle数据库 ...

  3. MySQL 数据库备份种类以及经常使用备份工具汇总

    mysql> flush tables with read lock; Query OK, 0 rows affected (0.00 sec) mysql> show master st ...

  4. 基于Ranking-CNN的年龄识别(CVPR_2017)

    作为学习记录,将所做PPT摘录如下:

  5. JQuery小结(转)

    一.页面加载 JQ的页面加载比JS要快,当整个dom树结构生成完毕后就会加载 JQ页面加载不存在覆盖问题,加载的时候是顺序执行 JQ的页面加载最简写的方式为: $(function(){ alert( ...

  6. iOS端App的icon和Launch Image规格实时更新

    启动影像 : iPhone :320 x 480 640 x 960 640*1136 750*1334 1242*2208  iPad :768 x 1004 1536 x 2008 APP图标: ...

  7. Apollo配置中心解惑(一):关于一个portal管理多个环境,要求环境相互之间不影响,独立

    关于作者的回答很官方,不太懂: https://github.com/ctripcorp/apollo/wiki/%E5%88%86%E5%B8%83%E5%BC%8F%E9%83%A8%E7%BD% ...

  8. Android开发和Android Studio使用教程

    Android studio安装和简单介绍http://www.jianshu.com/p/36cfa1614d23 是时候把Android 项目切换到Android Studio http://ww ...

  9. CAN协议学习(一)协议介绍

    一.简介 CAN 是 Controller Area Network 的缩写(以下称为 CAN),是 ISO 国际标准化的串行通信协议. 在当前的汽车产业中,出于对安全性.舒适性.方便性.低公害.低成 ...

  10. iOS CAGradientLayer白色渐变至上向下

    项目需求当显示富文本内容高度太高的的时候不全部显示出来,而是显示查看更多按钮,当点击查看更多时把全部内容展开.同时未展开部分要加一个渐变模糊的效果. 上效果图: 这里要用到CAGradientLaye ...