ORALCE逻辑存储结构
ORACLE逻辑存储结构
块: 数据块 他是最基础的逻辑存储单元,数据以行的形式存储到我么的数据块中
区 :多个块的集合 并且区组成了物理的数据文件
段 :(表 索引 物化视图 物化视图日志 大对象 大对象) 那么在括号中的每一个对象都是一个段。而区由组成了段[逻辑的方式] 一个段中包含多个数据文件
表空间 :表空间指的是段的集合 一个表空间中存在多个段的是 (小表空间) 但是有种特殊的表空间叫(大表空间) 比如说 BLOB CLOB BFILE.....这些都是大表空间中存储的数据,并且大表空间只能有一个文件。
BLOB 主要存视频 图片 。。。。。一般是不大于4G。
CLOB 主要是存文字、xml代码块等 。像我们博客大篇的文字都是用clob类型。
BFILE主要是是使用了 物理+数据库两种方式进行存储 物理的文件存在磁盘空间中 而 这个文件的路径 存储都数据库的表中。
我们现在存储大文件都是用redis进行存储,备份的用rman备份,但是我老师过备份现在都不用rman备份,都是用存储备份。
表、索引和段与表空间的对应于使用关系
我们在创建表和创建索引的过程中,实际上就是在建立一个段。而这个段他会根据你表中列的相关类型发生变化。比如说:
CREATE TABLE TAB_T (ID CHAR(18),NAME VARCHAR2(100),MEMBER CLOB,IMAGE BLOB);
根据分析我们可以得出,这里如果不看相关表中字段数据类型的话,实际上他只应该创建一个段,并且使用的是小表空间类型,但是这里有两个字段MEMBER和IMAGE使用的是大对象数据类型,所以要为这两个字段,单独创建一个大表空间,并且相关的类型有自己对应段。并且也要为这两个字段(member和image)创建独立的索引。这两个大对象的索引有是段结构,所以一个大对象创建后会创建出两个段来,一个是自身的大对象数据段,一个是大对象索引段。
如果这里我们要把ID这个字段变成主键的话,那么这个ID字段也要创建出一个对应的索引段。而这个索引段应该存储到小表空间类型中,他可以和TBA_T的这个表在一个表空间中,也可以不和这个表在一个表空间中,因为数据段尽量不要和索引段放在一起,放置IO争抢问题。
数据块和UNDO块之间的关系
当我们数据块中的一行数据发生UPDATE的时候,首先我们数据块ITL会去记录相关事务的事务编号,以及事务状态和事务产生的老数据保存的UNDO的块的信息,并且这些都是又UNDO段中的事务表同步给UNDO块的。
一个UNDO块只能被一个事务使用,但是一个事务可能使用多个UNDO块
行迁移
发生在update,当一个数块在做UPDATE操作的时候,无法容纳新数据(delete后 insert进来的),他会将数据写到一个新的数据块中,并且ROWID不发生任何改变依旧是一个。我们管这种情况叫做行迁移
行链接
当一个数据块在做INSERT操作的时候,无法容纳新数据时,他会将数据写到另一个数据块中,并且会把相关的数据指针指向到数据结尾(另一个块开头的位置)这样就会发生行链接,只有一个ROWID编号。
无论是行迁移还是行连接,都不会影响事务一致性,但是却会影响事务的IO.因为无形之中我们在读一行数据的时候,本来应该读一个块,结果变成了读两个块,甚至是多个块,而且这里大家要记住,不只是数据块会发生行迁移或者行连接,我们的UNDO块依旧会发生。
HWM(高水位线):当我们的段接近不可写状态,我们称之为高水位线,一般到80%时开始预警,90%严重警告,或直接导致段拒写。
UNDO的几种状态
FREE 代表UNDO表空间中有足够的空间来记录相关的事务。我们称之为FREE状态
commit前状态:
active状态 事务未提交的状态,我们称之为active状态,这个状态UNDO表空间的UNDO块是不允许被再使用的。
commit后状态:
inactive状态 事务过期激活状态,这种状态是事务提交后,UNDO块中的数据没有超过预设的retention时间,所以我门称之为inactive状态。这时候undo块中的数据依旧是不可以再次被使用的。
expired状态 事务提交后,并且过retention时间的UNDO数据,那么这个数据块可以被重新使用。
UNDO的重要参数指标:
UNDO表空间的位置:在我们的ORACLE数据库中,一个实例只能使用一个UNDO表空间。
UNDO的retenion时间:指的时事务提交后我们的undo数据可以保留的事件,一般是900秒
guarantee 保证所有的UNDO数据块中的数据都不过retention时间。
经典面试题:
UNDO表空间不释放出了啥事?
1 retention时间过长
2 事务并没有大量提交,依旧处在锁的状态
3 UNDO表空间开了自增,不停的有FREE空间给新生事务使用
UNDO表空间使用算法
UNDO表空间优先使用FREE空间
当FREE空间不够用的时候,开始使用EXPIRED状态的UNDO块
当EXPIRED状态的块也不够用的时候,他就要等待INACTIVE的UNDO块过retention时间,变成EXPIRED的UNDO块后接着使用
如果一直不提交,那么就一直没有INACTIVE,一直没有INACTIVE就一直没有expireed。(这个就和lru算法一样,循环利用)
ORALCE逻辑存储结构的更多相关文章
- oracle逻辑存储结构
oracle数据库管理系统有三个重要的概念:实例.数据库.数据库服务器.oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构.逻辑存储结构用于描绘Oracle内部组织和管理数据的方式,而物理 ...
- InnoDB的表类型,逻辑存储结构,物理存储结构
表类型 对比Oracle支持的各种表类型,InnoDB存储引擎表更像是Oracle中的索引组织表(index organized table).在InnoDB存储引擎表中,每张表都有个主键,如果在创建 ...
- InnoDB 逻辑存储结构
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/80 如果创建表时没有显示的定义主键,mysql会按如下方式创建主 ...
- MySQL InnoDB 逻辑存储结构
MySQL InnoDB 逻辑存储结构 从InnoDB存储引擎的逻辑结构看,所有数据都被逻辑地存放在一个空间内,称为表空间,而表空间由段(sengment).区(extent).页(page)组成.p ...
- MYSQL Innodb逻辑存储结构
转载于网络 这几天在读<MySQL技术内幕 InnoDB存储引擎>,对 Innodb逻辑存储结构有了些了解,顺便也记录一下: 从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放 ...
- InnoDB逻辑存储结构
从InnoDB存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称之为表空间(tablespace).表空间又由段(segment).区(extent).页(page)组成.页在一些文档中 ...
- InnoDB存储引擎表的逻辑存储结构
1.索引组织表: 在InnoDB存储引擎中,表都是依照主键顺序组织存放的.这样的存储方式的表称为索引组织表,在innodb存储引擎表中,每张表都有主键.假设创建的时候没有显式定义主键,则Inn ...
- Oracle 逻辑存储结构
一.总述 逻辑存储结构是 Oracle 数据库存储结构的核心内容,对 Oracle 数据库的所有操作都会涉及逻辑存储结构.逻辑存储结构是从逻辑的角度分析数据库的组成,是对数据存储结构在逻辑概念上的划分 ...
- 学习笔记:oracle学习一:oracle11g体系结构之体系结构概述和逻辑存储结构
目录 1.oracle 11g体系结构概述 1.1 三个重要概念 1.2 oracle数据库存储结构 2 逻辑存储结构 2.1 数据块(Data Blocks) 2.2 数据区(Extent) 2.3 ...
随机推荐
- Java并发编程系列-(9) JDK 8/9/10中的并发
9.1 CompletableFuture CompletableFuture是JDK 8中引入的工具类,实现了Future接口,对以往的FutureTask的功能进行了增强. 手动设置完成状态 Co ...
- 惊呆了!Java程序员最常犯的错竟然是这10个
和绝大多数的程序员一样,我也非常的宅.周末最奢侈的享受就是逛一逛技术型网站,比如说 programcreek,这个小网站上有一些非常有意思的主题.比如说:Java 程序员最常犯的错竟然是这 10 个, ...
- Python for Data Analysis 学习心得(四) - 数据清洗、接合
一.文字处理 之前在练习爬虫时,常常爬了一堆乱七八糟的字符下来,当时就有找网络上一些清洗数据的方式,这边pandas也有提供一些,可以参考使用看看.下面为两个比较常见的指令,往往会搭配使用. spli ...
- 配置ca服务器和http,mail加密
一·CA介绍 certificate authority 数字证书授权中心 被通信双方信任的.独立的第三方机构 负责证书颁发.验证.撤销等管理 数字证书 经证书授权中心数字签名的包含公开密钥拥有者 ...
- 从头学pytorch(十五):AlexNet
AlexNet AlexNet是2012年提出的一个模型,并且赢得了ImageNet图像识别挑战赛的冠军.首次证明了由计算机自动学习到的特征可以超越手工设计的特征,对计算机视觉的研究有着极其重要的意义 ...
- 什么是 Google Play服务
Google Play服务用于更新Google应用和Google Play提供的其他应用. 此组件可提供多种核心功能,例如对您的Google服务进行身份验证.同步联系人信息.提供最新的用户隐私设置,以 ...
- 【Think In Java笔记】第1章 对象导论
1. 对象导论 OOP 面向对象编程 C.Basic等语言所在的抽象仍要求在解决问题时基于计算机的解决,而不是基于所解决问题的结构来考虑. 要建立起问题空间的元素和解空间的对象之间一一映射的关系 万物 ...
- hdfs/hbase 程序利用Kerberos认证超过ticket_lifetime期限后异常
问题描述 业务需要一个长期运行的程序,将上传的文件存放至HDFS,程序启动后,刚开始一切正常,执行一段时间(一般是一天,有的现场是三天),就会出现认证错误,用的JDK是1.8,hadoop-clien ...
- 洛谷 P2746 [USACO5.3]校园网Network of Schools schlnet Tarjan强连通分量
schlnet ★★★ 输入文件:schlnet.in 输出文件:schlnet.out 简单对比时间限制:1 s 内存限制:128 MB 描述 一些学校连入一个电脑网络.那些学校已订 ...
- 使用远程接口库进一步扩展Robot Framework的测试能力
引言: Robot Framework的四层结构已经极大的提高了它的扩展性.我们可以使用它丰富的扩展库来完成大部分测试工作.可是碰到下面两种情况,仅靠四层结构就不好使了: 1.有些复杂的测试可能跨越多 ...