数据恢复咨询热线:400-666-3702  

欢迎访问南京兆柏数据恢复公司,专业数据恢复15年

兆柏数据恢复公司

 数据恢复教程

 当前位置: 主页 > 数据恢复教程

sql server数据库误删除怎么恢复?

浏览量: 次 发布日期:2019-11-27 18:21:45

sql server数据库误删除怎么恢复?

在某个SQL Server帐号下,所进行的任何修改或变更。
    关于数据库页类型如下所示:
    第一个参数是数据库名或数据库ID。
    .导致MDF文件损坏的其他可能原因还包括:病毒攻击、硬盘故障、系统异常关机和突然断电等。
    ?17 BCM page 有关每个分配单元中自最后一条 BACKUP LOG 语句之后的大容量操作所修改的区的信息
    首先,您需要在受损的SQL数据库上运行DBCC CHECKDB,请执行如下的命令:
    要想看到这些输出的结果,还需要设置DBCC TRACEON(3604)
    ?13 boot page 记录了关于数据库的信息,仅存于每个数据库的第9页
    1、该程序从硬盘上扫描所有MDF文件碎片并保存为文件
    为了兼容sql server 2000,第四个参数是可选的,该参数用于指定一个分区号.如果不给定值或者给定0, 则显示全部分区数据。
    1.DBCC CHECKDB (Name_of _corrupt _database)
    dbid 包含页面的数据库ID
    使用说明:
    ?1 Data page 堆表和聚集索引的叶子节点数据
    二 数据页
    主数据文件是数据库的起点。除了存储系统以及用户数据以外,主数据文件还存储了数据库中的所有辅助数据文件以及重做日志文件的路径、名称、大小等信息。SQL Server通过读取主数据文件得到其他数据文件及重做日志文件的信息,这个功能与Oracle控制文件相似。每个数据库都有一个主数据文件。主数据文件的推荐文件扩展名是 .mdf。
    ?10 IAM page  有关每个分配单元中表或索引所使用的区的信息
   SQL Server 数据库具有三种类型的文件
1 主数据文件
    主数据文件是数据库的起点。除了存储系统以及用户数据以外,主数据文件还存储了数据库中的所有辅助数据文件以及重做日志文件的路径、名称、大小等信息。SQL Server通过读取主数据文件得到其他数据文件及重做日志文件的信息,这个功能与Oracle控制文件相似。每个数据库都有一个主数据文件。主数据文件的推荐文件扩展名是 .mdf。
 
2 次要数据文件
    除主数据文件以外的所有其他数据文件都是次要数据文件,次数据文件一般只存储用户数据。某些数据库可能不含有任何次要数据文件,而有些数据库则含有多个次要数据文件。次要数据文件的推荐文件扩展名是 .ndf。
 
3 日志文件
    日志文件包含着用于恢复数据库的所有日志信息。每个数据库必须至少有一个日志文件,当然也可以有多个。日志文件的推荐文件扩展名是 .ldf。
 
    SQL Server 不强制使用 .mdf、.ndf 和 .ldf 文件扩展名,但使用它们有助于标识文件的各种类型和用途。
?? 在 SQL Server 中,数据库中所有文件的位置都记录在数据库的主文件和 master 数据库中。大多数情况下,SQL Server 数据库引擎使用 master 数据库中的文件位置信息。
    在下列情况下,数据库引擎使用主文件的文件位置信息初始化 master 数据库中的文件位置项:
    .使用带有 FOR ATTACH 或 FOR ATTACH_REBUILD_LOG 选项的 CREATE DATABASE 语句来附加数据库时。
    .从 SQL Server 2000 版或 7.0 版升级时。
    .还原 master 数据库时。
 
二 数据页
    SQL Server用8KB 的页来存储数据,并且在SQL Server里磁盘 I/O 操作在页级执行。也就是说,SQL Server 读取或写入所有数据页。页有不同的类型,像数据页,GAM,SGAM等。
    SQL Server把数据记录存在数据页(Data Page)里。数据记录是堆表里、聚集索引里叶子节点的行。
    数据页由3个部分组成。页头(标头),数据区(数据行和可用空间)及行偏移数组。
 
    要找出SQL Server给一个表分配的页有哪些,要用到非文档的命令DBCC IND。DBCC IND 命令用于查询一个存储对象的内部存储结构信息,该命令有4个参数, 前3个参数必须指定。它的语法如下:
    第一个参数是数据库名或数据库ID。
    第二个参数是数据库中的对象名或对象ID,对象可以是表或者索引视图。
    第三个参数是一个非聚集索引ID或者 1, 0, 1, or 2. 值的含义:
 0: 只显示对象的in-row data页和 in-row IAM 页。
 1: 显示对象的全部页, 包含IAM 页, in-row数据页, LOB 数据页row-overflow 数据页 . 如果请求的对象含有聚集所以则索引页也包括。
 -1: 显示全部IAM页,数据页, 索引页 也包括 LOB 和row-overflow 数据页。
 -2: 显示全部IAM页。
     Nonclustered index ID:显示索引的全部 IAM页, data页和索引页,包含LOB和 row-overflow数据页。
     为了兼容sql server 2000,第四个参数是可选的,该参数用于指定一个分区号.如果不给定值或者给定0, 则显示全部分区数据。
    和DBCC PAGE不同的是, SQL Server运行DBCC IND不需要开启3604跟踪标志.
 
    关于数据库页类型如下所示:
?1 Data page 堆表和聚集索引的叶子节点数据
 
?2 Index page 聚集索引的非叶子节点和非聚集索引的所有索引记录
 
?3 Text mixed page  A text page that holds small chunks of LOB values plus internal parts of text tree. These can be shared between LOB values in the same partition of an index or heap.
 
?4 Text tree page A text page that holds large chunks of LOB values from a single column value.
 
?7 Sort page 排序时所用到的临时页,排序中间操作存储数据用的。
 
?8 GAM page 全局分配映射(Global Allocation Map,GAM)页面 这些页面记录了哪些区已经被分配并用作何种用途。
 
?9 SGAM page 共享全局分配映射(Shared Global Allocation Map,GAM)页面 这些页面记录了哪些区当前被用作混合类型的区,并且这些区需含有至少一个未使用的页面。
 
?10 IAM page  有关每个分配单元中表或索引所使用的区的信息
 
?11 PFS page  有关页分配和页的可用空间的信息
 
?13 boot page 记录了关于数据库的信息,仅存于每个数据库的第9页
 
?15 file header page 记录了关于数据库文件的信息,存于每个数据库文件的第0页
 
?16 DCM page 记录自从上次全备以来的数据改变的页面,以备差异备份
 
?17 BCM page 有关每个分配单元中自最后一条 BACKUP LOG 语句之后的大容量操作所修改的区的信息
 
三 DBCC命令
现在我们来看看79号类型为1的数据页里存放的数据,这个就要用到DBCC PAGE命令,它的语法如下:
 
dbcc page 命令读取数据页结构的命令DBCC Page。
 该命令为非文档化的命令,具体如下: 
   DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])
  具体参数描述如下:
   dbid 包含页面的数据库ID
  dbname 包含页面的数据库的名称
   filenum 包含页面的文件编号
   pagenum 文件内的页面
   printopt 可选的输出选项;选用其中一个值:
   0:默认值,输出缓冲区的标题和页面标题
   1:输出缓冲区的标题、页面标题(分别输出每一行),以及行偏移量表
   2:输出缓冲区的标题、页面标题(整体输出页面),以及行偏移量表
   3:输出缓冲区的标题、页面标题(分别输出每一行),以及行偏移量表;每一行
   后跟分别列出的它的列值
   要想看到这些输出的结果,还需要设置DBCC TRACEON(3604)
    ?16 DCM page 记录自从上次全备以来的数据改变的页面,以备差异备份
    1:输出缓冲区的标题、页面标题(分别输出每一行),以及行偏移量表
    .MDF文件所在存储介质的损坏。
    SQL数据库受损的背后原因有许多种。众所周知,SQL数据库的各个MDF文件其实是一些主要的数据库文件,它们存储着所有用户的数据,因此任何MDF文件的损坏都可能会导致整个数据库的崩溃。可见,我们需要首先来了解MDF文件受损背后的所有可能原因:
    ?3 Text mixed page  A text page that holds small chunks of LOB values plus internal parts of text tree. These can be shared between LOB values in the same partition of an index or heap.
    DBCC CHECK (name_of_corrupt_database, repair_allow_data_loss)
    情况1:如果索引ID>1,则立刻丢弃它、并重新创建。
    -2: 显示全部IAM页。
    ?2 Index page 聚集索引的非叶子节点和非聚集索引的所有索引记录
    2 次要数据文件
    .如果用户将SQL数据库存储在一个压缩的文件夹中,那么MDF文件就可能因此而被损坏。
    2、打开以前扫描好的碎片文件
    3、误格式化或分区导致MDF文件丢失。
    1、在SQLserver企业管理器里面删除数据库对象,导致MDF文件被删除。
    0:默认值,输出缓冲区的标题和页面标题
    1 主数据文件
    .磁盘驱动器受损。
    用户可以使用SQL Server的NDF文件(一些日志文件)来进行恢复。但是在大多数损坏的案例中,单凭日志文件是不足以恢复数据库的。因为有时候在一些被严重损坏的情况下,其对应的备份文件也同样遭到了破坏。
    ?4 Text tree page A text page that holds large chunks of LOB values from a single column value.
    printopt 可选的输出选项;选用其中一个值:
    3 日志文件
    4、开始组合MDF文件
    .由于文件头的损坏,所导致的MDF文件受损。
    DBCC CHECK (name_of_corrupt_database, repair_fast)
    SQL Server 数据库具有三种类型的文件
    dbname 包含页面的数据库的名称
    DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])
    filenum 包含页面的文件编号
    现在我们来看看79号类型为1的数据页里存放的数据,这个就要用到DBCC PAGE命令,它的语法如下:
    如何手动修复MDF文件
    2:输出缓冲区的标题、页面标题(整体输出页面),以及行偏移量表
    至此为确保修复了所有损坏,请再次运行DBCC CHECKDB。如果在name_of_your_corrupt_database中显示为0个分配错误和0个一致性错误,则大功告成
    .某个用户可能对数据进行错误地删除。
    3、从列表选择扫描得到的文件
    如今微软的SQL Server可谓是最常用的关系型数据库之一了。鉴于其先进的内部结构和高可靠性,大多数组织都选用SQL Server数据库来存储所有关键业务的数据。但是有时候,一些诸如病毒感染、操作系统故障、文件系统损坏之类的状况会使得SQL数据库受到损坏,以至于存储在其中的所有数据都变得无法访问。然而,在真实的场景中,我们在损坏的SQL Server里修复各种.mdf文件,却并非是一件容易的事。
 
相关推荐