Oracle数据块原理深入剖析

数据块(Oracle Data Blocks),本文简称为“块”,是Oracle最小的存储单位,Oracle数据存放在“块”中。一个块占用一定的磁盘空间。特别注意的是,这里的“块 ”是Oracle的“数据块”,不是操作系统的“块”。

Oracle每次请 求数据的时候,都是以块为单位。也就是说,Oracle每次请求的数据是块的整数倍。如果Oracle请求的数据量不到一块,Oracle也会读取整个块。所以说,“块”是Oracle读写数据的最小单位或 者最基本的单位。

块的标准大小由初始化参数DB_BLOCK_SIZE指定。具有标准大小的块称为标准块(Standard Block)。块的大小和标准块的大小不同的块叫非标准块(Nonstandard Block)。同一数据库中,Oracle9i及以上版本支持同一数据库中同时使用标准块和非标准块。Oracle允许指定5种非标准块(Nonstandard Block)。

操作系统每次执行I/O的时候,是以操作系统的块为单位;Oracle每次执行I/O的时候,都是以Oracle的块为单位。

Oracle数据块大小一般是操作系统块的整数倍。

数据块的格式(Data Block Format)

块中存放表的数据和索引的数据,无论存放哪种类 型的数据,块的格式都是相同的,块由块头(header/Common and Variable),表目录(Table Directory ),行目录(Row Directory),空余空间(Free Space)和行数据(Row Data)五部分组成,

如下图所示。 

时间: 2024-10-03 19:28:19

Oracle数据块原理深入剖析的相关文章

Oracle数据块实现原理深入解读_oracle

下午在学习oracle 10g r2 concepts 在这留一笔. Oracle对数据库数据文件(datafile)中的存储空间进行管理的单位是数据块(data block).数据块是数据库中最小的(逻辑)数据单位.与数据块对应的,所有数据在操作系统级的最小物理存储单位是字节(byte).每种操作系统都有一个被称为块容量(block size)的参数.Oracle每次获取数据时,总是访问整数个(Oracle)数据块,而不是按照操作系统块的容量访问数据. 数据库中标准的数据块(data bloc

【体系结构】Oracle数据块详解

Oracle数据块详解 操作系统块是操作系统读写的最小操作单元,也是操作系统文件的属性之一.当创建一个Oracle数据库时,选择一个基于操作系统块的整数倍大小作为Oracle数据库块的大小.Oracle数据库读写操作则是以Oracle块为最小单位,而非操作系统块. 数据库块也称逻辑块或Oracle块,它对应磁盘上一个或多个物理块,它的大小由初始化参数DB_BLOCK_SIZE决定,可以定义数据块为2K.4K.8K.16K.32K甚至更大,默认Oracle块大小是8K.若一旦设置了Oracle数据

[20161123]oracle数据块类型.txt

[20161123]oracle数据块类型.txt --oracle 数据块有许多类型,自己平时很少关注与记忆,自己做一个归纳总结: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- ------------------------------------------------------

Oracle数据块恢复(dbv、BMR)

Oracle数据块恢复(dbv.BMR) 物理坏块和逻辑坏块 Oracle数据文件的坏块可以分为物理坏块和逻辑坏块.物理坏块指的是块格式本身已经损坏,块内的数据没有任何意义.而逻辑坏块,指的是块内的数据在逻辑上存在问题,比如说索引块的索引值没有按从小到大排列导致的逻辑坏块.物理坏块一般是由于内存问题.OS问题.I/O子系统问题或硬件引起的,逻辑坏块一般是有Oracle bug等原因引起的. 各种各样的块损坏通常是通过Oracle的ORA-1578错误报告出来的,详细的损坏描述会在告警日志中打印出

Oracle数据块损坏恢复总结

Oracle数据块损坏恢复总结 在恢复前使用DBV命令检查数据文件是否存在坏块 dbv file=d:\oracle\oradata\mydb\RONLY.DBF blocksize=8192 查看数据坏块所在数据文件号及块号可以对表进行一次全表扫描,如: select count(*) from tablename; 1.    没有备份的情况下: 1.1.使用exp/imp恢复   在这种情况下肯定会造成数据的丢失,在这种情况下应采取将数据导出然后重建表再进行导入的方法,来尽量恢复损坏数据块

oracle数据块如何进行一致性检查

什么是数据块一致性? 每一个数据块头部都有一个"校验和"字段 当数据块被写回磁盘前,Oracle会重新计算这个校验和 并记录到这个字段,最终写回磁盘 下次数据块被读入内存时,Oracle会重新计算数据块的校验和 并与校验和字段中的值相比较 如果有差异,Oracle就会抛出ORA-1578 也就是,整个校验过程: 写回时,计算并保存 读入时,计算并比较 通过校验和字段进行检查叫物理一致性检查,其侧重于硬件故障,并不关心内容正确与否 而逻辑一致性检查便是接手这任务,如:记录和索引是否对应:

简介ORACLE数据块转储及RDBA的转换

很多时候我们在进行进一步研究时需要转储(dump)Oracle的数据块,以研究其内容,Oracle提供了很好的方式,我们通过以下例子简单说明一下: [oracle@jumper udump]$ sqlplus "/ as sysdba" SQL*Plus: Release 9.2.0.3.0 - Production on Tue Aug 31 17:01:27 2004 Copyright (c) 1982, 2002, Oracle Corporation.  All rights

oracle 01578 数据块损坏 怎么忽略

问题描述 oracle 01578 数据块损坏 怎么忽略 windows 2008 oracle 11 非归档模式 数据库启动时没有错误提示.写入数据时会提示01578,这个数据文件在一个大的空间里(有很多数据文件).我把它offline drop 后,查询它的状态是available.再写入数据时会提示01110错误,用recover 不成功,因为没有归档的日志. 请问:我能否在offline前把这个坏块的错误忽略掉?或者我在offline后不让数据库再去访问这个数据文件呢? 解决方案 在 e

EXT4文件系统上ORACLE数据文件误删除的对应恢复方法

如果EXT4文件系统上的ORACLE数据文件被误删除了,那么一般可以考虑下面2种恢复方式: 使用testdisk工具从文件系统角度恢复数据文件 使用prmscan工具从oracle 数据块角度恢复数据文件 这里我们介绍使用testdisk的恢复ext4上数据文件的步骤: 删除users数据文件   [oracle@dbdao01 ~]$ df -h Filesystem            Size  Used Avail Use% Mounted on /dev/mapper/VolGrou