mssqlserver怎么恢复ldf文件数据

简单的来说,MDF文件是SQL server用来存放数据的数据库文件;LDF文件SQL server是日志文件,存放了对数据库进行的所有操作信息。

我们重要的数据是存放在MDF文件中的,如果LDF文件丢失,MDF文件没有丢失,那么数据也可以还原。如果LDF文件没有丢失,MDF文件丢失,且LDF文件是完整的,也是可以提供一定手段还原数据。

现象描述
我们现在要面对的问题是,针对wtlog_2008_m12这个数据库,只有MDF文件而LDF文件丢失了,SQL Server Management Studio中也没有这个数据库,附加上也会提示错误。

解决方法
(1)在SQL Server Management Studio删除状态为Recovery Pending的(即丢失了LDF的)问题数据库(如果有的话,应该是在数据库管理中没有的)

(2)重命名老的MDF文件. 比如改为wtlog_2008_m12_bak.mdf

(3) 重建一个新的数据库, 名字跟丢失的数据库完全一样,比如为wtlog_2008_m12,LDF文件的名字如果为wtlog_2008_m12的话,数据库提示报错,说逻辑名字已存在,但文件怎么也找不到,此处的LDF的文件命名为wtlog_2008_m12_log。 注意, 新的MDF的位置跟我们老的MDF的文件的位置相同. 这里的LDF文件的位置选在你想要存放的最终位置上(这个就是你所要的被恢复的LDF文件了).

(4)关闭SQL Server服务,将新的MDF(wtlog_2008_m12.mdf)重命名掉(比如改为wtlog_2008_m12___.mdf), 老的MDF(wtlog_2008_m12_bak.mdf)命名回原来的名字(wtlog_2008_m12.mdf).

(5)开启SQL Server服务,连接数据库,执行下面语句,如果报错的话,请查看是否连接上数据库,或者有其他进程连着数据库。

 代码如下 复制代码
alter database wtlog_2008_m12 set emergency
 alter database wtlog_2008_m12 set single_user with rollback immediate
 alter database wtlog_2008_m12 rebuild log on (name=wtlog_2008_m12, filename='D:/watcher/database/wtlog_2008_m12.ldf')
 alter database wtlog_2008_m12 SET MULTI_USER with rollback immediate

(6)此时,mdf和ldf的名字都为wtlog_2008_m12,删除多余的mdf文件即可。

本文参考了网络上的资料,但我忘记记录从哪记录的了。

时间: 2024-10-22 01:11:46

mssqlserver怎么恢复ldf文件数据的相关文章

mssqlserver恢复ldf文件数据的方法_MsSql

我们重要的数据是存放在MDF文件中的,如果LDF文件丢失,MDF文件没有丢失,那么数据也可以还原.如果LDF文件没有丢失,MDF文件丢失,且LDF文件是完整的,也是可以提供一定手段还原数据.现象描述我们现在要面对的问题是,针对wtlog_2008_m12这个数据库,只有MDF文件而LDF文件丢失了,SQL Server Management Studio中也没有这个数据库,附加上也会提示错误.解决方法(1)在SQL Server Management Studio删除状态为Recovery Pe

mssqlserver恢复ldf文件数据的方法

我们重要的数据是存放在MDF文件中的,如果LDF文件丢失,MDF文件没有丢失,那么数据也可以还原.如果LDF文件没有丢失,MDF文件丢失,且LDF文件是完整的,也是可以提供一定手段还原数据. 现象描述 我们现在要面对的问题是,针对wtlog_2008_m12这个数据库,只有MDF文件而LDF文件丢失了,SQL Server Management Studio中也没有这个数据库,附加上也会提示错误. 解决方法 (1)在SQL Server Management Studio删除状态为Recover

数据库误删 数据恢复-数据库不小心误删了data(ndf)文件,只有mdf文件盒ldf文件,怎样才能恢复数据?

问题描述 数据库不小心误删了data(ndf)文件,只有mdf文件盒ldf文件,怎样才能恢复数据? 在操作数据库SQL server2000的时候,不小心删除了数据库,最后只找到了mdf和ldf文件,其中的data文件缺失了.现在在用mdf文件附加数据库的时候,提示缺少这些文件.问有什么办法可以恢复存储在mdf中的数据吗? 解决方案 恭喜你 不花钱的话没法恢复

建立STANDBY数据库时在ASM上恢复主库的数据文件出现ORA-15173错误

建立STANDBY数据库时,在ASM上恢复主库的数据文件出现了ORA-15173错误. 主库和备库都是单实例数据库,不过都使用ASM作为存储方式. 在备库上利用主库的备份进行restore database操作,碰到了这个错误: [oracle@localhost data]$ rman target / Recovery Manager: Release 10.2.0.3.0 - Production on Sat Feb 12 14:43:29 2011 Copyright (c) 1982

OS X系统下彻底删除硬盘文件数据的方法,恢复软件也无法复原

  曾艳照门搞得人们对数据安全都很紧张,就算删除+清空回收站,文件和数据依然可以被恢复.因为数据仍在硬盘上,只是被打上了标记:"嘿,操作系统,这个地方 有数据,但你可以写新的文件覆盖它".数据恢复软件就钻了这个孔子---无视那个标记,直接读出已被删除的文件.下面介绍一个Mac OS X操作系统下,彻底删除苹果电脑硬盘文件数据的方法,恢复软件也无法复原. 进入"Finder--应用程序--实用工具--磁盘工具",选中你要"彻底"抹掉的磁盘分区 然后

在open状态下恢复丢失的数据文件

    在open状态下恢复丢失的数据文件,这个实验比较简单,要注意数据库必须1)数据库必须是归档状态2)数据库在数据文件丢失前做过全备份 .次实验模拟test.dbf 意外丢失. 一 实验前的准备.建立一个名为yang的表,插入数据,并提交.归档日志. SQL> conn system/yang as sysdba已连接.SQL> create table yang (num number) tablespace test; 表已创建. SQL> insert into yang va

恢复整个SQL server数据库还是只恢复错误文件组

这有一个具体例子:如果你有一个单个的出现问题的文件.这个文件有50MB大小,而你的整个数据库 运行着大约有几十亿的字节,这样的话如果能恢复单个失败文件的话就显的非常有意义.这样的事情发生 的一个情景是当文件或者文件组在单独的驱动器上,而驱动器出现了问题.通常,仅仅恢复单个文件或者 文件组会使总的停止时间缩短,因为它明显减少了需要恢复的总的数据量. 现在,为什么你不选择这么做呢?这有一些原因: 你需要有事务日志备份.如果你想从备份中恢复一个文件或者文件组,你同时也需要恢复与它们一起 创建的事务记录

使用热备份进行分时恢复----怎样通过归档逐步恢复以缩短数据迁移时间

备份|恢复|热备份|数据 使用热备份进行分时恢复 ----怎样通过归档逐步恢复以缩短数据迁移时间 Last Updated: Monday, 2004-11-15 10:32 Eygle         很多时候你可能遇到这样的情况:一个大型数据库的迁移,但是只有很少的停机时间,这看起来充满困难.可是我们可以通过各种方法来缩短停机时间. 本例适用于同平台.同版本数据库迁移. 在此情况下,我们可以通过一个热备份,应用归档恢复数据库到一个一致的状态,此时数据库可以被只读(read only)打开.之

如何使用bbed恢复update的数据

使用bbed不仅仅可以找回已经delete的数据还可以恢复update的数据,当然过程要比恢复delete的数据复杂一些. 实验过程如下: SYS@ORCL>create table bbed_test(x int,y varchar2(20)); Table created. SYS@ORCL>insert into bbed_test values(1,'BADLY9'); 1 row created. SYS@ORCL>insert into bbed_test values(2,