Oracle 数存储——物理结构

Oracle存储结构:物理结构+逻辑结构

Oracle 数据库存储逻辑结构

Oracle Schema Objects(Schema Object Storage And Type)

  • 在操作系统中无法找到逻辑存储结构所对应的文件,但通过查询Oracle数据库的数据字典,可以找到逻辑存储结构的描述。
  • 逻辑存储结构包括表空间,段,区,数据块。逻辑结构之间的关系是:多个块组成区,多个区组成段,多个段组成表空间,多个表空间组成逻辑数据库。
    • 表空间(多个表空间组成逻辑数据库)
    • 段(多个段组成表空间)
    • 区(多个区组成段)
    • 数据块(多个数据块组成区)
  • 一个区:一个区只能在一个数据文件中。
  • 段中的各个区:一个段中的各个区可以分别在多个数据文件中。
  • 组成区的块:组成区的块是连续的。
  • 逻辑存储结构是有大小的:由于逻辑的数据块对应磁盘空间中某个固定大小尺寸,所以逻辑存储结构也是有大小的。

一、 表空间(tablespace)

下面的表格显示的是oracle11g自动创建的表空间名称及其说明

名称

分类

说明

EXAMPLE

非系统表空间

示例表空间,存放示例数据库的方案对象信息及其培训资料

SYSAUX

系统表空间

辅助系统表空间,用于减少system表空间的负荷,提高系统的工作效率。是oracle 10g新增加的表空间

SYSTEM

系统表空间

系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,存放着方案对象(如表,索引,同义词,序列)的定义信息,存放着所有pl/sql 程序(如过程,函数,包,触发器)的源代码,是oracle数据库中最重要的表空间。它属于SYS和SYSTEM方案,仅被SYS和SYSTEM或其他具有足够权限的用户使用。即使是SYS 和SYSTEM用户也不能删除或重命名该空间。他是用户的默认表空间,即当用户在创建一个对象时,如果没有指定特定的表空间,该对象的数据也会被保存在SYSTEM表空间中。

TEMP

系统表空间

临时表空间,存放临时表和临时数据,用于排序。每个数据库都应该有一个(或创建一个)临时表空间,以便在创建用户时将其分配给用户,否则就会将TEMP表空间作为临时表空间。

UNDOTBS1

非系统表空间

重做表空间,存放数据库的有关重做的相关信息和数据

USERS

非系统表空间

用户表空间,存放永久性的用户对象的数据和私有信息,因此也被称为数据表空间。每个数据库都应该有一个(或创建一个)用户表空间,以便在创建用户时将其分配给用户,否则将会使用SYSTEM表空间来保存数据,而这种做法是不好的。一般讲,系统用户使用SYSTEM表空间,而非系统用户使用USERS表空间

二、 段(segment)

  • 段用于存储表空间中某一种特定的,具有独立存储结构的数据块对象的数据。
  • 段是由一个或多个连续的区组成。
  • 当创建表、索引、簇等对象时,oracle就会为这些对象分配存储空间(即段),以便存储它们的数据。
  • 段随着存储数据的增大而逐渐变大。段的增大过程是通过增加区的个数而实现的(每次增加一个区)。每个区的大小是块的整数倍。
  • 按照段中存储的数据的特征、用途不同,可以分为以下几种:

段类型

名称

段类型

名称

Index partition

索引分区段

Deferred rollback

延迟回退段

Table partition

表分区段

Undo

撤销段(还原段)

Table

表段(数据段)

Temporary

临时段

Cluster

簇段

Cache

高速缓存段

Index

索引段

Lob

二进制大对象段

Rollback

回退段

Lobindex

二进制大对象索引段

三、 区(extent)

  • 区是由物理上连续存放的块所组成的。
  • 区是oracle存储分配的最小单位。
  • 一个或多个块组成区,一个或多个区组成段。
  • 一个区只能属于一个数据文件。
  • 一个段中的各个区可以分别在多个数据文件中。
  • 当数据库中创建带有实际存储结构的方案对象时(如表、索引),oracle将为方案对象分配若干个区,以便组成一个对应的段,来为该方案对象提供初始的存储空间。
  • 当段中已分配的区都写满,oracle就要在该方案对象所在的表空间中为该段分配下一个新的空白区,以便容纳更多的数据。

四、 块(block)

  • 块是最小的数据管理单位,即oracle的所有存储的i/o操作都是以块为单位的。操作系统执行i/o的最小单位是操作系统块。
  • 块的大小是操作系统块的大小的整数倍。
  • 块的大小是一个表空间的属性。
  • SYSTEM系统表空间和SYSAUX辅助系统表空间具有相同的标准的块大小,这个大小是在创建数据库时(会同时创建者两个表空间)由DB_BLOCK_SIZE初始化参数制定的,但创建数据库之后这个参数值不能改变。
 

Oracle存储——逻辑结构的更多相关文章

  1. <Oracle Database>逻辑结构

    逻辑结构 Oracle的逻辑结构是一种层次结构.主要由:表空间.段.区和数据块等概念组成.逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构. 数据块 数据块是Oracle最小的 ...

  2. oracle存储参数(storage子句)含义及设置技巧

    可用于:表空间.回滚段.表.索引.分区.快照.快照日志 参数名称 缺省值 最小值 最大值 说明 INITIAL 5(数据块) 2(数据块) 操作系统限定 分配给Segment的第一个Extent的大小 ...

  3. Oracle 数据库逻辑结构2.md

    Oracle 数据库逻辑结构一.存储关系Oracle 数据库逻辑上是由一个或多个表空间组成的,表空间物理上是由一个或多个数据文件组成的:而在逻辑上表空间又是由一个或多个段组成的.在Oracle 数据库 ...

  4. Oracle 数据库逻辑结构

    注:本文来源于 <腾科OCP培训课堂>.非准许商业活动. Oracle 数据库逻辑结构 一.存储关系 Oracle 数据库逻辑上是由一个或多个表空间组成的,表空间物理上是由一个或多个数据 ...

  5. ORACLE体系结构逻辑结构-表空间、段、区和数据块

    转自: https://www.cnblogs.com/sunziying/p/8994792.html 一.Oracle的逻辑结构 Oracle的逻辑结构是一种层次结构.主要由:表空间.段.区和数据 ...

  6. oracle存储大文本clob、blob

    oracle存储大文本clob.blob 1 package cn.itcast.web.oracle.util; 2 3 import java.sql.Connection; 4 import j ...

  7. php调用oracle存储

    //todo 调用oracle 存储$config = //数据库配置文件 里面包含 用户密码和host和端口以及dbname $conn = oci_connect($config['usernam ...

  8. Oracle存储函数,存储过程

    一.Oracle存储函数:存储的PL/SQL语法块,完成特定的功能.1.语法: 函数关键字: function (1)创建函数 CREATE [OR REPLACE] FUNCTION <fun ...

  9. Oracle 课程二之Oracle数据库逻辑结构

    完成本课程的学习后,您应该能够: •数据库总体的逻辑结构 •深入理解数据库最小存储单元block •理解行迁移和行链接 •理解高水位线 •Drop.truncate.delete区别   1.数据库的 ...

随机推荐

  1. LAMP架构三

    PHP相关配置 1.查找php配置文件/usr/local/php/bin/php -i或者phpinfo() [root@bogon admin]# /usr/local/php/bin/php - ...

  2. ML中Boosting和Bagging的比較

    说到ML中Boosting和Bagging,他们属于的是ML中的集成学习,集成学习法(Ensemble Learning) ①  将多个分类方法聚集在一起.以提高分类的准确率. (这些算法能够是不同的 ...

  3. atitit. 分销系统规划p8k

    atitit. 分销系统规划p8k 1. 商户平台管理 overview2 1.1. 分销业务管理2 1.2. 文案管理2 1.3. 订单管理3 1.4. 统计报表3 1.5. 财务结算3 1.6.  ...

  4. 已安装 SQL Server 2005 Express 工具。若要继续,请删除 SQL Server 2005 Express 工具

    数据库安装sql server2008R2时遇到. 安装sql server 2008 management,提示错误:Sql2005SsmsExpressFacet 检查是否安装了 SQL Serv ...

  5. 简述 Python 类中的 __init__、__new__、__call__ 方法

    任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建.初始化.使用.垃圾回收,不同的阶段由不同的方法(角色)负责执行. 定义一个类时,大家用得最多的就 ...

  6. c++11 thread (目前我使用的ZThread库)

    目前为止(2014-11-30),GCC其实已经基本上完全支持C++11的所有功能了,事实上从GCC4.7之后,就支持了-std=c++11选项,在4.7版本之前,也开始支持-std=c++0x的选项 ...

  7. C# MessageBox 消息对话框

    在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示.在C#中,MessageBox消息对话框位于System.Windows.For ...

  8. logback.xml

    <?xml version="1.0" encoding="UTF-8" ?> <configuration> <!-- 日志存放 ...

  9. Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装) [转]

    说明:       我是用root用户在终端登陆的,如果是非root用户,那在命令前需要加上"sudo",你懂的... 第一步:在Ubuntu下安装Postgresql       ...

  10. debian下为arm开发板创建基于debian或emdebian的根文件系统

    Debian系统本身包含对arm的支持,其包含的软件包最多,但是最终的文件系统要大一些. emdebian 是一个非常好用的嵌入式linux操作系统,其基于debian的特点对于熟悉debian系统的 ...