东莞精诚网络技术交流论坛

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 2667|回复: 0

sql 2005日志修复

[复制链接]
发表于 2008-10-27 11:33:31 | 显示全部楼层 |阅读模式
先说下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'
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|精诚网络 ( 粤ICP备13030199号 )

GMT+8, 2021-10-23 18:59 , Processed in 0.132581 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表