sql2005下修复日志文件损坏的数据库的方法

本文提供了SQL Server 2000和2005两个版本的数据库修复方法。针对SQL2000,通过更新系统表来恢复数据库;而SQL2005则采用停止服务、备份文件、重建数据库等步骤进行修复,并使用特定命令进行数据恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说下sql 2000如何修复,以前好像有人发过了,重复一下:
 
注: 所有数据库部分都要替换成真实的数据库名字
步骤1:
创建一个新的数据库,命名为原来数据库的名字.
步骤2:
停止SQL Server
步骤3:
把老数据库的MDF文件替换新数据库的相应的MDF文件, 并把LDF文件删除
步骤4:
重新启动SQL Server 服务,然后运行如下命令:
Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
begin tran
update sysdatabases set status = 32768 where name = 'db_name'
commit tran
步骤5:
停止SQL然后重新启动SQL Server 服务,然后运行如下命令:
DBCC TRACEON (3604)
DBCC REBUILD_LOG('db_name','c:/mssql7/data/dbxxx_3.LDF')
Go
步骤6:
停止SQL然后重新启动SQL Server 服务,然后运行:
use master
update sysdatabases set status = 8 where name = 'db_name'
Go
sp_configure 'allow updates', 0
reconfigure with override
Go
步骤7:
运行dbcc checkdb(db_name)检查数据库的完整性.
 
但是,sql 2005由于安全性的考虑,已经无法再对系统表进行更新了,用户将不能再操作系统表!
 修复方法如下:
 
1、停止数据库服务。
2、将需要恢复的数据库文件复制到另外的位置。
3、启动数据库服务。
4、确认要恢复的数据库文件已经成功复制到另外的位置,然后在SQL Server Management Studio中删除要恢复的数据库。
5、新建同名的数据库(数据库文件名也要相同)。
6、停止数据库服务。
7、用第2步中备份的.mdf文件覆盖新数据库的同名文件。
8、启动数据库服务。
9、运行alter database dbname set emergency,将数据库设置为emergency mode
10、运行下面的命令就可以恢复数据库:
 
Title
   use master 
declare @databasename varchar(255
set @databasename='要恢复的数据库名称' 
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'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值