您的位置:首页 > 数据库 > Oracle

Oracle学习笔记之二,Oracle 11g体系结构

2013-07-26 20:43 295 查看

Oracle 11g体系结构概述

实例(Instance),是指一组Oracle后台进程以及在服务器中分配的共享内存区域;

数据库(Database),是由基于磁盘的数据文件、控制文件、日志文件、参数文件和归档日志文件等组成的物理集合;

数据库服务器(Database Server),是指管理数据库的各种软件工具(比如:SQLPLUS,OEM等)、实例及数据库3个部分。

1. 逻辑存储结构



1.1 数据块(Data Blocks)

数据块是Oracle逻辑存储结构中的最小的逻辑单位,也是执行数据库输入输出操作的最小存储单位。

通常Oracle数据块是操作系统块的整数倍,如果操作系统快的大小为2048B,并且Oracle数据块的大小为8192B,则表示Oracle数据块由4个操作系统块构成。Oracle数据块有一定的标准大小,其大小被写入到初始化参数DB_BlOCK_SIZE中。

1.2 数据区(Extent)

数据区(也可称作数据扩展区)是由一组连续的Oracle数据块所构成的Oracle存储结构,一个或多个数据块组成一个数据区,一个或多个数据区再组成一个段(Segment)。

当一个段中的所有空间被使用完后,Oracle系统将自动为该段分配一个新的数据区,这也正符合Extent这个单词所具有的“扩展”的含义,可见数据区是Oracle存储分配的最小单位,Oracle就以数据区为单位进行存储控件的扩展。

1.3 段(Segment)

段是由一个或多个数据区组成的,它不是存储空间的分配单位,而是一个独立的逻辑存储结构,用于存储表、索引或簇等占用空间的数据对象。

一个段只属于一个特定的数据对象,段内的数据区可以不连续,并且可以跨越多个文件,使用段的目的是用来保存特定的对象。一个Oracle数据库通常有以下4种类型的段:

数据段、索引段、回滚段、临时段。

1.4 表空间(TableSpace)

Oracle使用表空间将相关的逻辑结构(比如段、数据区等)组合在一起,表空间是数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象(即Segment),任何数据对象在创建时都必须被指定存储在某个表空间中。一个表空间由一个或多个数据文件组成。

2. 物理存储结构



3. Oracle 11g服务器结构



实例(Instance)可以进一步划分为系统全局区(SGA)和后台进程(PMON、SMON)两部分。SGA使用操作系统内存资源,而后台进程需要使用CPU与内存资源。

3.1 系统全局区(SGA)

SGA是所有用户进程共享的一块内存区域,主要由高速数据缓冲区、共享池、重做日志缓存区、Java池和大型池等内存结构组成。

高速数据缓冲区(Database buffer cache),存放着Oracle系统最近访问过的数据块。

重做日志缓冲区(Redo log buffer cache),用于存放对数据库进行修改操作时产生的日志信息,这些日志信息在写入到重做日志文件之前,首先存放到重做日志缓冲区中,然后在检查点发生或重做日志缓冲区中的信息量达到一定的峰值时,由日志写入进程(LGWR)将此缓冲区的内容写入到重做日志文件。参数名:LOG_BUFFER

共享池(Shared pool),用于缓存SQL语句、PL/SQL语句、数据字典、资源锁、字符集以及其他控制结构等。参数名:SHARED_POOL

大型池(Large pool),在SGA区中不是必需的内存结构,只在某些特殊情况下,实例需要使用大型池来减轻共享池的访问压力,常用情况有:备份和恢复、执行具有大量排序操作的SQL语句、使用并行查询时。参数名:LARGE_POOL_SIZE

Java池,用来提供内存空间给Java虚拟机使用,目的是支持在数据库中运行Java程序包。参数名:JAVA_POOL_SIZE

3.2 后台进程

放一张Oracle 11g整体结构图,作为本章的结束,原文参考:

/article/1361886.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: