解析Oracle文件头内容

保存在Oracle数据文件头中的信息很丰富,通常只要查询DATAFILE_HEADER视图就可以获得数据文件头中的信息。但其在数据文件头中的具体位置,Oracle一直未公开过。所幸的是DBA们对数据文件头的研究孜孜不倦,其研究成果在网上也是随处可见。虽然这部分信息在数据库日常运维过程中几乎不会用到。但在灾难挽救中,如果掌握了这部分信息,往往能够让数据库起死回生。本节根据笔者这些年的灾难挽救经验,着重介绍了保存在数据文件头中和灾难挽救相关的知识点,希望读者能够好好掌握,多做实验。以下中的DUMP信息来自Oracle 10.2.0.5 for Linux。不同的数据库版本和操作系统,标记位的位置可能会不同。
表6-2 数据文件头中的标记位及含义
标记位 在数据文件头中的位置 含义
ub1 type_kcbh @0 块类型。0x0b表示数据文件头的块类型,0x06表示数据块类型
ub1 frmt_kcbh @1 数据块大小为2kB时为0x62,4kB时为0x82,8kB时为0xa2,16kB时为0xc2。Oracle 8i-9i都是0x02
ub4 rdba_kcbh @4 数据文件头的DBA地址
ub4 bas_kcbh @8 数据块的SCN低4字节值,在数据文件头中为空
ub2 wrp_kcbh @12 数据块的SCN高2字节值,在数据文件头中为空
ub1 seq_kcbh @14 表示数据块在同一个SCN中的变化次数。
0xff值表示Oracle将其标记为坏块。在某些故障处理过程中我们需将其修改为0x01值
ub1 flg_kcbh @15 数据块的CHECKSUM值,一般为0x04值。表示该计算值已经保存在数据块中。0x02值表示该块为延迟块清理。0x06表示是以上两种情况的组合。0x01值表示该块为原始数据块。在某些故障处理过程中我们需将其修改为0x04值
ub2 chkval_kcbh @16 数据块的校验值,编辑数据块之后必须要用bbed工具命令sum apply重新计算该校验值
ub4 kccfhdbi @28 数据库的DBID值,一般建议用nid工具修改,由于DBID还存储于控制文件和日志文件中,所以修改DBID之后需要重建控制文件并用resetlogs选项打开数据库
ub4 kccfhcsq @40 控制文件的sequence,在备份恢复中可能需修改该值
ub4 kccfhfsz @44 数据文件的大小,该值和保存在操作系统头中的数据文件大小一致,其值不包含操作系统头
s_blkz kccfhbsz @48 数据文件的块大小
ub2 kccfhfno @52 数据文件号
ub4 kscnbas @100 数据文件的CREATION SCN低4字节值
ub2 kscnwrp @104 数据文件的CREATION SCN高2字节值
ub4 kcvfhrlc @112 数据文件的RESETLOGS COUNT
ub4 kscnbas @116 数据文件的RESETLOGS SCN低4字节值
ub2 kscnwrp @120 数据文件的RESETLOGS SCN高2字节值,在某些情况下我们需要用bbed修改数据文件的RESETLOGS COUNT和RESETLOGS CHANGE,以使它们和其他数据文件保持一致
ub4 kscnbas @128 数据文件的BACKUP SCN的低4字节值
ub2 kscnwrp @132 数据文件的BACKUP SCN的高2字节值,和V$BACKUP视图中CHANGE#字段保持一致
ub2 kcvfhsta @138 FUZZY标记,0x0004表示为YES,即数据文件中的数据块SCN有可能大于数据文件头SCN。0x0000表示fuzzy为NO,即数据库正常关闭或者改数据文件所在表空间处于read only状态。当数据库无法OPEN时,有时需要将其修改为0x0000,system数据文件为0x2000
ub4 kcvfhcpc @140 数据文件的CHECKPOINT COUNT。如果数据库无法OPEN,有时需要使其和其他数据文件保持一致
ub4 kcvfhccc @148 控制文件的 CHECKPOINT COUNT。如果数据库无法OPEN或处理恢复故障,有时需要使其和其他数据文件保持一致。
ub4 kcvfhprc @416 数据文件的PREV RESETLOGS COUNT
ub4 kscnbas @420 数据文件的PREV RESETLOGS SCN低4字节值
ub2 kscnwrp @424 数据文件的PREV RESETLOGS SCN高2字节值
ub4 kscnbas @484 数据文件头的SCN低4字节值
ub2 kscnwrp @488 数据文件头的SCN高2字节值,这是数据文件头中最重要的SCN,如果数据库无法OPEN,有时需要使其和其他数据文件保持一致,或者手动将其增大。Oracle 9i的数据文件头SCN位于offset @140之后的6个字节处
ub2 kcvcpthr @496 数据文件当前写的REDOLOG THREAD号
ub4 kcrbaseq @500 数据文件当前写的REDOLOG SEQUENCE。在处理恢复故障时,有时需要使其和其他数据文件保持一致
ub4 kcrbabno @504 数据文件当前写的REDOLOG的BLOCK号。数据库无法OPEN时,有时需要将其置为0或者修改成和其他数据文件一致的值
ub2 kcrbabof @508 数据文件当前写的REDLOG BLOCK中的偏移量,数据库无法OPEN时,有时需要将其置为0或者修改成和其他数据文件一致的值

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

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

相关文章

[前端|vue] 验证器validator使用笔记 (笔记)

文档 validator.js文档地址 规则编写示例 element-plus 使用示例 const captchaLoginRules {phoneNumber: [{ required: true, message: 手机号不能为空, trigger: blur },{validator: (_rule: any, value: string, _callback: any): boolean > {return isMobilePhone(…

vue-quill-editor 富文本编辑器使用出现的样式问题

使用富文本类型&#xff1a; vue-quill-editor 注意&#xff1a; 富文本导出 html 我们使用的时候&#xff0c; 样式凸显不出来 DOM 结构 <p><sub class"ql-size-large">测试内容</sub><sup class"ql-size-large">222222</su…

6步:用NGINX部署ASP.NET Core,轻松上云

1. 准备工作在开始部署之前&#xff0c;确保你已经完成了以下准备工作&#xff1a;- 安装.NET Core&#xff1a;确保你的Linux系统上安装了.NET Core运行时。你可以从.NET官网下载。- 安装NGINX&#xff1a;通过你的Linux发行版的包管理器安装NGINX。例如&#xff0c;在Ubuntu上…

GPT提示词技巧,使用教程,国内版官网直达,非套壳

GPT提示词技巧&#xff0c;使用教程&#xff0c;国内版官网直达&#xff0c;非套壳 主站点&#xff1a;https://chatgpt-plus.top&#xff08;江苏福建地区打不开&#xff0c;需要魔法&#xff09; 店铺地址&#xff1a;https://buy.chatgpt-plus.top/ 选择plus账号进入&…

鸿蒙开发ArkUI-X基础知识:【ArkUI代码工程及构建介绍】

代码工程及构建介绍 背景 ArkUI作为OpenHarmony的默认开发框架&#xff0c;在本项目&#xff08;ArkUI-X&#xff09;中需要做到一套代码同时支持多平台构建&#xff0c;所以会采取共仓开发的方式&#xff0c;部分仓直接指向OpenHarmony相关开源仓。 代码结构及仓库结构 代…

多模态模型(MLLM)论文串烧

近期看了一些多模态方向的工作&#xff0c;包括图像、文本多模态&#xff0c;图像、视频、语音、文本多模态&#xff0c;做个总结。 Yi Qwen-VL LLaVA MobileVLM LanguageBind Video-LLaVA VAST

【机器学习300问】94、什么是多任务学习?

一、多任务学习的定义 多任务学习&#xff08;Multi-Task Learning, MTL&#xff09;是一种机器学习范式&#xff0c;它允许一个模型同时学习执行多个相关但不完全相同的任务。这种方法的核心是&#xff1a;通过共享表示或权重&#xff0c;不同的任务可以在学习过程中相互促进&…

浅谈微服务的自动化部署

一、常用部署工具 jenkins,docker生态是比较常用的工具&#xff0c;本文也主要是聊这几个。其他如Kubernetes (K8s)&#xff0c;Ansible&#xff0c;GitLab CI/CD等工具本文只是暂时提一下&#xff0c;不展开讨论。 二、比较jenkins和docker生态 1、jenkins 优点 jenkins功…

Rust使用rust_xlsxwriter库把Vec数据写入Excel

一、Rust使用rust_xlsxwriter库把一维Vec数据写入Excel 在Rust中&#xff0c;使用rust_xlsxwriter库将一维Vec数据写入Excel文件是一个相对简单的过程。首先&#xff0c;你需要确保你的Cargo.toml文件中已经添加了rust_xlsxwriter依赖。以下是如何添加依赖的示例&#xff1a; …

KMP题解代码(含讲解)

目录 注意: next数组的变化规律&#xff1a; 初始化&#xff1a; 求next数组部分&#xff1a; KMP部分&#xff1a; AC代码&#xff1a; 题目链接&#xff1a;【模板】KMP - 洛谷 注意: 1、next数组是针对子串的&#xff0c;并未涉及母串&#xff0c;因此求next数组时…

Python中文件操作和异常处理

文章目录 一、文件操作1.概念2.文件3.二进制 二、基本文件操作三、乱码产生四、with open() as f五、代码实现文件复制粘贴六、try ... except ...七、代码比较 一、文件操作 1.概念 帮助我们把爬虫抓下来的数据&#xff0c;进行保存。 2.文件 在计算机中&#xff0c;没有p…

Linux:linux基础

Linux 一套免费使用和自由传播的操作系统 linux特点 免费,开源,多用户(同时允许多用户操作同一个Linux系统),多任务(同时允许多个任务执行) linux版本 分为内核版和发行版 内核版 由linus torvalds及其团队进行开发和维护 免费,开源 负责控制硬件 发行版 基于linux内…

Luat学习

万物互联的兴起 人与人之间的连接已经变得越来越紧密&#xff0c;至少在中国这是一个不争的事实。 人们的忙碌程度也达到了前所未有的水平&#xff0c;这时候人的通讯能力反而成为了瓶颈&#xff0c;人与外界的信息交换方式无外乎是嘴说、耳朵听、眼睛看、手指敲、每秒的传输速…

根据配置的mode环境显示不同的index模板

引言&#xff1a;在项目开发中&#xff0c;遇到了开发环境和生产环境使用模板不同的情况&#xff0c;配置如下&#xff1a; 一、vue.config.js const path require(path) function resolve(dir){return path.join(__dirname,dir) } module.exports {chainWebpack: config &g…

力扣226. 翻转二叉树(DFS的两种思路)

Problem: 226. 翻转二叉树 文章目录 题目描述思路复杂度Code 题目描述 思路 涉及二叉树的递归解法时往往需要考虑两种思路&#xff1a; 1.在递归遍历时执行题目需要的具体要求&#xff1b; 2.将一个大问题分解为多个小子问题 具体到本体&#xff1a; 思路1&#xff1a;遍历 先…

【源码分享】简单的404 HTML页面示例,该页面在加载时会等待2秒钟,然后自动重定向到首页

展示效果 源码 html <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><title>404 页面未找到</title><meta http-equiv"refresh" content"2;url/"> <!-- 设置2秒后跳转到首…

机器学习云环境测试

等待创建完成后&#xff0c;点击 PyTorch 打开&#xff0c;创建一个全新的 notebook 在 Cell 中输入如下代码&#xff0c;并点击 Run 完成后点击 New Cell &#xff0c;在 New Cell 中输入如下代码 输入完成后点击 Run &#xff0c;运行 New Cell 。&#xff08;每个 Cell 代…

1077: 平衡二叉树的判定

解法&#xff1a; 平衡二叉树是一种特殊的二叉树&#xff0c;它满足以下两个条件&#xff1a; 左子树和右子树的高度差不超过1&#xff08;即&#xff0c;左右子树高度差的绝对值不超过1&#xff09;。左子树和右子树都是平衡二叉树。 后序遍历过程中每次判断左右子树高度差…

python列表底层原理

Python 列表&#xff08;list&#xff09;是 Python 中非常常用的数据结构之一。它们的底层实现基于动态数组&#xff0c;具体来说&#xff0c;是一个可以动态调整大小的数组。这使得列表在操作和使用上非常灵活。以下是 Python 列表底层实现的主要原理&#xff1a; 动态数组 …

IT廉连看——UniApp——事件绑定

IT廉连看——UniApp——事件绑定 这是我们上节课最终的样式&#xff1b; 一、现在我有这样一个需求&#xff0c;当我点击“生在国旗下&#xff0c;长在春风里”它的颜色由红色变为蓝色&#xff0c;该怎么操作&#xff1f; 这时候我们需要一个事件的绑定&#xff0c;绑定一个单…