数据库置疑修复
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步骤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'
--Verify one row is updated before committing
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_configue 'allow updates', 0
reconfigure with override
Go
步骤7:
运行dbcc checkdb(db_name) 检查数据库的完整性
注:都要替换成真实的数据库名字。
s ql附加数据库时提示823错误
2008-12-26 09:10
朋友单位有台电脑的数据库ufdata_001_2008状态为置疑,我断开再附加时提示如下图所示说明,附加时失败,错误823。
原因分析:出现这种情况可能是由于电脑忽然断电或者异常关机造成的。
解决方法:在SQL企业管理器中,新建同名数据库ufdata_001_2008,
新建库后现有数据名称是ufdata_001_2008.mdf和
ufdata_001_2008_log.LDF;
停止数据库,把损坏的数据库文件ufdata.mdf和ufdata.LDF修改名称为ufdata_001_2008.mdf和ufdata_001_2008_log.LDF,并覆盖刚才新建数据库目录下的数据,同时删除ufdata_001_2008_log.LDF文件;
启动数据库服务,发现数据库名ufdata_001_2008后面有“置疑”字样;
打开SQL自带查询分析器,执行如下SQL语句:
use master
go
exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表的开关 */
go
update sysdatabases set status=32768 where
name='ufdata_001_2008' /* 设置数据库状态 */
go
DBCC REBUILD_LOG
('ufdata_001_2008','E:\ufdata\ufdata.LDF') /* 重建LDF文件 */
go
update sysdatabases set status=0 where
name='ufdata_001_2008' /* 重置数据库状态 */
go
restore database ufdata_001_2008 WITH
RECOVERY /* 恢复数据库 */
go
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭打开修改系统表的开关 */
执行以上语句后,ufdata_001_2008没有了置疑状态,数据可以正常读取了。