数据恢复咨询热线: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能够继续准确地管理数据页面里的每一行。


相关推荐