恢复单个mdf文件

在做仓库作业的时候,遇到了一些比较特殊的情况,sql server2005中没有传统sql server附带的两个实例数据库,pubs和northwnd,在附加sql server2k的mdf的时候遇到了一些麻烦,系统会提示ldf文件丢失,通常回复单个mdf文件有以下几种办法:

2k:

对SQL中的日志文件不慎删除后,附加MDF文件,提示LDF文件有问题,导致MDF无法附加的情况,错误提示是

未能打开新数据库 'smartcard'。CREATE DATABASE将终止
日志文件 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\smartcard_log.ldf' 与主文件不匹配,可能该文件来自另一个数据库,也可能重建过该日志。

一种解决办法是:

1、把需要附加的数据库的MDF文件改名;

2、建一个相同的数据库。库文件名称为要附加的数据库名。

3、打开服务管理器(通常情况下应该在托盘),停止服务

3、将新建的数据库文件的MDF文件删掉,并将原有的数据库mdf文件该为原来的名字

4、重启sql server服务 ,此时数据库变为置疑状态

5、执行以下语句:

sp_configure 'allow updates', 1 reconfigure with override
update sysdatabases set status='32768' where name='northwnd'
DBCC rebuild_log ('northwnd','日志路径\northwnd')
update sysdatabases set status='0' where name='northwnd'
sp_configure 'allow updates', 0 reconfigure with override

重置数据库异常状态命令
[code]
sp_resetstatus 'database_name'
[/code]
到此时,表面上数据库没有什么问题了,实际上此时数据库处于回避恢复模式。

新建一数据库,将原来的数据导入到新建的数据库中,完毕后将原来的数据库删除,新建,

然后将数据重新导入,就行了。

需要注意的是,SQL在进行数据导入导出的时候,原始表的主建信息会丢掉,所以需要注意以下。

2K5:

2k5已经不再提供操作sysdatabases的办法了,所以用allow updates也没有什么用,但是仍然提供了一下的方法:


EXEC sp_attach_single_file_db @dbname = 'northwnd',
@physname = 'e:\northwnd.mdf'


同样可以附加数据库上去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值