只有mdf文件和ldf文件,怎么恢复数据库

只有mdf文件和ldf文件,怎么恢复数据库,第1张

1、把mdf文件和ldf文件拷贝到数据库的默认路径C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA里;

2、在sqlserver里新建个查询,执行下面代码;

1 USE master

2 GO

3 CREATE DATABASE NewFile

4 ON (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\File.mdf'),

5 (FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\File_log.ldf')

6 FOR ATTACH

7 GO

3、刷新数据库,就出现了新的数据库NewFile;

根据mdf文件和ldf文件还原成功,就这么简单。我用的是sqlserver2008

在sql

server

2005

数据库中,一次误 *** 作,分离数据库后,直接将日志文件删除掉了,后进行附加出错,无法附加上去,经过如下解决方案,数据库附加成功, *** 作如下:

第一步:先建立一个同名数据库,停止sql

server2005,将原来的.mdf数据库文件覆盖刚新建的.mdf数据库文件,重新启动数据库。

第三步:在查询分析器中运行如下代码:

alter

database

你的.mdf文件名

set

emergency

'--将数据库设置为紧急状态use

masterdeclare

@databasename

varchar(255)

set

@databasename='你的.mdf文件名'

'--你的.mdf文件文件名

exec

sp_dboption

@databasename,

n'single',

n'true'

--将目标数据库置为单用户状态

dbcc

checkdb(@databasename,repair_allow_data_loss)

dbcc

checkdb(@databasename,repair_rebuild)

exec

sp_dboption

@databasename,

n'single',

n'false'--将目标数据库置为多用户状态

1、开启数据库

2、从企业管理器,建一个同名的数据库

3、停止sql

server

4、用原mdf文件覆盖新建库的数据库文件

5、重启sql

server(这时数据库应该是置疑)

6、修改服务器设置:允许对系统目录进行直接修改

sp_configure

'allow

updates',1

reconfigure

with

override

7、将数据库置为紧急状态:

update

master.dbo.sysdatabases

set

status

=

32768

where

name

=

'数据库名'

8、删除新的ldf文件,重建日志:

dbcc

rebuild_log('数据库名',

'f:\数据库名_log_new.ldf')--假设把新日志在f盘

9、update

master.dbo.sysdatabases

set

status

=

16

where

name

=

'数据库名'

10、修改服务器设置:取消

允许对系统目录进行直接修改

sp_configure

'allow

updates',

0

reconfigure

with

override

11、再使用检查工具修复错误

use

[数据库名]

alter

database

[数据库名]

set

single_user

with

rollback

immediate

dbcc

checkdb

('数据库名',REPAIR_ALLOW_DATA_LOSS)

alter

database

[数据库名]

set

multi_user

执行完毕之后,如果还有错误,重复执行11,直到没有错误为止。


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

原文地址:https://www.54852.com/sjk/9970836.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存