解析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.pswp.cn/web/14673.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14673.shtml
英文地址,請注明出處:http://en.pswp.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;綁定一個單…