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

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

兆柏数据恢复公司

 行业新闻

 当前位置: 主页 > 行业新闻

金蝶k3财务数据库文件打不开怎么办?

浏览量: 次 发布日期:2019-11-27 18:17:09

金蝶k3财务数据库文件打不开怎么办?
一般情况为数据库文件损坏,硬盘坏道,硬盘损坏,非法断电等都会导致数据库文件损坏。
SQL Server 数据库具有三种类型的文件
    具体参数描述如下:
    因此,如果MDF文件被损坏,那么SQL数据库就会变得不可访问。另外,如果用户试图去访问已损坏的数据库,则可能会看到一些错误提示消息。下面我们列出了一些最常见的错误消息:
    1、该程序从硬盘上扫描所有MDF文件碎片并保存为文件
    .如果用户将SQL数据库存储在一个压缩的文件夹中,那么MDF文件就可能因此而被损坏。
    dbname 包含页面的数据库的名称
    情况1:如果索引ID>1,则立刻丢弃它、并重新创建。
    第三个参数是一个非聚集索引ID或者 1, 0, 1, or 2. 值的含义:
    SQL数据库受损的背后原因有许多种。众所周知,SQL数据库的各个MDF文件其实是一些主要的数据库文件,它们存储着所有用户的数据,因此任何MDF文件的损坏都可能会导致整个数据库的崩溃。可见,我们需要首先来了解MDF文件受损背后的所有可能原因:
    3:输出缓冲区的标题、页面标题(分别输出每一行),以及行偏移量表;每一行
    3、从列表选择扫描得到的文件
    首先,您需要在受损的SQL数据库上运行DBCC CHECKDB,请执行如下的命令:
    ?8 GAM page 全局分配映射(Global Allocation Map,GAM)页面 这些页面记录了哪些区已经被分配并用作何种用途。
    二 数据页
    ?17 BCM page 有关每个分配单元中自最后一条 BACKUP LOG 语句之后的大容量操作所修改的区的信息
    DBCC CHECK (name_of_corrupt_database, repair_fast)
    三 DBCC命令
    SQL Server把数据记录存在数据页(Data Page)里。数据记录是堆表里、聚集索引里叶子节点的行。
    关于数据库页类型如下所示:
    1、在SQLserver企业管理器里面删除数据库对象,导致MDF文件被删除。
    1: 显示对象的全部页, 包含IAM 页, in-row数据页, LOB 数据页row-overflow 数据页 . 如果请求的对象含有聚集所以则索引页也包括。
    除主数据文件以外的所有其他数据文件都是次要数据文件,次数据文件一般只存储用户数据。某些数据库可能不含有任何次要数据文件,而有些数据库则含有多个次要数据文件。次要数据文件的推荐文件扩展名是 .ndf。
    dbid 包含页面的数据库ID
    .某个用户可能对数据进行错误地删除。
    一般用户可以通过手动的方法,来逐步修复SQL数据库中损坏的MDF文件,但是该方法并不可靠,因为它无法保证数据能够被完全地恢复。不过,也有类似SysTools SQL Recovery这样的第三方工具,声称可以完美的方式修复.mdf文件。
    ?13 boot page 记录了关于数据库的信息,仅存于每个数据库的第9页
   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)
    printopt 可选的输出选项;选用其中一个值:
    至此为确保修复了所有损坏,请再次运行DBCC CHECKDB。如果在name_of_your_corrupt_database中显示为0个分配错误和0个一致性错误,则大功告成
    .元数据的损坏错误。
    2、即使MDF文件被部分覆盖,未被覆盖部分的表数据依然可以恢复
    DBCC CHECK (name_of_corrupt_database, repair_allow_data_loss)
    1:输出缓冲区的标题、页面标题(分别输出每一行),以及行偏移量表
    .磁盘驱动器受损。
    dbcc page 命令读取数据页结构的命令DBCC Page。
    DBCC CHECK (name_of_corrupt_database, repair_rebuild)
    .在某个SQL Server帐号下,所进行的任何修改或变更。
    -2: 显示全部IAM页。
    0: 只显示对象的in-row data页和 in-row IAM 页。
    除此之外,用户还可能在访问受损的SQL数据库时,遇到其他类型的错误提示。可见,数据库管理员应当立即采取措施,以防止任何类型的数据丢失。
    ?9 SGAM page 共享全局分配映射(Shared Global Allocation Map,GAM)页面 这些页面记录了哪些区当前被用作混合类型的区,并且这些区需含有至少一个未使用的页面。
    使用教程:
    注意:您也可以为DBCC CHECKDB定义诸如no_infomsgs和infomsgs的选项参数。
    另一种可能修复和复原受损SQL数据库的方式是使用数据库控制台命令,例如:DBCC CHECKDB。该命令对于修复SQL Server数据库中的轻度损坏问题是非常有效的。
    2 次要数据文件
    ?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.
    -1: 显示全部IAM页,数据页, 索引页 也包括 LOB 和row-overflow 数据页。
    .MDF文件所在存储介质的损坏。
    该命令为非文档化的命令,具体如下:
    DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])
    用DBCC CHECKDB来修复受损MDF文件的步骤
    filenum 包含页面的文件编号
 
相关推荐