学习笔记:oracle学习一:oracle11g体系结构之体系结构概述和逻辑存储结构
1、oracle 11g体系结构概述
1.1 三个重要概念
实例:Instance-一组oracle后台进程以及在服务器中分配的共享内存区域;
数据库:Database-由基于磁盘的数据文件、控制文件、日志文件、参数文件和归档文件等组成的物理文件集合
数据库服务器:Database Server-是指管理数据库的各种工具(如:SQLPLUS、OEM等)和实例以及数据库三个部分
三者之间的关系:实例用于管理和控制数据库,数据库为实例提供数据。一个数据库可以被多个实例加载和打开;而一个实例在其生存期内只能装载和打开一个数据库
启动数据库实际上是在服务器内存中创建一个oracle实例,然后使用这个实例来访问和控制磁盘中的数据文件
oracle数据库的基本体系结构如下所示

1.2 oracle数据库存储结构
数据库的主要功能就是存储数据,存储数据的方式通常称为存储结构,Oracle数据库的存储结构分为逻辑存储结构和物理存储结构。
逻辑存储结构:用于描述oracle内部组织和管理数据的方式
物理存储结构:用于指示oracle在操作系统中的物理文件组成情况
2 逻辑存储结构
逻辑存储结构是从逻辑的角度缝隙数据库的构成,是对数据存储结构在逻辑概念上的划分。
oracle逻辑存储结构是一种层次结构,主要由表空间、段、区间和数据快等概念组成,Oracle的逻辑存储结构中所包含的多个结构对象从数据块到表空形成了不同层次的粒度关系,如下所示:

2.1 数据块(Data Blocks)
数据块是oracle逻辑存储结构中的最小逻辑单位,俄式执行数据库输入、输出操作额最小存储单位,通常Oracle数据块是操作系统块的整数倍,如果操作系统快的大小为2048b,并且oracle数据块的大小为8092b,则表示oracle数据块由4个操作系统块组成。
oracle数据库的大小由初始化参数中的DB_BLOCK_SIZE决定,打开sqlplus,连接数据库。
col name format a30
col value format a30
select name,value from v$parameter where name = 'db_block_size'
如下所示:

数据块中可以存放表数据、索引数据和簇数据,无论存放那种数据,其结构都是相同的。
数据块组成如下:
| 组成部分 | 说明 |
|---|---|
| 块头 | 存放数据块的基本信息,如块的物理地址,块所属的段的类型 |
| 表目录 | 存放表的相关信息。如果数据块中存储的数据是表数据,则标目钟中存储有关这些表的相关信息 |
| 行目录 | 如果块中有行数据存在,则这些行的信息被记录在行目录中,这些信息包括行的地址等 |
| 空余空间 | 空余空间是一个块中未使用的区域,这片区域用于新行的插入和已经存在的行的更新 |
| 行数据 | 用于存放表数据和索引数据的地方,这部分空间已被数据行所占用(如表中若干行数据记录) |
通常把块头、表目录、行目录这三部分合起来称作头部信息区,头部信息区不存放数据,它存放整个块的引导信息。
2.2 数据区(Extent)
数据区(也可以成为数据扩展区)是由一组连续的oracle数据块所构成的oracle存储结构,一个或多个数据块组成一个数据区,一个或多个数据区再组成一个段(segment)。当一个段中的所有空间被使用完以后,Oracle系统将自动为该段分配一个新的数据区。数据区是oracle存储分配的最小单位,oracle就是以数据区为单位进行存储空间的扩展。一个oracle对象至少包含一个数据区
2.3 段(segment)
段是由一个或者多个数据区组成,为特定的数据对象(数据、索引、回滚等)分配一系列的数据区。段内包含的数据区可以不连续,并且可以跨越多个文件。数据段的大小随着表中数据量的增大而增长,数据段的增大过程是通过向其添加新的数据区来实现的。oracle数据库通常有以下4个类型的段:
| 类型 | 说明 |
|---|---|
| 数据段 | 保存表中的数据记录,当创建一个表时,系统自动创建一个以该表名命名的数据段 |
| 索引段 | 包含了用于提高系统性能的索引 |
| 回滚段 | 回滚段也可称作撤销段,保存了回滚条目,oracle将修改前的机制保存在回滚条目中 |
| 临时段 | 当执行船舰索引、查询等操作时,Oracle可能会使用一些临时存储空间,用于暂时性地保存解析过的查询语句以及在排序过程中产生的临时数据。 |
2.4 表空间(TableSpace)
oracle使用表空间将相关的逻辑结构(如段、数据区等)组合在一起,表空间是数据库最大的逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象(segment),任何数据对象在创建时都要指定存储在某个表空间中。
表空间(属逻辑存储结构)和数据文件(属物理存储结构)相对应,一个表空间由一个或多个数据文件组成,一个数据文件只属于一个表空间。每个数据库至少有一个表空间(即system表空间),表空间的大小等于所有从属于它的数据文件大小的总和。
在创建数据时,系统会自动船舰多个默认的表空间,这些表空间除了用于管理用户数据的表空间之外,还包括用于管理oracle系统内部数据(如数据字典)的表空间:
2.4.1 system表空间。
系统表空间,用于存放oracle系统内部表和数据字典的数据,如表名、列名、用户名等。
例:通过dict查看数据库中数据字典的信息:
col table_name for a30
col comments for a30
select * from dict;
例:通过v$fixed_view_definition查看数据库中内部信息表的信息
col view_name for a30
col view_definition for a30
select * from v$fixed_view_definition;
2.4.2 sysaux表空间
sysaux表空间是oracle 11g新增加的表空间,作为system表空间的辅助表空间,降低system表空间的负荷,主要存储数据字典意外的其他数据对象。
2.4.3 UODO表空间。
UODO表空间-撤销表空间,用于存放撤销信息的表空间。当用户对数据表进行修改操作(包括插入、更新、删除等操作)时,Oracle系统自动使用撤销表空间来临时存放修改前的旧数据。当所作的修改操作完成并提交命令后,Oracle根据系统设置的保留时间来决定合适释放掉撤销表空间的部分空间/
2.4.4 USERS表空间。
用户表空间,是ORACLE建议用户使用的表空间
除了oracle系统默认创建的表空间外,用户可以根据应用系统的实际情况以及索要存放的对象类型创建多个自定义表空间。
学习笔记:oracle学习一:oracle11g体系结构之体系结构概述和逻辑存储结构的更多相关文章
- oracle基本语句(第五章、数据库逻辑存储结构管理)
1.使用SYS用户以SYSDBA身份登录到SQL Plus,使用视图V$TABLESPACE查看表空间信息 SELECT * FROM V$TABLESPACE; 2.查看视图DBA_TABLESPA ...
- 20155234 2016-2017-2第十周《Java学习笔记》学习总结
20155234第十周<Java学习笔记>学习总结 教材学习内容总结 网络编程 在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定 ...
- #学习笔记#e2e学习使用(一)
本文仅限于记录本人学习的过程,以及怎么踩的坑,是如何解决的.逻辑肯定是混乱的,有用之处会抽出共通另行发帖. 最终目标:要运用于Vue项目中,进行功能测试甚至自动化测试. 一.e2e概念 理解:end ...
- java JDK8 学习笔记——助教学习博客汇总
java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Jav ...
- python3.4学习笔记(七) 学习网站博客推荐
python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...
- 20155234 2610-2017-2第九周《Java学习笔记》学习总结
20155234第九周<Java学习笔记>学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC(Ja ...
- #学习笔记#e2e学习使用(二)
前言: <#学习笔记#e2e学习使用(一)>主要记录了Vue项目的创建到e2e环境的搭建,以及期间遇到的各种问题和解决方法.本文建立在基础测试环境搭建完毕能正确运行的情况下,编写测试代码, ...
- mybatis学习笔记之学习目录(1)
mybatis学习笔记之学习结构(1) 学习结构: 1.mybatis开发方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发 ...
- Vue学习笔记-rest_framework_jwt 学习
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
随机推荐
- html5文件夹上传源码
前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...
- 解决Navicat无法连接到centos上的MySQL,但命令行可以,修改权限,MySQL密码权限受限:ERROR 1820 (HY000) ERROR 1819 (HY000)
问题分析 查看MySQL文档发现5.7版本后加入了对用户密码严格的管理规范,具体设置字段如下: validate_password_dictionary_file #插件用于验证密码强度的字典文件路径 ...
- js的新生代垃圾回收
推荐阅读:https://www.cnblogs.com/chengxs/p/10919311.html 在进行老生代的标记清除法回收以前,还会有一个新生代的垃圾回收算法执行. 新生代和老生代 所谓新 ...
- JAVA爬虫对font-face字体反爬虫解密
1.参考博客 https://www.jianshu.com/p/9975de57b0ce https://blog.csdn.net/litang199612/a ...
- 20191024-6 Alpha发布用户使用报告
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9863 组名:胜利点 组长:贺敬文 组员:彭思雨 杨萍 王志文 位军 ...
- 如何用Deepin-wine安装运行win32的程序
创建容器 容器就是win32程序运行的环境,可以理解为一个极小的windows,在Linux下面实际对应一个文件目录,如QQ对应的容器目录是~/.deepinwine/Deepin-QQ. 创建容器最 ...
- arcgis python 不知道一个工具怎么用
完整的工具帮助信息 import arcpy print(arcpy.Usage("Buffer_analysis")) print(arcpy.Usage("MakeF ...
- 如何在Windows Server 2008服务器中把Tomcat启动程序添加到服务中
转自:https://blog.51cto.com/zdytesting/2314093 tomcat所在的bin目录: 添加服务: service install service_name 移除服务 ...
- WindowsForm客户端自动更新逻辑
启动客户端的时候,单独开一个线程,该线程主要是判断指定服务器上的更新包和本地使用的客户端是否一致,是否需要更新,不需要更新,则退出,需要更新则从服务端的下载更新包,然后提示用户是否更新,点击更新,启动 ...
- How to transform the day time images to night time ? A series of paper review and some thinkings about this point.
How to transform the day time images to night time ? A series of paper review and some thinkings ab ...