误删了SQL2008数据库文件,用硬盘数据恢复工具提取出了mdf和ldf文件,但是无法附加使用了,怎么解决呢

误删了SQL2008数据库文件,用硬盘数据恢复工具提取出了mdf和ldf文件,但是无法附加使用了,怎么解决呢,第1张

修复这两种文件数据库,可以试一下如下方法,我在日常维护工作,经常用以下方法,还真的蛮好用的1)用语句将要修复的数据库置为单用户语句如下: sp_dboption '要修复的数据名', 'single user', 'true'2)修复数据库,运行如下语句:DBCC CHECKDB('要修复的数据名' , REPAIR_ALLOW_DATA_LOSS )直至不出错将数据库取消单用户模式,语句如下:sp_dboption '要修复的数据名', 'single user', 'false' 注意:所有运行的数据库都连接master!

1 首先确认已经备份了mdf和ldf文件。

2 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。

3 用原有的mdf和ldf文件覆盖新建数据库对应的mdf和ldf文件。

4 重新启动SQL Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。(人品好的话,这个时候数据库就已经恢复正常了,上次xrf的数据库就是这样被我恢复的。人品不好的话,下面的步骤也不行,我有一次就是找了一个北京做数据恢复的公司才恢复完毕。)

5 在SQL查询分析器中执行以下命令,以允许更新系统表:use mastergosp_configure ‘allow updates’,1

reconfigure with overridego

6 将这个数据库置为紧急模式:

update sysdatabases set status = 32768 where name = 'db_name'go

7 使用DBCC CHECKDB命令检查数据库中的错误:

DBCC CHECKDB(‘db_name’)GO

8 如果DBCC CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:

sp_dboption 'db_name',’single user’,’true’

DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)GO如果在执行DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQL Server服务,然后继续尝试。

9 如果DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:

重新执行DBCC CHECKDB(‘db_name’)命令,确认数据库中已没有错误存在。

清除数据库的置疑状态:sp_resetstatus 'db_name'

清除数据库的单用户模式状态:sp_dboption 'db_name',’single user’,’false’

重新启动SQL Server服务,如果一切正常的话,则数据库已经成功恢复。

10 如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。

如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:

1 在SQL Server中新建一个同名的数据库,然后停止SQL Server服务。

2 用原有的ldf文件覆盖新建数据库对应的mdf文件,将其日志文件(ldf)删除。

3 启动SQL Server服务,并将数据库置为紧急模式(同上: 步骤5和步骤6)。

4 停止并重新启动SQL Server服务。

5 执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)

DBCC REBUILD_LOG(’cas_db’, 'D:\cas_db\cas_db_LogLDF')

6 重新将该数据库置为单用户模式。

事务日志文件没了,完全可以附加mdf文件。附加主数据库文件时,在附加数据库窗口的下面的窗口

“你要附加数据库名”数据库详细信息中,显示了你要附加的主数据库和ldf文件的详细信息,其中mdf文件正常,ldf文件消息显示找不到。然后选中ldf这项点下右下角的删除(注意界面上有两个删除,一定要选上面快捷键为“M”的那个删除键),这样的话,你附加mdf时就会自动生成ldf文件的。

SQL Server 系统数据库在安装软件时自动创建,用于协助系统共同完成对数据库的 *** 作;也是数据库运行的基础;

1,master数据库

是SQL Server 2012的核心数据库,如果损坏则数据库软件无法运行,主要包含如下主要信息:

1)所有用户登陆名和用户ID所属角色

2)数据库存储路径

3)服务器中数据库的名称和相关信息

4)系统配置设置, SQL Server 初始化信息

2,model数据库

在创建数据库时,总是以一套预定义的标准为模板进行创建的。以model数据库为模板来创建其他数据库。且model数据库是tempdb数据库的基础。

3,tempdb数据库

它是一个临时数据库,用来存储用户建立的临时表和临时存储过程,存储用户定义的全局变量值。它存在于SQL Server会话期间,会话结束,则关闭tempdb数据库,且数据库丢失。

4,msdb数据库

用于代理计划警报和作业

SQL Server 数据库存储文件

数据库文件是由数据文件和事务日志文件组成。

1,数据库文件指数据库中用来存储数据库数据和数据库对象的文件,一个数据库只能由一个主数据库文件,扩展名为 mdf

2, 次数据库文件包含除主数据库文件外的所有数据文件,一个数据库可以没有次数据库文件,也可以由多个,扩展名为 ndf

3, 日志文件由一系列日志记录组成,它记录了存储数据库的更新情况等事务日志信息,用户对数据库进行的插入,删除,更新都会记录在日志文件中。数据库发生损坏时可根据日志文件分析出错原因,或者数据丢失时,使用事务日志恢复数据库。每个数据库至少要有一个日志文件。

SQL Server 数据库创建,使用T-SQL语言创建:

使用T-SQL语言删除数据库:

SQL Server 数据库迁移:

方法1:“分离/附加”数据库,即把数据库文件(MDF)和对应的日志文件(LDF)拷贝到其它磁盘上作备份,然后把这两个文件再拷贝到任何需要这个数据库的系统之中。

分离数据库就是将某个数据库从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(MDF)和对应的日志文件(LDF)完好无损。分离成功后,就可以把该数据库文件(MDF)和对应的日志文件(LDF)拷贝到其它磁盘中作为备份保存。

分离之前,设置数据库为单个用户,并记住该数据库所在路径。

“任务”—“分离”

然后分离数据库页面选中“更新统计信息”复选框。若“消息”列中没有显示存在活动连接,则“状态”列显示为“就绪”;否则显示“未就绪”,此时必须勾选“删除连接”列的复选框。分离后资源管理器中数据库消失

将需要附加的数据库文件和日志文件拷贝到某个已经创建好的文件夹中。

右击数据库对象,并在快捷菜单中选择“附加”命令,打开“附加数据库”窗口。

添加—选择需要附件的数据库的MDF文件。“附件为”数据库名称可修改。

首先说,你能删掉日志文件,肯定是把sqlserver服务进程关掉了,否则库在运行中是删不掉日志的

删掉再启动服务后,这个库应该会“置疑”了,可以试着在企业管理器中找找看,如果这个库名显示灰色,后面显示(置疑),试着先drop掉这个库,然后用企业管理器附加一下mdf文件,通常情况下正常的话,可以再生成一个ldf,也有附加失败的,那就得费点周折了,既然有备份的,那也好办,真附加不了的情况下,把库文件转移个位置,重新建一个同名库,然后恢复备份

以上就是关于误删了SQL2008数据库文件,用硬盘数据恢复工具提取出了mdf和ldf文件,但是无法附加使用了,怎么解决呢全部的内容,包括:误删了SQL2008数据库文件,用硬盘数据恢复工具提取出了mdf和ldf文件,但是无法附加使用了,怎么解决呢、如何将数据库文件ldf和mdf还原到数据库、我现在有一个主数据库mdf文件,日志文件丢失了,请各位大虾帮帮忙,怎样才能把这个数据库添加成功等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9388106.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存