Oracle的逻辑结构就是在物理中不存在,是oracle方便管理而定义的一些概念。
主要有:tablespace(表空间)、segment(段)、extent(范围、区)、block(段)。它们从左到右一次是一对多的关系。即tablespace是由多个segment构成的,segment是由多个extent构成的,extent是由多个block构成。
在讲到oracle的逻辑结构不可避免的谈到oracle一些物理结构,这里补充两个物理结构:datafile(数据文件)、osblock(系统块),他们都是真实存在的物理实体。
Tablespace:一个表空间在某一时刻只能属于一个数据库,每个表空间由一个或多个数据文件组成表空间可以由一个或多个段组成。
Datafile:Oracle 数据库内的每个表空间由一个或者多个数据文件组成一个数据文件只能属于一个表空间创建数据文件时,通过分配指定数量的磁盘空间,加上文件系统头的少量的开销,来创建表空间数据文件。(物理文件,可以在系统查看到的真实文件)
Segment:表空间可以由一个或多个段组成,每个段由一个或多个区组成,其实一个段就是数据库中的对象,比如table(表)、index(索引)、undo(回滚段)等。
Extent:一个或多个区组成一个段,当段创建后它至少由一个区组成随着段的增长,将向该段添加区一个区就是一组连续的 Oracle 块。
ORACLE块:Oracle 数据块是 Oracle能够读或写的最小存储单元,但不是最小分配单元
一个数据块对应一个或多个(被分配了数据文件的)操作系统块组成,数据块大小应当是操作系统块大小的整数倍,以避免不必要的I/O。
一、首先看一下段、区、块之间的关系
从上面的概念大家应该了解了基本的概念,我在这里在简单的总结一下:
段是你建立一个oracle内的一个对象(如表、索引等)就会oracle自动帮你建立一个段,用于存储该对象。可以通过dba_segments数据字典查询你建立的段。段必须要由区组成,所以在你建立段时也会自动的为你建立extent并且会是多个extent并且会根据你的段不断增长而自动增加区,可以通过dba_extents数据字典来查询区的信息。上面我们已经讲过段和区都是逻辑的概念,只是为了oracle方便管理,这些数据还是要真实存在磁盘中的所以区最后还是要是由block构成。上图非常清晰的表现出这个架构。
有人会问直接分配block不就行了吗?为什么还要够这么多层干嘛?其实就是为了方便管理,比如在用户只关心对象并不关心内部的存储结构,用户只要操作表就行了,不用再去分配block,而如何去分配block呢?一次分配多少、什么时候分配这就直接定义区管理就行了。大大方便了管理。
管理:
由于segment又分为多种,而每种的管理又不一样所以在这就不阐述了,会有专门的内容介绍。我们先看看extent是如何管理的:
Extent就是一连串block主要就是分配和回收,
分配三模式:
1、建立段的时候,自动分配初始化的范围
2、数据增长时,分配额外的范围
增长的大小不同每次分配的范围也不同
3、手工分配额外的范围
Alter table name allocate extent(size 10m);
回收三模式
1、手工回收
Alter table name deallocate unused;
2、trucate table name;
只保留初始化的大小,清楚所有数据,初始大小由表空间里定义的初始化大小决定。
3、drop table name purge;
彻底删除
二、表空间、段、数据文件的关系
数据库由多个表空间组成,而每个表空间只能属于一个数据库,一个表空间由多个数据文件组成,一个数据文件只能属于一个表空间,表和索引等对象逻辑上属于某个表空间,物理上是属于某些数据文件中的。
一个堆表所占用所有物理空间,这里的"所有物理空间"就指的是一个段.(分区表除外,分区表有多个段),段是占有一定存储空间的对象 可以理解为是对占用空间的对象的另一种命名方法。
<!--EndFragment-->
- 大小: 46.7 KB
- 大小: 42.8 KB
- 大小: 71 KB
分享到:
相关推荐
此体系架构图详细展示了这一版本的内部构造和工作原理,对于Oracle DBA(数据库管理员)来说,是理解并优化数据库性能的关键参考资料。 在Oracle 12c_R2中,最重要的创新之一是多租户架构(Multitenant ...
《Oracle_Database_编程艺术_深入数据库体系结构_10g11g》是一本针对Oracle数据库编程和体系结构的权威指南,由Oracle领域的资深专家撰写。这本书详细地揭示了Oracle数据库10g和11g的核心技术,帮助读者深入理解...
以上是对Oracle数据库体系结构的基本介绍,深入学习还包括对Oracle的SQL语法、存储过程、触发器、视图、约束、分区表等特性的理解和应用。通过理解这些核心概念,可以更好地管理和优化Oracle数据库,提升系统的稳定...
在逻辑层面上,Oracle数据库的架构由多个层次组成,包括实例、内存结构和进程。 1. **实例**:实例是Oracle数据库在内存中的表示,它包括系统全局区(SGA)和程序全局区(PGA)。 - **系统全局区**:SGA是一个...
在"Oracle体系架构图图解"中,我们可以深入理解Oracle的物理架构、逻辑架构和服务架构,以及其背后的进程组分类。 首先,Oracle的物理架构涉及到数据库在硬件和操作系统上的实际分布。它包括数据文件、控制文件、...
OracleDB_Architecture_Windows是关于Oracle数据库在Windows操作系统上的体系结构的讨论,特别是针对Oracle数据库10g版本。这份技术白皮书旨在为那些希望了解或部署Oracle数据库在Windows环境下的专业人士提供深入...
1. **数据文件**:数据文件是Oracle数据库中最基本的存储单元,存储了所有数据库对象,如表、索引等。它们以.dbf为扩展名,是数据库中数据的物理存储位置。每个数据库可以有多个数据文件,并且可以分布在不同的磁盘...
《Oracle_Database 9i10g11g编程艺术:深入数据库体系结构(第二版)》是一本专为IT专业人士准备的深度学习Oracle数据库架构和技术的书籍。这本书的源码部分提供了丰富的实践材料,帮助读者更好地理解Oracle数据库的...
Oracle 11G采用了多层的分布式数据库架构,包括数据文件、控制文件、重做日志文件、初始化参数文件等核心组件。这些组件共同确保了数据的完整性和一致性。 二、RAC(Real Application Clusters) Oracle 11G引入了...
Oracle最大可用性体系架构是指一系列技术的集合,旨在提供稳定、可靠、不间断的数据库服务,以保障企业关键应用的连续性和数据的安全性。这一架构主要包括Oracle Real Application Clusters(RAC)、Data Guard、...
第一部分: Oracle体系架构 第一章:实例和数据库 第二章:实例管理及数据库的启动/关闭 第三章:控制文件 第四章:redo日志 1 第五章:归档日志 archivelog 第六章:日志挖掘 logminer 第七章:管理undo 第八章: ...
Oracle 12c和11g是Oracle数据库的两个不同版本,它们的体系架构图能够帮助我们理解数据库的内部工作原理以及组件之间的交互。Oracle 12c是第十二个主要版本,引入了多租户架构,而11g则是其前一个版本,拥有传统的单...
- `1_HA.pdf` 可能涵盖了Oracle 11gR2的高可用性策略,包括RAC和Data Guard的使用方法。 - `2_MAA.pdf` 可能是关于MAA的深度分析,包括其组成部分、设计原则以及如何实施和优化MAA方案。 通过学习和实施这些文档...
总结来说,Oracle的基础体系架构包括逻辑结构的层次化组织、物理结构的存储布局以及实例的内存管理和后台进程,这些组件共同确保了Oracle数据库高效、稳定地运行。理解这些基础知识对于管理和优化Oracle数据库至关...
在深入理解Oracle 10g的体系结构之前,我们需要了解数据库的基本概念。数据库管理系统(DBMS)是用于创建、管理和操作数据的软件系统。关系型数据库管理系统(RDBMS)遵循关系模型,其中数据以表格形式存储,并通过...
本节将深入探讨Oracle数据库管理系统的体系架构,包括其基本轮廓、程序模块结构、实例概念以及组织等方面。 #### 二、基本轮廓与程序模块结构 Oracle数据库的基本轮廓包括以下几个关键组成部分: - **SQL产品与...
首先,Oracle 10g的基础知识包括数据库体系结构,这涵盖了数据存储、内存结构和进程架构。数据存储主要涉及表空间、段、区和块的概念,理解这些概念对于管理数据库的存储至关重要。内存结构由SGA(System Global ...
1. **Oracle数据库体系结构**:Oracle数据库采用多层架构,包括物理存储层、逻辑存储层和数据访问层。理解这些层次的功能和交互方式是诊断问题和优化性能的基础。 2. **SQL优化**:SQL语句的执行效率直接影响数据库...
在《Oracle 8i PL/SQL 高级程序设计》这本书中,作者详细介绍了 Oracle 8i 的各个方面,从数据库的基本结构到高级管理策略,再到网络应用和 SQL 命令的使用等。 ##### 1.1 数据库与实例的概念 - **数据库(Database...