http://imPRove.dk/orcamdf-feature-recap/
時間過得真快,這已經過了大概四個月了自從我最初介紹我的寵物項目OrcaMDF。
自從項目開始到現在,OrcaMDF發生了很多變化,功能更強了,因此我想提供一個概述對目前OrcaMDF的功能的概述以及我對OrcaMDF未來的計劃
頁面類型
OrcaMDF 當前支持以下頁面的數據完整解析:Data, Index, TextMix(lob), TextTree(lob), GAM, SGAM, IAM, and PFS
也支持最小限度的解析bootpage,bootpage是用戶表元數據查找的啟動點
剩下的是排序,文件頭,DCM,BCM頁面,DCM和BCM頁面跟IAM, GAM and SGAM 頁面使用相同的位圖格式,解析他們也很簡單。
文件頭有一些tricky 并且一些DBCC PAGE解析。排序頁面跟其他頁面很少有關系,他們只用于在SQLSERVER運行時候臨時使用并且不會
存放在你的MDF文件里面
關于排序頁:http://tech.it168.com/a2010/0916/1104/000001104500_1.shtml
數據類型
我已經添加了盡可能多的數據類型到OrcaMDF里面,稍后我會添加對LOB類型的解析支持,對xml不支持
當前支持的數據類型包括
bigintbinarybitchardatetimedecimalimageintncharntextnvarchar(x)nvarchar(MAX)smallintsysnametexttinyintvarbinary(x)varbinary(MAX)varchar(x)varchar(MAX)
在以后添加新的數據類型相對來說比較容易,只需要分析存儲格式并且實現ISqlType 接口
表和索引結構
使用DataScanner 類,OrcaMDF 能掃描聚集索引表和堆表。使用IndexScanner 類能掃描非聚集索引,無論他們是建立在堆表上還是在聚集索引表上
元數據
OrcaMDF 當前能暴露出來唯一已經公開暴露出來的元數據包括一系列的表名,OrcaMDF 能解析索引,表,分區,分配單元,列并提供他們的名字
這讓你能掃描聚集索引表/堆表/索引。OrcaMDF 會自動解析對象的架構和搜索IAM鏈表頭(堆)或者索引的root page
余下的關注點
OrcaMDF 當前只支持單個數據文件的數據庫,那就是沒有NDF文件的數據庫。添加對NDF文件支持是很簡單的,不過我的主要關注點是
對數據文件里核心數據結構的支持,所以,NDF文件不會改變太大。對于損壞的文件或者損壞檢測,OrcaMDF 假設MDF文件是完好無損的。
有幾個地方是能檢測到數據庫損壞的,但是我把檢測數據庫損壞的功能推遲到直到我認為OrcaMDF 能正確解析數據庫的大部分功能的時候
OrcaMDF 這個項目從一開始到現在一直是深入研究SQLSERVER內部的一個很好的項目,因此,數據庫損壞檢測在現階段并不是很重要
盡管數據庫損壞檢測是我最終想要添加的一個功能
下一步計劃
我想擴展當前元數據解析的能力,特別關注公用的暴露出來的元數據。通過OrcaMDF能夠生成像SSMS左邊那樣的樹狀的數據庫/對象/列的圖形界面
以為會添加表名,索引名,架構名,鍵等。我也會研究一下數據頁面壓縮,先從行壓縮開始。壓縮格式的文檔有很多(相比起LOB結構),
壓縮不會帶來太多問題。
如果你有任何建議或特性你想看到的,請與我聯系
許多人要求我介紹如何使用OrcaMDF并列出例子。我將會創建一個博客文章系列通過代碼來展示如何使用OrcaMDF 提供的特性。
我還計劃創建一篇博客來說明如何獲取源代碼和編譯源代碼,最后如何運行軟件
第七篇完
新聞熱點
疑難解答