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整体结构图,作为本章的结束,原文参考:

http://blog.csdn.net/tianlesoftware/article/details/5587788

Oracle学习笔记之二,Oracle 11g体系结构的更多相关文章

  1. Oracle学习笔记(二)——临时表

    在针对大数据量的多表级联查询或复杂事务处理的时候,引入Oracle临时表是一种不错的策略.因此,在解决实际需求时经常会遇到需要使用存储过程和临时表相互配合的情况.下面就Oracle如何创建临时表以及注 ...

  2. Oracle学习笔记之五,Oracle 11g的PL/SQL入门

    1. PL/SQL概述 PL/SQL(Procedural Language/SQL)是Oracle的专用语言,是对标准SQL语言的扩展,它允许在其内部嵌套普通的SQL语句,还可以定义变量和常量,允许 ...

  3. Oracle学习笔记(十二)

    十三.存储过程和存储函数1.掌握存储过程(相当于建立一个函数或者方法体,然后通过外部对其调用) 指存储在数据库中供所有程序调用的子程序叫做存储过程或存储函数. 相同点: 完成特定功能的程序 区别: 是 ...

  4. Oracle学习笔记(二)

    2.Oracle用户管理 (1)创建用户:create user 用户名 identified by 密码(需要dba权限); sql>create user yzw identified by ...

  5. Oracle 学习笔记(二)

    1.创建用户,一般是具有dba权限的用户才能使用: create user 用户名 identified by 密码; 2.删除用户: drop user 用户名,注意,如果用户拥有对象,则不能直接删 ...

  6. oracle学习笔记(二)表的查询

    --oracle表的管理 --创建表 )); --删除表 drop table users; --创建表 ),xm ),sex ),birthday date,sal ,)); ),cnmae )); ...

  7. oracle学习笔记(二) 基本数据类型

    常用的数据类型 int number number(4,1) 999.1 四个数字,小数位一位 decimal date 日期 格式如下: 注意:日期类型的字段格式,可以通过以下三种方式: 1. da ...

  8. oracle学习笔记(二十三)——JDBC调用存储过程以及批量操作

    jdbc调用存储过程 使用并获得out模式的参数返回值 //存储过程为sum_sal(deptno department.deptno%type,sum in out number) Callable ...

  9. Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

    子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中.   子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...

随机推荐

  1. [Angular] Use ngx-build-plus to compile Angular Elements

    We can treat Angular Element as each standlone lib and compile each Angular element spreatly. Tool w ...

  2. [Javascript] Prototype 2 Object.create()

    function Fencepost (x, y, postNum){ this.x = x; this.y = y; this.postNum = postNum; this.connections ...

  3. Jmeter测试报告可视化(Excel, html以及jenkins集成)

    做性能测试通常在none GUI的命令行模式下运行Jmeter. 例如: jmeter -n -t /opt/las/JMeter/TestPlan/test.jmx -l /opt/las/JMet ...

  4. FLUSH TABLES WITH READ LOCK 和 LOCK TABLES比较

    1.FLUSH TABLES WITH READ LOCK 这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读.一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行.解 ...

  5. Android 所遇问题(一)

    1.打开Eclipse更新了一下sdk和adt到22.6,更新一切都很顺利,可以新建一个工程时发现多了一个appcompat_v7的内容.查看项目发现本来MainActivity是继承Activity ...

  6. iOS 事件传递及响应过程

    iOS 事件传递及响应过程 -->>事件到来-->>事件分发 -->>事件响应 事件( Events) 官方文档( Events(iOS)) 是这样描写叙述的: U ...

  7. java Socket Tcp示例三则(服务端处理数据、上传文件)

    示例一: package cn.itcast.net.p5.tcptest; import java.io.BufferedReader;import java.io.IOException;impo ...

  8. 添加space_key, enter_key, clear_key, delete_key的处理。

    final EditText view = (EditText) mInflater.inflate(R.layout.sms_receipient_input, null); view.setOnK ...

  9. (四)Linux Shell编程——输入输出重定向

    Unix 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 1. 输出重定向 命令的输出不 ...

  10. [转载]ubuntu发热问题解决

    原文地址:ubuntu发热问题解决作者:raosea 没事装了个ubuntu12.04玩玩. 用wubi安装,很省事的 .完了以后启动了系统,界面蛮好看.可是不久令人费心的事情出来了. 我发现本本的右 ...