WEB开发网
开发学院数据库MSSQL Server 一次SQL Server 2000修复实践 阅读

一次SQL Server 2000修复实践

 2006-08-06 09:16:17 来源:WEB开发网   
核心提示: 用DBCC检查数据库的完整性DBCC CHECKDB('POS_DB') WITH ALL_ERRORMSGS和恢复之前的错误信息一致,没有改变,一次SQL Server 2000修复实践(5),--奇怪问题之2,SQLSERVER BACKUP 之前并不验证数据库的完整性

用DBCC检查数据库的完整性

DBCC CHECKDB('POS_DB') WITH ALL_ERRORMSGS

和恢复之前的错误信息一致,没有改变。

--奇怪问题之2,SQLSERVER BACKUP 之前并不验证数据库的完整性,数据库的全备份竟然是有问题的。气愤!!

看来只能通过工具修复数据库了(--在修改之前记录错误表的记录数,以便修复数据库后进行比较)。

在查询分析器中运行:

ALTER DATABASE POS_DB SET SINGL_USER

GO

DBCC CHECKDB('POS_DB',repair_allow_data_loss) WITH TABLOCK

GO

ALTER DATABASE POS_DB SET MULTI_USER

GO

CHECKDB 有3个参数:

REPAIR_ALLOW_DATA_LOSS

执行由 REPAIR_REBUILD 完成的所有修复,包括对行和页进行分配和取消分配以改正分配错误、结构行或页的错误,以及删除已损坏的文本对象。这些修复可能会导致一些数据丢失。修复操作可以在用户事务下完成以允许用户回滚所做的更改。如果回滚修复,则数据库仍会含有错误,应该从备份进行恢复。如果由于所提供修复等级的缘故遗漏某个错误的修复,则将遗漏任何取决于该修复的修复。修复完成后,备份数据库。

REPAIR_FAST 进行小的、不耗时的修复操作,如修复非聚集索引中的附加键。这些修复可以很快完成,并且不会有丢失数据的危险。

REPAIR_REBUILD 执行由 REPAIR_FAST 完成的所有修复,包括需要较长时间的修复(如重建索引)。执行这些修复时不会有丢失数据的危险。

第一次运行,我们会发现:

DBCC results for 'TABLE_NAME'.

There are 1 rows in 1 pages for object 'TABLE_NAME'.

The error has been repaired.

上一页  1 2 3 4 5 6 7  下一页

Tags:一次 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接