学习笔记: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- ...
随机推荐
- 斐波那契数列 矩阵乘法优化DP
斐波那契数列 矩阵乘法优化DP 求\(f(n) \%1000000007\),\(n\le 10^{18}\) 矩阵乘法:\(i\times k\)的矩阵\(A\)乘\(k\times j\)的矩 ...
- 如何用Xshell导出文件到桌面本地
在软件开发中,会经常用到登录到Linux服务器,查看相关日志,同时也会远程取出文件到本地环境, 在没有xftp客户端的情况下,如何直接使用xshell软件直接下载文件到本地呢 下载文件: 使用sz命令 ...
- 第二次作业社团UML图
第二次作业 UML图 用例图: 时序图: 申请加入社团 学生可以在页面投递社团加入申请,送交给社团管理员审批 社团活动审批 团委通过社团提交胡活动进行审批 评价活动 社团活动举行完,会有相应的团委和学 ...
- PHP 之去除代码中的注释
测试文件代码如下: <?php /** * Created by PhpStorm. * User: Yang * Date: 2019/10/16 * Time: 10:25 */ // 计算 ...
- LeetCode 第 151 场周赛
一.查询无效交易(LeetCode-1169) 1.1 题目描述 1.2 解题思路 根据,它和另一个城市中同名的另一笔交易相隔不超过 60 分钟(包含 60 分钟整) 得出 城市A和其他城市任何一笔交 ...
- Hive和Hadoop
我最近研究了hive的相关技术,有点心得,这里和大家分享下. 首先我们要知道hive到底是做什么的.下面这几段文字很好的描述了hive的特性: 1.hive是基于Hadoop的一个数据仓库工具,可以将 ...
- SpringBoot-自动装配对象及源码ImportSelector分析
SpringBoot框架已经很流行了,笔者做项目也一直在用,使用久了,越来越觉得有必要理解SpringBoot框架中的一些原理了,目前的面试几乎都会用问到底层原理.我们在使用过程中基本上是搭建有一个框 ...
- Hive SQL NVL 相关函数
1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2)含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值. NVL(exp ...
- React拾遗(下)
reconciliation(协调算法) react用于更新DOM的算法.基于两点假设,实现了一个启发的O(n)算法: 两个不同类型的元素将产生不同的树. 通过渲染器附带key属性,开发者可以示意哪些 ...
- 29 Flutter Dialog AlertDialog 、SimpleDialog、showModalBottomSheet、showToast
pubspec.yaml fluttertoast: ^ Dialog.dart import 'package:flutter/material.dart'; import 'package:flu ...