❶ MDF文件丢失,如何恢复数据库(MS-SQL)
在sqlserver2005数据库中,一次误操作,分离数据库后,直接将日志文件删除掉了,后进行附加出错,无法附加上去,经过如下解决方案,数据库附加成功,操作如下:第一步:先建立一个同名数据库,停止sqlserver2005,将原来的.mdf数据库文件覆盖刚新建的.mdf数据库文件,重新启动数据库。第三步:在查询分析器中运行如下代码:alterdatabase你的.mdf文件名setemergency'–将数据库设置为紧急状态usemasterdeclare@databasenamevarchar(255)set@databasename='你的.mdf文件名''–你的.mdf文件文件名execsp_dboption@databasename,n'single',n'true'–将目标数据库置为单用户状态dbcccheckdb(@databasename,repair_allow_data_loss)dbcccheckdb(@databasename,repair_rebuild)execsp_dboption@databasename,n'single',n'false'–将目标数据库置为多用户状态
❷ 日志文件丢失或出错的情况下如何恢复SQL数据库
1. 新建数据库(同来名)2. 停掉自数据库3. 删除新建数据库的日志文件,用要恢复的覆盖mdf文件4. 启动数据库服务器5. 设置数据库允许直接操作系统表6. 设置数据库为紧急修复模式update sysdatabases set status=-32768 where dbid=DB_ID('dbDataHome')7. 重建数据库日志文件dbcc rebuild_log('dbDataHome','D:\Data\dbData_Data.LDF')8. 验证数据库一致性(可省略)dbcc checkdb('dbDataHome')9.设置数据库为正常状态exec sp_dboption 'dbDataHome','dbo use only','false'10. 最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。
❸ sql server 2000 数据库数据不知道什么原因都消失了,如何通过ldf文件恢复数据
友翔硬盘数据恢复中心 关注DiskGenius 文件数据恢复当计算机内的文件被有意无意的删除、或遭到病毒破坏、分区被格式化后,若想恢复这些已丢失的文件,均可使用本功能。实际上,操作系统在删除文件时,只是将被删除文件打上了删除标记,并将文件数据占用的磁盘空间标记为空闲。文件数据并没有被清除,还静静地躺在磁盘上。只要删除文件后没有建立新的文件,操作系统没有写入新的数据,这些被删除的文件数据就不会被破坏,就有机会通过一定的技术手段将它们抢救出来,优盘数据恢复。格式化操作执祥核行时并不会考虑磁盘上原来的数据内容,也不会先删除旧文件。不同的文件系统类型,格式化的具体操作内容也不同。对于FAT32、FAT16、FAT12等文件系统,格式化时会清除文件分配表(简称FAT,固定位于分区的开始部分,含有文件数据的定位信息)及根目录。文件数据一般不会被清除。对于NTFS文件系统,格式化时新写入的数据没有固定位置要求,但正常情况下每次格式化时的写入位置不会变化。因此旧文件数据大多不会被覆盖,仍存在大量残余信息供我们找到丢失的文件。本功能就是通过分析残留在磁盘上的文件的部分信息来重新找到文件数据及文件夹的层次结构,从而达到恢复文件数据的目的。对于整个分区已经丢失的情况,请首先参阅搜索已丢失分区(重建分区表)功能,固态硬盘 8,先搜索到丢失的分区。然后可以在保存分区表后、或在不保存分区表的情况下再利用文件恢复功能恢复分区内的文件。分区被破坏的表现有:在我的电脑中打开分区时系统提示未格式化需要格式化,分区属性显示为RAW,打开分区后看不到任何文件。遇到这些情况时,都可以通过误格式化后的文件恢复功能来恢复文件。本功能支持NTFS、FAT32、FAT16、FAT12等文件系统类型的硬盘分区、支持使用这些文件系统格式的RAID卷、U盘、存储卡(如数码相机中的SD卡、XD卡等等)。为保护正在恢复的分区不被再次破坏,本软件在搜索分区内的文件时,会采用只读模式,不会向分区写入任何数据。要开始恢复文件,首先选择已删除文件所在的分区。然后点击工具栏按钮恢复文件,或点击主菜单工具中的已删除或格式化后的文件恢复菜单项,以打开文件恢复对话框。如下图:由于格式化后的文件恢复与文件正常删除后的恢复过程不同,我们将这两种情况分别处理。下面是具体的操作方法:一、已删除文件的恢复:在恢复文件对话框中,选择恢复误删除的文件。如果正在搜索的分区文件系统类型是FAT32,还可以勾选完整扫描复选框。由于FAT32文件系统在删除银春文件时的特性,有的已删除文件在不进行完整扫描的情况下可能搜索不到。由于完整扫描耗时较长,建议先在不使用完整扫描的情况下搜索一次,搜索不到时再采用完整扫描方式重新搜索。点击开始按钮以开始搜索过程:搜索完成后,恢复文件对话框自动关闭。程序主界面将显示搜索到的文件,每个已删除文件前面都有一个复选框,左侧的文件夹层次图中的条目也加上了复选框。见下图。对于不能确定归属的文件及文件夹,程序将它们统一放到一个叫做丢失的文件的内存文件夹中。如果在原位置找不到要恢复的文件,可以尝试在丢失的文件文件夹中查找文件。恢复后查找文件时不要忘了这个文件夹,很可能要恢复的重要文件就在这里。在恢复文件的状态下,文件列表中的谨搏掘属性栏将给已删除文件增加两个标记D和X。D表示这是一个已删除的文件。X表示这个文件的数据可能已被部分或全部覆盖,文件数据完全恢复的可能性较小。为方便用户识别搜索到的文件,可以让程序同时显示未删除的正常文件,方法是点击查看 – 显示正常文件菜单项。正常文件没有复选框,不可选择。要恢复搜索到的文件,请通过复选框选择要恢复的文件。然后在文件列表中点击鼠标右键,或打开文件主菜单,选择复制到菜单项。接下来选择存放恢复后文件的文件夹,点击确定按钮,程序会将当前选择的文件复制到指定的文件夹中,硬盘数据恢复。为防止复制操作对正在恢复的分区造成二次破坏,本软件不允许将文件恢复到原分区。点击完成按钮,关闭文件复制对话框,程序自动清除已复制的文件的选择状态。以准备选择其它文件,绍兴硬盘数据恢复。当所有要恢复的文件都复制出来后。可以通过分区 – 重新加载当前分区菜单项释放当前分区在内存中的暂存数据,并从磁盘加载当前分区,显示分区的当前状态。二、格式化后的文件恢复:在恢复文件对话框中,选择误格式化后的文件恢复。然后选择格式化前的文件系统类型。如果记不清格式化前的文件系统类型了,可以分别按FAT32、NTFS恢复尝试。 对于FAT32、FAT16、FAT12等文件系统格式,还要指定分配单元(簇)大小,如果以前在格式化时没有指定过簇大小,此时选择默认值即可。 对于NTFS文件系统格式,本程序会自动判断格式化前的簇大小,不必单独指定。 设置好这些选项后,就可以点击开始按钮以开始搜索过程了。格式化后的文件恢复搜索时间较长。接下来的操作步骤和已删除文件的恢复过程相同。参照上面的方法选择与复制文件即可。关于恢复成功率:已删除文件的恢复技术是通过搜索文件删除后在磁盘上留下的残余信息、经过一定地技术分析而实现的。本软件尝试通过各种先进技术及精准算法复原文件信息,友翔硬盘数据恢复中心关注“易我数据恢复” 4,以最大限度地提高文件恢复的成功率。但这种技术可能会受到一些因素的制约,如磁盘碎片的影响、用户创建文件的方式、文件删除后的其它操作造成数据被覆盖等等。无法保证文件恢复能够100%成功。特别是FAT32文件系统,由于文件删除后的残余信息比较少,加之磁盘碎片的影响,一般来讲,恢复的成功率要比NTFS系统低。对于NTFS系统上的文件,只要是直接删除的(未移动到回收站)并且文件数据没有被覆盖,成功率甚至可以接近或达到100%。关于回收站:根据Windows系统对回收站的功能设计,为防止回收站里的文件出现重名的情况,被移动到回收站的文件(或文件夹,但不包括文件夹中的文件)都会被重新命名(命名格式:'D'+'盘符'+编号+原扩展名)。文件的原名、路径、删除时间等信息则保存到一个名为"INF02"的文件中。清空回收站时,所有这些被重命名的文件都被删除,"INF02"文件被清空,文件的原路径及名称信息丢失。因此,对于回收站被清空的情况,本软件能够搜索到的是这些从回收站删除的、并已被重新命名的文件。由于原路径及名称信息丢失,无法恢复原路径及文件名。要恢复这样的文件,请在名为"RECYCLE"的文件夹下查找,可根据扩展名及文件大小确认文件。由于文件夹内的文件没有被重新命名,所以可以根据文件夹内的文件来确认文件夹是不是要恢复的。
❹ 高分:sql server 2005数据库分离时丢失了,就是.mdf和.ldf不见了,有人能帮我恢复吗
分离不可能丢失了,数据库在猛汪哪个地方你要自己找到,如果是真的丢失了,你搞了备份还可能恢复,如果燃知巧你没搞备份,就恢复不回来了!建议你下载一个恢复删除文件的软件皮键试试!(因为mdf和ldf原先肯定在硬盘上面,分离发生意外导致文件不见了肯定可以通过软件恢复回来,数据库能不能用先放一边)
❺ sql数据库丢失只有ldf文件请问有办法恢复吗
数据库文件损坏的时候利用日志恢复 1 建一个测试数据库test(数据库类型为完全) 2 建一个表,插入点记录 create table a(c1 varchar(2)) go insert into a values('aa') go insert into a values('bb') go 3 作完全备份,到文件test_1.bak 4 在作一点修改 insert into a values('cc') go create table b(c1 int) go insert into b values(1) go insert into b values(2) go 5 shutdown 数据库服务器 6 用ultraedit编辑数据库文件test_data.mdf,随便修改点字节内容 7 启动数据库,并且运行企业管理器,点开数据库,看到test变成灰色,而且显示置 疑。 8 运行isql -SLocalhost -Usa -P 1> backup log test TO DISK='D:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\t est_2.bak' WITH NO_TRUNCATE 2>go 已处理 2 页,这些页属于数据库 'test' 的文件 'TEST_Log'(位于文件 1 上)。 BACKUP LOG 操作成功地处理了 2 页,花费了 0.111 秒(0.087 MB/秒)。 9 进行恢复最老的完全备份 1> RESTORE DATABASE test FROM DISK='D:\Program Files\Microsoft SQL Server\MSSQL\ BACKUP\test_1.bak' WITH NORECOVERY 2> go 已处理 96 页,这些页属于数据库 'test' 的文件 'TEST_Data'(位于文件 1 上)。 已处理 1 页,这些页属于数据库 'test' 的文件 'TEST_Log'(位于文件 1 上)。 RESTORE DATABASE 操作成功地处理了 97 页,花费了 0.107 秒(7.368 MB/秒)。 10 恢复最近的日志 1> RESTORE LOG test FROM DISK='D:\Program Files\Microsoft SQL Server\MSSQL\BACKU P\test_2.bak' WITH RECOVERY 2> go 已处理 2 页,这些页属于数据库 'test' 的文件 'TEST_Log'(位于文件 1 上)。 RESTORE LOG 操作成功地处理了 2 页,花费了 0.056 秒(0.173 MB/秒)。 数据已经完全恢复了,可以使用了。 select * from a go select * from b go c1 —- aa bb cc 有老的备份的话 1 backup log db TO DISK='e:\db2.bak' WITH NO_TRUNCATE 2 恢复最老的完全备份 RESTORE DATABASE db FROM DISK='e:\db1.bak' WITH NORECOVERY 3 恢复最近的日志 RESTORE LOG db FROM DISK='e:\db2.bak' WITH RECOVERY
❻ MS-SQL2000 服务器重新启动就丢失了数据库
SQLSERVER的数据文件是mdf,日志文件是ldf,连这个都丢了猜饥,问题真够严重的!SQL服务器最多支持32767个数据库实例,现在才有8个,也不算多啊!不过,在发生问题之前,你有没有做过什么特别的事情?硬件方面有没有什槐渣么问题?有没有可能是人铅兆悄为因素?好好检查下数据库的配置!哎,没这方面的经验,真是爱莫能助啊!
❼ 只有*.mdf文件没有了*.ldf文件如何还原SQL库
A:1、天马行空这个问题前段我也遇见过,使用了上面各位仁兄介绍的方法根本没有用。后来我采取拆森的办法是:Use MasterGosp_configure 'allow updates', 1reconfigure with overrideGo然后update sysdatabases set status = 32768 where name = '<db_name'现在,重新建立一个log文件(我试过但无法成功,不知高手有何或仿方法)。先把SQL Server 重新启动一下,然后检查你的数据库吧。先设置成单用户模式,然后做dbccsp_dboption '<db_name', 'single user', 'true'DBCC CHECKDB('<db_name')把数据库状态改回去了,记得别忘了把系统表的修改选项关掉。update sysdatabases set status = 28 where name = '<db_name' –当然你的数据库状态可能不是这个,自己改为合适的值吧。也可以用sp_resetstatusgosp_configure 'allow updates', 0reconfigure with override如果无法成功创建日志文件,也没有关系,使用以上方法后,看是否已恢复数据库,应该能成功的。关闭SQL SERVER,然后重启,观察一下数据库状态是否正常,如果正常,一切万事大吉,如果数据库处于置疑状态。重新上面的步骤,注意将数据库名称更改为其他名字,恢复后不要关闭SQL SERVER,然后新建一个与原来数据库名称一样的数据库,然后耐心的将恢复得到的数据库中所有的表、视图、函数、存储过程(不包括系统内部的),复制到新建的数据库,要有耐心,特别要注意有相关性的表、视图、函数、存储过程等的复制先后次序,否则会复制失败的。上面的方法是万不得已才使用的。我在恢复公司内的数据库时,最后就是采用这种方法才最后成功的。希望对你有所帮助。2、天马行空我在上面已经讲过,如果重启后数据库状态为"置疑",可以重新运用你上面恢复数据库的办法,要使用其他的数据库名称,使数据库处于紧急处理状态(32768 )。然后,不要重启,新建一个数据库,名称是你原来的数据库名(linjudy)。最后,通过导入数据(在新数据库上)或导出数据(在恢复的数据库上)功能,进行两个数据库的数据复制,可以一次进行多个数据和视图的导入或导出,但要注意相关联的表或视图导入或导出的先后次序,否则会出错的。如果不知道哪些表或视图有关联,可以一部分一部分的进行,如果出错就缩小进行的范围,要有耐心。导入或导出函数和存储过程时,要选择导入或导出方法的第三项,在下一步,特别要注意不要选择相关性,否则很容易导致错误,你也应一部分一部分的进行,不要一次全部完成。我想这样一定可以解决你的问题的,这是我的亲身体验。3、各位问题解决了,我再次用了"天马行空"网友的方法,我先新建了linjudy数据库/将sql停止后覆盖了mdf文件并删除了ldf文件再使用如下方法操作Use MasterGosp_configure 'allow updates', 1reconfigure with overrideGoupdate sysdatabases set status = 32768 where name = 'linjudy'重启sql后在运行,发现linjudy数据库可以正常打开了,立即查看原有的数据有了,在新建了数据库导出所有表,成功。重启sql后linjudy库变为"紧急状态"但可以通过“导出数据”导出衫御纤数据至其它数据库。至此数据恢复成功,数据是否可以用我没有试。
❽ SQL数据库MDF文件正常,LDF文件损坏,怎么恢复
可以尝试使用覆盖法。新轮敏建另外一个数据库,然知敏后腊猛枝停止sql,再将mdf文件复制过去改名一样的,再启动sql。
❾ 附加数据库时bs_data.LDF文件找不到了,怎么办
新建一个同名数据库,即可以得到ba_data.ldf了脊慧,然后关闭数据库服务器,樱族答把.MDF文件替换过去。总之很容易就可以搞穗野定了。
❿ sql server 置疑 数据库mdf,ldf 文件都丢了
那只能用数据恢复软件恢复一下罩裂试试了。finaldata或easyrecovery建议用后者。数据文件丢失,会不会是误删除,一般物皮闭SQL如果不握蠢是人为操作的话,数据库不会丢的。