【问】sql2005数据库中丢失ldf文件导致无法使用

【问题描述】

sql2005数据库中丢失ldf文件导致无法使用,如何修复?

【答】

下列回复已专卖9为例

步骤1:


创建一个新的数据库,命名为原来数据库的名字。

步骤2:

停止SQL Server:net stop mssqlserver

步骤3:

把老数据库的MDF文件替换新数据库的相应的MDF文件,并把LDF文件删除。

步骤4:

重新启动SQL Server服务,net start mssqlserver 然后运行如下命令:

use master
 
go
 
alter database isszmv9 set emergency
go
--置数据库为单用户模式
alter database isszmv9 set single_user with rollback immediate
go
--重建数据库日志文件,注意filename 为当前数据库mdf文件存放路径,如不同,请修改
alter database isszmv9 Rebuild Log on (name=isszmv9_log,filename='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\isszmv9_log.ldf')
go
--最后设置数据库为多用户模式。
alter database isszmv9 set multi_user
通过以上方法修复数据库后,可以dbcc checkdb一下数据库,如果发现页级错误,可以通过以下命令修复。
这两个命令要在单用户的情况下使用
go

--步骤5:修复索引
declare @tablename varchar(100)
declare  test_cur cursor for
select object_name(id) from sysobjects 
where type ='U'
open test_cur
fetch test_cur into @tablename
while @@fetch_status=0
begin   
   DBCC DBREINDEX(@tablename)
   fetch test_cur into @tablename
end
close test_cur
deallocate test_cur
go

猜你喜欢

转载自blog.csdn.net/szlixiaolong/article/details/109199649