深入理解下oracle 11g block组成

    深层次说,oracle数据库的最少组成单位应该是块,一般默认情况下,oracle数据库的块大小是8kb,其中存储着我们平常所需的数据。我们在使用过程中,难免会疑问道:“oracle数据块中到底是怎样组成的,平常说的块头是怎样的?”。今天我们就深入去探究下oracle数据块信息,了解其组成格式。

一、获取块

1.1,获取块信息

    我们查看我们用户表的段区信息,根据区的信息,去获取我们需要的数据块。我本地使用表T_OBJ,我们查询信息如下:

SQL> select name from v$datafile where file#=5;NAME
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/oracle/app/data/ORCL/DT_TPC_DAT.DBF

    我们表T_OBJ的段从5号数据库文件128号块开始,但是因为128块是段头,故我们选取第二个区136号块查看。

1.2,块获取

1.2.1,dd方式

     我们可以通过操作系统dd命令去获取一个数据块,并结合od命令进行具体数据查看:

[root@oracle11g app]# dd if=/oracle/app/data/ORCL/DT_TPC_DAT.DBF bs=8196 skip=135 count=1 | od -xv > 136.out
1+0 records in
1+0 records out
8196 bytes (8.2 kB) copied, 8.6958e-05 s, 94.3 MB/s
[root@oracle11g app]# 

1.2.2,dump方式

    我们通过数据库的dump命令进行具体数据块的陈列:

SQL> oradebug setmypid
Statement processed.
SQL> alter system dump datafile 5 block 136;System altered.SQL> oradebug tracefile_name
/oracle/app/oracle/diag/rdbms/orcl/ORCL/trace/ORCL_ora_10811.trc

1.2.3,bbed方式 

    我们也可以通过bbed的方式,查看具体的块的数据信息:

二、块解析

    我们通过bbed及打印的日志信息,我们可以看出,一个数据块包含:块头,数据区,块尾。其中块头最复杂,包含:块基本信息,事务相关信息,数据存储信息,空闲空间信息等。

2.1,块头基本信息

  • Typ:                         块类型
  • Fmt:                         块格式,一般值都是0x02
  • Filler:                        暂时没用
  • RDBA:                      数据块的相对地址
  • SCNBase:                SCN的基数
  • SCNWrap:                SCN的高16位
  • Seq:                          顺序号,用于记录同一时间修改的排序号
  • Flg:                           也是用来区分块的一个标志,例如0x01代表新块
  • ChkVal:                     块的检查值
  • Tail:                           用来验证块的一致性的值

    下面陈列下块的具体分类:

  • 0x01:    undo段头
  • 0x02:    undo数据块
  • 0x03:    保存undo段头
  • 0x04:    保存undo数据块
  • 0x05:    数据段头(临时数据段头,索引数据段头,数据数据段头。。)
  • 0x06:    KTB-managed数据块
  • 0x07:    临时表数据块
  • 0x08:    排序key
  • 0x09:    排序run
  • 0x0a:    段空闲链表块
  • 0x0b:    数据文件头 

    下面陈列Flg的对应类型:

  •  0x01:    新块,基本是无数据
  •  0x02:    延迟日志块
  •  0x04:    检查点值已存储
  •  0x08:    临时块

 2.2,块头事务信息

    我们看完块头记录的块的基本信息,接着我们看看用来记录事务信息的部分:

  • rdba:          数据块相对地址
  • seg/obj:      段或对象id
  • csc:            块清理的scn号
  • itc:              事务槽数
  • flg:              0代表在空闲链表上,其他不同值不同代表
  • typ:             1代表数据,2代表索引
  • fsl:               ITL TX空闲槽
  • fnx:              空闲链表下一个块的相对地址
  • itl:                事务槽号
  • xid:              事务id
  • uba:             undo地址
  • flg:               事务标志,例如:C代表已提交。
  • lck:               代表事务锁住的行数
  • scn/fsc:         scn代表事务提交scn号,fsc代表空闲空间

2.3,块头数据信息

    接下来记录的是具体的数据的位置信息,其中有:包含表的个数,数据行数等:

  • tsiz:      数据区大小
  • hsiz:     数据头大小
  • pbl:       指向该块的指针地址
  • flag:      
  • ntab:     块中包含的表的个数,一般都是为1,在聚簇中存在多表
  • nrow:    数据行数
  • frre:       空闲行索要条目
  • fsbo:      空闲空间开始偏移地址
  • fseo:      空闲空间结束便宜地址
  • avsp:     可用空间
  • tosp:      事务全部提交可用空间 

2.4,数据行信息

    接下来我们就可以看到数据块中存放的数据行,里面存放信息如下:

tab:     表号

row:    第几行

tl:        行大小

fb:       标志位

lb:       锁标记位

cc:      总列数(表列)

2.5,tail信息

    tail为验证数据块一致性的信息,我们就通过bbed打印其相应信息:

BBED> p tailchk    
ub4 tailchk                                 @8188     0x7060064fBBED> 
BBED> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/61666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万有引力定律和库仑定律:自然的对称诗篇

万有引力定律和库仑定律:自然的对称诗篇 在宇宙深邃的知识长河中,万有引力定律和库仑定律恰似两颗璀璨的明珠,闪耀着人类智慧与自然奥秘的光辉。 十七世纪,牛顿在对天体运行的深邃思索中,拨开重重迷雾,发现…

win10局域网加密共享设置

1、创建共享账户 我的电脑右键选择管理 选择本地用户和组 -> 用户 双击用户 在空白区域右键,新建用户 然后创建用户 点击创建后 2、设置网络 右下角网络右键

leetcode 50个简单和中等难度的题

简单难度题目(25个) ‌两数之和 (Two Sum)‌‌有效的括号 (Valid Parentheses)‌‌罗马数字转整数 (Roman to Integer)‌‌最长公共前缀 (Longest Common Prefix)‌‌合并两个有序链表 (Merge Two Sorted Lists)‌‌移除链表元素 (Remove Linked List E…

iic协议

IIC(Inter-Integrated Circuit)协议,也被称为I2C协议,是一种由荷兰的PHILIPS公司(现为NXP半导体公司)开发的简单、高效的通信协议。以下是关于IIC协议的详细介绍: 一、IIC协议概述 定义&#…

.NET6 WebApi第1讲:VSCode开发.NET项目、区别.NET5框架【两个框架启动流程详解】

一、使用VSCode开发.NET项目 1、创建文件夹,使用VSCode打开 2、安装扩展工具 1>C# 2>安装NuGet包管理工具,外部dll包依靠它来加载 法1》:NuGet Gallery,注意要启动科学的工具 法2》NuGet Package Manager GUl&#xff0c…

准备阶段 Profiler性能分析工具的使用(一)

Unity 性能分析器 (Unity Profiler) 性能分析器记录应用程序性能的多个方面并显示相关信息。使用此信息可以做出有关应用程序中可能需要优化的事项的明智决策,并确认所做的优化是否产生预期结果。 默认情况下,性能分析器记录并保留游戏的最后 300 帧&a…

【LeetCode面试150】——219存在重复元素

博客昵称:沈小农学编程 作者简介:一名在读硕士,定期更新相关算法面试题,欢迎关注小弟! PS:哈喽!各位CSDN的uu们,我是你的小弟沈小农,希望我的文章能帮助到你。欢迎大家在…

运维面试题.云计算面试题之四.K8S

常见的k8s运维面试题 1、简述ETCD及其特点? etcd是一个用于配置共享和服务发现的键值存储系统,能够为整个分布式集群存储关键数据,协助集群正常运转 服务端将配置信息存储在etcd中,客户端从etcd中得到配置信息,etcd监听配置信息的变化,发现配置变化通知到客户端 特点 - 安…

【强化学习的数学原理】第03课-贝尔曼最优公式-笔记

学习资料:bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接:强化学习的数学原理 西湖大学 赵世钰 文章目录 一、例子:如何改进策略?二、最优策略和公式推导三、公式求解以及最优性四、最优策略的有趣性质五、本节课…

24小时自动监控,自动录制直播蓝光视频!支持抖音等热门直播软件

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 工具特点📒📝 使用🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 对于许多直播爱好者和内容创作者而言,错过心爱的直播或难以搜集视频素材始终是一个难题。今天,给大家分享的这款工具可以轻松解决这个问题,它拥有…

【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感

本文将介绍如何使用LSTM训练一个能够创作诗歌的模型。为了训练出效果优秀的模型,我整理了来自网络的4万首诗歌数据集。我们的模型可以直接使用预先训练好的参数,这意味着您无需从头开始训练,即可在自己的电脑上体验AI作诗的乐趣。我已经为您准…

【Swift】运算符

文章目录 术语赋值运算符算数运算符基本四则算术运算符求余运算符一元负号运算符一元正号运算符 比较运算符三元运算符空合运算符区间运算符闭区间运算符半开区间运算符单侧区间运算符 逻辑运算符逻辑非运算符逻辑与运算符逻辑或运算符逻辑运算符组合计算 位运算符运算符优先级…

微信小程序技术架构图

一、视图层1.WXML&#xff08;WeiXin Markup Language&#xff09; 这是微信小程序的标记语言&#xff0c;类似于 HTML。它用于构建小程序的页面结构。例如&#xff0c;通过标签来定义各种视图元素&#xff0c;如<view>&#xff08;类似于 HTML 中的<div>&#xff…

【AI最前线】DP双像素sensor相关的AI算法全集:深度估计、图像去模糊去雨去雾恢复、图像重建、自动对焦

Dual Pixel 简介 双像素是成像系统的感光元器件中单帧同时生成的图像&#xff1a;通过双像素可以实现&#xff1a;深度估计、图像去模糊去雨去雾恢复、图像重建 成像原理来源如上&#xff0c;也有遮罩等方式的pd生成&#xff0c;如图双像素视图可以看到光圈的不同一半&#x…

#Verilog HDL# Verilog中的UDP原语

目录 一 UDP符号 1.1 组合UDP 1.2 时序UDP 1.2.1 电平UDP 1.2.2 边沿UDP 标准的Verilog原语,如nand和not,有时可能不足以或不便用于表示复杂逻辑。为了建模组合逻辑或时序逻辑,可以定义称为用户定义原语(UDP)的新原语元素。 所有UDP都有且仅有一个输出,该输出可以是…

Python 版本的 2024详细代码

2048游戏的Python实现 概述&#xff1a; 2048是一款流行的单人益智游戏&#xff0c;玩家通过滑动数字瓷砖来合并相同的数字&#xff0c;目标是合成2048这个数字。本文将介绍如何使用Python和Pygame库实现2048游戏的基本功能&#xff0c;包括游戏逻辑、界面绘制和用户交互。 主…

socket连接封装

效果&#xff1a; class websocketMessage {constructor(params) {this.params params; // 传入的参数this.socket null;this.lockReconnect false; // 重连的锁this.socketTimer null; // 心跳this.lockTimer null; // 重连this.timeout 3000; // 发送消息this.callbac…

docker compose的安装和使用

1. Docker Compose 简介 Docker Compose 是一个工具&#xff0c;用于定义和运行多容器的 Docker 应用。通过编写一个 docker-compose.yml 文件&#xff0c;可以一次性启动所有容器&#xff0c;并且方便管理容器之间的依赖。 2. 安装 Docker Compose 前提条件 确保已安装 Do…

银河麒麟v10 x86架构二进制方式kubeadm+docker+cri-docker搭建k8s集群(证书有效期100年) —— 筑梦之路

环境说明 master&#xff1a;192.168.100.100 node: 192.168.100.101 kubeadm 1.31.2 &#xff08;自编译二进制文件&#xff0c;证书有效期100年&#xff09; 银河麒麟v10 sp2 x86架构 内核版本&#xff1a;5.4.x 编译安装 cgroup v2启用 docker版本&#xff1a;27.x …

大语言模型---RewardBench 介绍;RewardBench 的主要功能;适用场景

文章目录 1. RewardBench 介绍2. RewardBench 的主要功能3. 适用场景 1. RewardBench 介绍 RewardBench: Evaluating Reward Models是一个专门用于评估 Reward Models&#xff08;奖励模型&#xff09; 的公开平台&#xff0c;旨在衡量模型在多种任务上的性能&#xff0c;包括…