Sql server 2000 数据库置疑修复

日常使用中会碰到数据库置疑的情况,一般是由断电、非法关机、硬盘损坏造成的。

在数据库置疑或者修复的处理过程中,须先将文中的数据库更改为真实的数据库名称。数据库置疑修复处理完成后,需执行第二步骤使用DBCC语句对数据库进行检测并修复错误。

数据库置疑处理

对于损坏的数据库,可参照数据库修复处理方法进行处理。

步骤1:

停止SQL服务管理器,将原数据文件拷贝出来进行备份,然后将原数据库删除,使用思迅数据库安装程序创建一个新的数据库。

步骤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 = '置疑数据库名'
--Verify one row is updated before committing

commit tran

步骤5:

重建数据库日志文件,停止SQL然后重新启动SQL Server服务,然后运行如下命令:

DBCC TRACEON(3604)

DBCC REBUILD_LOG('db_name','C:ProgramFilesMicrosoft SQL ServerMSSQLData置疑数据库名_log.ldf')

Go

–注:此处的db_name一定要更换为需要修复的数据库名称,比如此实例中的”置疑数据库名“,路径为真实的数据库路径。

步骤6:

将数据库恢复为正常模式,停止SQL然后重新启动SQL Server服务,然后运行:

use master

update sysdatabases set status = 8 where name = '置疑数据库名'

Go

sp_configure 'allow updates', 0

reconfigure with override

Go

步骤7:

运行dbcc checkdb(置疑数据库名) 检查数据库的完整性

检查完成后,如有报错,需要继续进行数据库修复。

数据库修复

本语句可以多次执行,一直到没有红色文字出现,则修复成功。

请在查询分析器中执行下列语句,执行前断开其它所有数据库连接,最好是断开网线。

USE master
Go

//进入单用户模式
EXEC sp_dboption '置疑数据库名', 'single user', 'TRUE'
go

//数据库检查
DBCC CHECKDB ('置疑数据库名')
Go
//如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复

//数据库修复
DBCC CHECKDB ('置疑数据库名',repair_rebuild)
Go

//再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;
DBCC CHECKDB ('置疑数据库名')
Go
//否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。

//退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption '置疑数据库名', 'single user','FALSE'
Go

数据库索引修复

损坏后的数据库在通过以上语句修复数据库完后,一般都伴随着索引的损坏。所以务必在数据库修复完后,执行以下语句修复索引。

use '置疑数据库名'--可改成相应的数据库名
go
declare @tablename varchar(100)
declare  test_cur cursor for
select object_name(id) from syscolumns 
where status=128
open test_cur
fetch test_cur into @tablename
while @@fetch_status=0
begin   
   DBCC CHECKIDENT (@tablename, RESEED)   
   fetch test_cur into @tablename
end
close test_cur
deallocate test_cur
go
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,如若转载,请注明出处。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
搜索