****欧欧美毛片4,国产午夜精品视频,97视频在线观看免费视频,久久七国产精品

數據恢復咨詢熱線:400-666-3702??

歡迎訪問南京兆柏數據恢復公司,專業數據恢復15年

兆柏數據恢復公司

?行業新聞

?當前位置: 主頁 > 行業新聞

sql server mdf文件頁面結構,sql server 文件修復

瀏覽量: 次 發布日期:2018-10-06 19:27:59

      sqlserver mdf文件損壞如何修復,mdf數據庫文件頁面結構
 
     在數據庫的頭96個字節中第0x40開始直道0x5F應該都是0。
我發現只有測試頁的m_pageId 的冒號前面的數字不為1時才在0x40到0x5f寫入數據。但是具體代表什么還沒有看出來。
姑且認為數據庫第一個頁面的0x00-0x3f就如上圖所示,0x40-0x5f都為0(不正確的話請糾正一下)
這張圖有什么用呢,如果你理解了上述參數的意義,用二進制編輯器打開一個頭文件損壞的mdf文件就有可能恢復這個已經損壞的數據庫。
偶不是dba也不是專業恢復數據的,只是個普通的開發人員,怎么恢復還請有經驗人士補充一下。

-SQLSERVER的數據頁面結構
 
在論壇里經常有人問到SQLSERVER是怎麼存放基礎表數據的,既然不想查MSDN,本人就在這里說一下吧
每一行數據在數據頁面里是怎麼存放的?
 
結構組成:每個SQLSERVER的數據頁面大致分成3個部分:頁頭,頁尾偏移量,數據存儲 這3個部分
 
假設現在有一個表,表的結構是:
CREATE TABLE test(
  a INT,
  b INT

 
他在1:100這個頁面上存儲數據(1是數據庫的數據文件ID 亦即是FILEID,100 是PAGEID 頁面編號)。
 
這個頁面結構大致如下圖
 

在頁頭部分,會記錄頁面屬性,包括頁面編號等,還會記錄當前頁面空閑部分的起始位置在哪里  www.2cto.com  
 
這樣SQLSERVER在要插入新數據的時候,就能夠很快地找到開始插入的位置,而頁尾的偏移量
 
記錄了每一條數據行的起始位置。這樣SQLSERVER在找每一條記錄的時候,就能很快找到不會
 
把前一條記錄和后一條搞混。在圖例這一頁里現在有兩條記錄:(1,100)和(2,200)第一條
 
記錄的開始位置是96,第二條記錄的開始位置是111,從126開始,是空閑的空間
 
當頁面里的數據行發生變化的時候,SQLSERVER不但要去修改數據本身,還要修改這些偏移量的值,
 
以保證SQLSERVER能夠繼續準確地管理數據頁面里的每一行。


相關推薦