首页 > 我的文章 > 正文

SQL数据库置疑及修复
2013-12-23 20:26:17   来源:   评论:0 点击:

【你一定是删除了附件的ldf文件!】在数据库置疑或者修复的处理过程中,须先将文中的数据库更改为真实的数据库名称 数据库置疑修复处理完成后,需执行第二步骤,使用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 = 'scpos'

--Verify one row is updated before committing

commit tran

步骤5:

停止SQL然后重新启动SQL Server服务,然后运行如下命令:




DBCC TRACEON(3604)

DBCC REBUILD_LOG('db_name','C:\ProgramFiles\Microsoft SQL Server\MSSQL\Data\scpos_log.ldf')
Go
--注:此处的db_name一定要更换为需要修复的数据库名称,比如此实例中的scpos


步骤6:

停止SQL然后重新启动SQL Server服务,然后运行:

use master

update sysdatabases set status = 8 where name = 'scpos'

Go

sp_configure 'allow updates', 0

reconfigure with override

Go

步骤7:

运行dbcc checkdb(scpos) 检查数据库的完整性













?    数据库修复
/*****************************************************************
* 本语句可以多次执行,一直到没有红色文字出现,则修复成功
* 这类故障是一般是由于磁盘读写问题造成的。
* 'scpos'代表要修复的数据库
* 下面的语句是修复总部数据库的SQL,如需要修复分部的数据库,请将 'scpos' 改为 'scpos_branch'
******************************************************************/
--请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线

USE master
Go
--单用户模式
EXEC sp_dboption 'scpos', 'single user', 'TRUE'
go
--数据库检查
DBCC CHECKDB ('scpos')
Go
--如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
--数据库修复
DBCC CHECKDB ('scpos',repair_rebuild)
Go
--再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;
DBCC CHECKDB ('scpos')
Go
--否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。
--如果还有错误未修复,


--退出前请一定要执行以下语句返回到多用户模式
EXEC sp_dboption 'scpos', 'single user','FALSE'
go

附上scpos数据库解决代码

Use Master
Go
sp_configure 'allow updates', 1
reconfigure with override
Go
begin tran
update sysdatabases set status = 32768 where name = 'scpos'
--Verify one row is updated before committing
commit tran

 

DBCC TRACEON(3604)
DBCC REBUILD_LOG('scpos','D:\scposdata\scpos_log.ldf')
Go


use master
update sysdatabases set status = 8 where name = 'scpos'
Go
sp_configure 'allow updates', 0
reconfigure with override
Go


dbcc checkdb(scpos)


相关热词搜索:SQL 数据库 置疑

上一篇:TP-Link无线路由器的快速设置
下一篇:清除GRUB/修复MBR 【Linux分区】

分享到: 收藏
评论排行