中企动力 > 商学院 > sql数据库数据修复
  • ?

    海鹏完全本地化SQL数据库碎片数据恢复

    凝丝

    展开

    东北数据恢复领导品牌——海鹏数据恢复中心19年来一直以“技术”为企业的第一核心竞争力,19年来一直以“勇攀技术高峰”为企业不懈追求的目标。不断的技术突破和技术创新,使得越来越多的宝贵数据得以重见天日、起死回生。

    Microsoft(微软)开发的SQL数据库,是目前应用最为广泛的数据库技术,但SQL数据库的数据恢复,历来是数据恢复界的一大难题。

    对导致硬盘完全无法访问的硬故障,情况还算理想,只要修复了硬盘的故障点,硬盘自然恢复原样,SQL数据库文件不会受到丝毫的破损。

    但对于软故障来说,情况就要严重、复杂和糟糕得多了。在实战案例当中,掺杂了很多后期严重覆盖的情况,比如卸载数据库后又重新导入了数据库,比如删除软件文件夹后又存入了其他的数据,比如硬盘出现严重坏道导致数据库失效……等等。

    由于SQL数据库文件的读写操作非常非常的频繁,因此在硬盘当中会形成很多很多的“碎片”,文件完全不可能连续存储,而是支离破碎地被分解成了成百上千个“数据碎块”,一旦SQL数据库文件遭遇丢失,要想把如此巨量的、本属于一个文件的“数据碎片”重新拼合、链接、恢复如初,可谓难上加难,技术含量颇高,而且工作量巨大。SQL数据库文件,小则几十兆、上百兆,大则几G,甚至十几G,实战中的具体工作量,可想而知。

    海鹏数据恢复中心在SQL数据库碎片数据恢复取得重大技术突破,恰恰就是针对上述严重和复杂的数据灾难的。并且已经完全实现本地化处理,大大缩短了故障处理周期,为减少和降低客户的数据损失,争取了宝贵的时间。事实证明,在这一国内领先的新技术的竭力挽救之下,更多的SQL数据库在已经被“宣判死刑”了的前提下,重新得以起死回生,恢复如初。

    当然,任何数据恢复技术都不是“时光机器”,都不可能让“时光”完全“倒流”回数据灾难发生之前时的数据状态。海鹏数据恢复中心的这一国内领先的SQL数据库碎片数据恢复技术,不是包治百病的“灵丹妙药”,不可能保证完好无缺地解决所有的SQL数据库的疑难杂症。但“数据挽救最大化、数据损失最小化”,正是海鹏数据恢复中心每一位数据恢复工程师不懈努力和执着追求的终极目标!

  • ?

    SQL SEVER数据库附加时报3414错误修复成功

    傻傻

    展开

    7月15日,鸿萌接到一家企业客户ERP数据库恢复业务。客户服务器硬盘上有坏扇区,工程师成功将客户数据提取出来后,在附加时报错如下图所示:

    客户数据库为Sql Server 2008 R2版本,客户自己百度网上的各种修复方法,进行了尝试,都不成功。鸿萌工程师历时两天成功将该数据库修复。修复结果只有三个销售出库单受损,其余数据完好。客户对修复结果非常满意。

    鸿萌建议数据库出故障的朋友,数据库出现异常后,不要轻易操作,要找有经验的工程师或者数据恢复公司处理。才能有效保护或者修复您的珍贵数据。

  • ?

    某单位5个数据库丢失的数据恢复过程

    沙厉

    展开

    故障描述:

    5块2T硬盘组建RAID5,划分LUN供windows服务器使用。在windows服务器内装有Sql Server2008数据库。存储空间内共有三个逻辑分区,大小分别为500G、800G、2.3T。数据库文件丢失,主要涉及五个数据库,表个数约为6000个左右。丢失原因未知,且不能确定数据存储位置。三个数据库的大小分别为8G、15G、20G。在文件丢失后服务器仍处于开机状态,但并未写入大量数据。

    初检流程:

    1、使用RAID信息及内部数据块信息重组RAID。

    重组RAID

    2、提取LUN内三个分区镜像。

    3、扫描文件系统内丢失文件,未找到被删除数据库文件。

    4、初检结果为数据库文件丢失,通过文件系统角度无法恢复。

    恢复流程:

    1、制定恢复方案。在数据库文件被删除且判定为无法恢复文件后,只能通过扫描数据页,并提取页内记录的方式进行恢复。

    2、使用北亚自主编数据页扫描程序扫描分区内数据页并提取。在分别扫描两个分区镜像后发现500G系统盘内数据页数量极少且数据页断裂情况严重,另一分区内扫描到数据页个数较多。暂定此分区为数据库文件存储空间。

    扫描数据页

    3、重组系统表。Sql Server数据库使用系统表来管理所有用户表,在这些系统表内记录了各表的列数、数据类型及约束信息等。解析系统表过程中发现提取出的数据页内系统表损坏,无法正常读取信息。在与客户沟通后得知有备份文件,且备份完成后没有大量改动表结构,系统表可用。

    4、还原备份。

    还原备份

    5、分别提取三个库中各表表结构信息

    提取表结构信息

    6、解析表结构脚本。将各表的列信息存入数据库内便于后续使用。

    扫描脚本文件表结构信息存入数据库

    7、解析系统表获取用户表id信息、关联表结构与数据页。(为保护客户隐私,后续步骤涉及用户表表名及数据页内数据部分均未截图)

    8、新建数据库,使用北亚自主编写软件解析记录并导入到恢复环境内。

    9、整理恢复结果。在此分区内除数据库文件外还存有备份文件若干,所以在导出记录后可能存在重复数据,必须去重。编写SQL存储过程进行去重。

    数据库去重

    10、客户验证数据。客户在查验过数据后表示数据可以接受,移交数据到客户存储设备,恢复成功。

  • ?

    SQL2008数据库的备份与还原

    Mersa

    展开

    一、上期我们分享了SQL2000数据库的备份与还原,这期我们再来分享下SQL2008数据库的备份与还原。

    二、SQL2008数据库的备份

    1、登录sql server management studio

    2、选择要备份的数据库,右键—任务—备份

    3、添加备份目标,并输入备份文件的名称

    4、这是选择好后的显示页面,确定再确定即开始备份并完成

    三、数据库还原

    1、选择要还原的数据库—右键—任务—还原

    2、如图,刚才备份的数据库会直接显示,可以直接还原

    3、注意选项中要勾选“覆盖现有数据库”,“还原为”的路径一定确保正确

    4、另外一种情况是通过源设备选择还原的文件

    5、“文件类型”要选择所有文件,否则看不到备份是文件

    6、勾选“还原”,确定即可完成还原

  • ?

    SQL一般性错误的修复

    霸波奔

    展开

    一、有时数据库存在异常现象(非置疑或可疑那样严重性的),一般我们会先dbcc检查下数据库,根据提示即可修复表或索引。

    二、具体操作

    1、检查命令,如图:

    如果库有问题,会有如下提示:

    ***repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKDB (数据库名 ) 发现的错误而言)。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。***

    2、下面是修复过程:

    (1)将数据库设置为单用户模式(注意要断开与所有客户端的连接)

    A:命令方法:sp_dboption 'sysdb', 'single user', 'true'——sysdb是数据库名

    B:企业管理器——在数据库属性中设置:

    (2)执行修复语句:

    dbcc checkdb(sysdb,repair_allow_data_loss)——修复数据库

    dbcc checkdb(sysdb,repair rebuild)——修复索引

    (3)再执行dbcc检查:

    dbcc checkdb(sysdb)——如果提示:0个分配错误和0个一致性错误表明已经修复,如果还有错误则可重复执行第(2)步的语句多修复几次。

    (4)取消数据库单用户模式:

    A:命令方法:sp_dboption 'sysdb', 'single user', 'false'

    B:企业管理器——数据库属性:

    三、一般性错误使用上述方法基本都可修复,感谢关注!

  • ?

    SQL数据库附加与还原的区别

    芷巧

    展开

    一、附加数据库与分离数据库相反,只有分离的数据库才能附加,分离后的数据库不能再正常读取,只有附加后才能读取;而还原数据库是指在原有数据库的基础上进行,一般选择覆盖原有数据库,SQL中如果不存在这个库是不能还原的(物理设备上要有库文件)。客户的服务器需要重装,小编是先备份原库(使用软件或SQL备份或停止SQL直接拷走数据库文件或在PE下拷走),重装完成后拷回原位置直接附加(个人经验附加始终比还原快),使用还原的情况比较少。还原数据库小编之前已经分享过,这里不再赘述。今天小编来分享下数据库的分离与附加。

    二、分离数据库

    1、选中要分离的库—右键“所有任务”—分离数据库

    2、如果存在数据库连接可“清除”,点击“确定”

    3、分离成功

    三、附加数据库

    1、要在“数据库”上右键—所有任务—附加数据库

    2、附加数据库界面:点击按钮

    3、选择要附加的数据库文件,注意要选择.MDF的文件,.LDF是日志文件

    4、选择好后的界面,注意“指定数据库所有者”,有的是sa,有的是其它的,比如科脉是km

    5、点击“确定”,附加成功

    四、有时候轻度数据库置疑也可以通过“分离—附加”来修复,不过还是不建议这样做。我是百家号作者小白信息说,专注电子信息领域经验分享、技术交流,感谢关注!

  • ?

    SQL2000数据库的备份与还原

    心疼

    展开

    一、数据库备份

    1、打开企业管理器,如图所示操作

    2、一般选择完全备份,添加备份目的

    3、选择备份目录,输入备份数据库名称,接着按下图操作即可,直至完成备份

    二、数据库还原

    2、如果之前备份了库,在此处可以直接还原,请选择“在现有数据库上强制还原”

    2、从设备还原,比如从别的服务器上拷过来的备份库,选择设备,添加还原设备,如下图操作即可,直至还原完成

    3、如果还原时提示数据库正在被占用,可通过分离功能清除连接再进行还原;注意:使用分离功能只是清除连接,不要点“确定”真的分离数据库

  • ?

    SQL2000数据库置疑的修复

    刺骨

    展开

    一、SQL2000体积小、安装速度快,成熟稳定,至今仍有不小的用途;但是相比较于2005和2008,有时突然断电或磁盘问题可能导致出现“置疑”的情况机率要大一些,此时我们无法读取数据;如果有备份,直接还原即可;如果没有备份,那就只能修复了;置疑修复后不能完全保证数据的准确性,有可能部分数据会丢失。

    二、注意事项

    1、千万不要对数据库进行分离操作;

    2、建议停掉SQL服务,把置疑的数据库备份一份。

    三、置疑修复步骤

    1、假设原库名为DB,新建一个库名为DB1(不要和DB在一个目录下);

    2、停止SQL服务;

    3、将置疑库DB重命名为DB1,覆盖DB1;

    4、启动SQL服务,此时在企业管理器中DB1仍为置疑,先不用管;

    5、执行下面的语句,注意修改数据库名称:

    USE MASTER

    GO

    SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE

    GO

    UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='DB1'

    Go

    sp_dboption 'DB1', 'single user', 'true'

    Go

    DBCC CHECKDB('DB1')

    Go

    update sysdatabases set status =28 where name='DB1'

    Go

    sp_configure 'allow updates', 0 reconfigure with override

    Go

    sp_dboption 'DB1', 'single user', 'false'

    Go

    6、此时DB1库恢复正常,但如若重启电脑,库仍为“置疑”;彻底解决的方法是再新建一个库,如DB11,将DB1库中的数据通过“导入导出工具”导到新库中。

    四、SQL2000数据库设置自动备份请参考我之前的文章,为了最大限度的确保数据不被损坏,建议设置自动备份功能。

  • ?

    sql server数据库错误数据恢复方法

    Sherry

    展开

    1.硬件设备清单:

    硬件设备配置情况

    2.故障描述:

    需要进行数据恢复的服务器是一台r520型号存储,共有7块SAS硬盘分别组成raid1和raid5两组磁盘阵列。主要sql server数据库存放在C盘中,在使用过程中,客户发现C盘容量即将占满,于是将数据库路径指向了D盘,在D盘生成了一个.ndf文件。客户在继续使用了大约10天之后,数据库出现故障,连接失效,无法正常附加查询。

    3.备份数据:

    考虑到数据的安全性以及可还原性,在做数据恢复之前需要对所有源数据做备份,以防万一其他原因导致数据无法再次恢复。使用dd命令或winhex工具将所有磁盘都镜像成文件。

    4.故障分析:

    (a)分析故障原因;由于数据库文件所在磁盘容量不足,导致数据库无法继续正常运行,出现逻辑错误。

    (b)分析RAID组结构;客户服务器上共7块300G硬盘,其中2块硬盘做RAID 1,用于安装操作系统,其余5块硬盘做RAID 5存放数据。分析RAID 1和RAID 5的相关结构,重组虚拟出RAID 1和RAID 5,查看其中数据。

    (c)分析原始数据库文件;由于客户在数据库发生故障之后,进行过多次数据库恢复尝试,并且每一次尝试都是在源环境下进行的,导致原始数据库文件被更改覆盖,并且磁盘空间被多次复写,无法使用尝试恢复之后的数据库文件进行修复。询问客户得知,客户在数据库发生故障的时候,备份过一分原始的故障数据库文件。

    5.数据库修复:

    从虚拟出的RAID 5空间中将客户之前备份的数据库文件拷贝出来,尝试在数据库中附加,附加失败,错误提示如下图一:

    数据库附加失败

    错误提示主数据库文件和次级数据库文件不匹配,查看.ndf文件底层,发现.ndf文件中几乎没有数据,尝试取消.mdf文件和.ndf文件之间关联,只用.mdf文件进行附加。尝试后发现,只用.mdf文件附加时也发生错误,但是错误提示改变。图二:

    mdf文件附加错误

    此时错误提示日志文件(.ldf)和数据库文件(.mdf)不匹配。之后对数据库尝试进行无数据库附加,附加成功。但是发现数据库系统表损坏,无法正常使用。图三

    数据库系统表损坏

    对数据库的系统表尝试修复,但由于系统表损坏过于严重,无法修复。数据库记录提取;解析数据库文件中的数据库记录;编写相应的程序提取数据库文件中的数据库记录;根据客户以前的数据库备份获取数据库中的表结构;重构表结构并肩提取出的数据库记录导入到新的表中。

    6.数据验证:

    由客户对提取出的数据库记录进行验证,所有数据完全恢复,本次数据恢复成功。

    7.数据恢复结论:

    在数据库使用过程中,要合理分配数据库文件所在磁盘空间,及时清理垃圾数据,保证数据库的正常、安全运行。

  • ?

    如何修复SQL Server数据库中的MDF文件

    石沅

    展开

    数据库文件对所有用户都很重要, 并存储大量重要信息。了解有关修复损坏的 SQL 数据库文件的手动和专业解决方案。  今天的MS SQL Server是最常用的关系数据库之一。 它具有先进的内部结构并提供很高的可靠性。 这就是大多数组织使用SQL Server数据库来保存所有关键业务数据的原因。 但是也有一些情况,如病毒感染,操作系统故障,文件系统损坏等等,因为SQL数据库变得损坏,并且存储在其中的所有数据都不可访问。 从SQL Server中的损坏状态修复.mdf文件不是一件容易的事。  用户可以使用手动技术来修复SQL数据库中损坏的MDF文件,但这不是一种可靠的方法,因为不能保证使用手动方法进行数据恢复。 但是,也有第三方工具,如SysTools SQL Recovery,声称以完美的方式修复.mdf文件。  因此,在这篇文章中,我们将讨论修复损坏的SQL数据库的最佳解决方案。 但在此之前,了解SQL数据库中损坏的原因很重要。  损坏的SQL数据库背后的原因  在SQL Server数据库中出现腐败背后可能有各种可能的原因。 众所周知,SQL数据库的MDF文件是主数据库文件。 它们存储所有用户数据,因此MDF文件中的损坏可能会损坏整个数据库。 因此,首先,我们将讨论MDF文件损坏背后的所有可能的原因:  存储介质中存储所有MDF文件的损坏。  如果用户将SQL数据库存储在压缩文件夹中,则MDF文件可能会损坏。  任何修改或更改都是在SQL Server帐户中完成的。  用户可能意外删除了一些数据。  如果文件头损坏,则会导致MDF文件损坏。  损坏的磁盘驱动程序。  如果SQL数据库正在使用,并且在两者之间存在网络故障,则会导致MDF文件损坏。  导致MDF文件损坏的其他可能原因包括病毒攻击,硬盘故障,系统异常关机和突然断电。  因此,如果MDF文件损坏,那么SQL数据库变得不可访问。 而且,如果用户试图访问损坏的数据库,则可能会遇到一些错误消息。 下面列出了最常遇到的错误消息:  存储所有MDF文件的存储介质中损坏。  如果用户将SQL数据库存储在压缩文件夹中,则MDF文件可能会损坏。  元数据损坏错误。  用户可能意外删除了一些数据。  SQL Server/Msg 825 (读取重试) 中 SQL Server/Msg 824 中的 Msg 823 错误。  除此之外,用户在访问损坏的SQL数据库时可能会遇到其他一些错误消息。 因此,数据库管理员有责任立即采取措施并防止任何类型的数据丢失。  如何通过手动修复MDF文件  有几种手动方法可用于修复损坏的SQL数据库,但手动解决方案不能保证数据库恢复。  为了恢复损坏的数据库,用户可以使用SQL Server的NDF文件(日志文件)。但是, 只有日志文件不足以在大多数损坏情况下还原数据库, 因为有时, 由于严重损坏, 备份文件也会损坏。  修复和恢复损坏的SQL数据库的另一种可能方法是在数据库控制台命令(即DBCC CHECKDB)的帮助下进行的。这对于在 SQL server 数据库中修复小的损坏问题非常有用。  使用DBCC CHECKDB修复损坏的MDF文件的步骤  首先,您需要通过执行以下查询在损坏的SQL数据库上运行DBCC CHECKDB:

    注意:您还可以使用DBCC CHECKDB定义一些选项,如no_infomsgs和infomsgs。  之后,您需要检查索引ID。  情况1:如果索引ID> 1,则将其放下并重新创建。  情况2:如果索引ID为0或1,则再次运行DBCC CHECKDB并使用适当的修复选项,如repair_rebuild,repair_fast或repair_allow_data_loss。  

    现在,为了确保零损坏,执行DBCC CHECKDB并显示一条消息,即DBCC CHECKDB在name_of_your_corrupt_database中显示0个分配错误和0个一致性错误。  如果手动方法失败怎么办?  手动解决方案并不总是一个万无一失的解决方案。 他们可能有一些限制。 例如,在严重损坏的MDF文件的情况下,手动失败很容易。 而且,手动解决方案要求用户在技术上强大。 因此,建议使用一些可靠的第三方软件来修复损坏的SQL数据库。 SQL数据库恢复程序是修复MDF文件中任何类型的损坏问题的最佳实用程序之一。  SQL恢复工具能够修复损坏的SQL数据库文件 - MDF和NDF。 它是一款无风险软件,可恢复存储在其中的所有数据项,如表格,规则,触发器,函数等。除此之外,软件只需几次点击即可修复数据库,而不会浪费任何时间。  从MDF文件修复损坏的SQL数据库的步骤  在本地机器上下载并运行SQL Recovery Program。  

    之后,打开您选择的损坏的SQL数据库文件(.mdf文件)。  

    选择扫描模式,然后单击确定。  

    该工具将提供存储在损坏的MDF文件中的数据项的预览。  

    点击导出保存恢复的数据库。  

    结论  数据库文件对于任何用户都非常重要,因为它们存储大量重要信息。 SQL数据库中的任何类型的损坏问题都可能给用户造成麻烦。 因此,为了克服所有这些问题,我们讨论了手动和专业解决方案来修复损坏的SQL数据库文件。

     更多阅读

    12种最受欢迎的编程语言

    软考网络工程师准备篇(二):上午答题技巧

    软考网络工程师备考篇(一):考前准备

sql数据库数据修复

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP