关键词不能为空

当前您在: 主页 > 英语 >

DBCC DBREINDEX Sql数据库表修复

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-07 10:19
tags:

-

2021年2月7日发(作者:weak)






寒山


sql


数据库修复中心



/






MS Sql Server


数据库或表修复



数据库或表修复


(DBCC CHECKDB)






MS


Sql


Server


提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时


可以尝



试这些修复命令。



1. DBCC CHECKDB


重启服务器后,

< p>
在没有进行任何操作的情况下,




SQL


查询分析器中执行以下



SQL


进行



数据库的修复,修复数据库存在的一致性错误与


分配错误。







use master declare @databasename varchar(255) set @databasename='


需要修复的数据 库


实体的名称


'


exec


sp_dboption


@databasename,


N'single',


N'true'

--


将目标数据库置为单用户





dbcc


checkdb(@da tabasename,REPAIR_ALLOW_DATA_LOSS)


dbcc


checkdb(@databasename,REPAIR_REBUILD)


exec


sp_dboption


@databasename,


N'single',


N'false'--


将目标数据库置为多用户状态



然后执行



DBCC


CHECKDB('


需要修复的数据库实体的


名称


')


检查数据库是否仍旧存在错误。



注意 :


修复后可能会造成部分数据的丢失。



2. DBCC


CHECKTABLE


如果



DBCC CHECKDB


检查仍旧存在错误,


可以使用



DBCC CHECKTABLE


来修复。



use


需要修复的数据库实体的名称



declare


@dbname


varchar(255)


set


@dbname='


需要修复


的数据库的名称

< br>'


exec


sp_dboption


@dbname,'single


user','true'


dbcc


checktable('


需要修复的







',REPAIR_ALL OW_DA


TA_LOSS)


dbcc

checktable('













',REPAIR_REBUILD) ------


把’



需要修复的数据表的名称’更改为执行



DBCC CHECKDB


时报错


的数据表的名称



exec sp_dboption @dbname,'single user','false' 3.


其他的一些常用的修复命




DBCC


DBREINDEX


重建指定数据库中表的一个或多个索引



用法:


DBCC


DBREINDEX


(




,




)


修复此表所有的索引。







=== ================================







SQL


SERVER


数据库的检测及修复方法



随着



K/3


产品的推广,



要求客户服务人员对



SQL


SERVER


数据库的了解也进一步提高。



K/3




的使用过程中,数据库文件被频繁 地使


用,由于某些原因,数据库有可能被损坏,本文将针对这



种情况的数据库检测及修复方法


做一简单讲解。



希望各位在实际工作过程中有新的发现时,



及时



给我们提供信息,以便


做进一步的更新。



1.1


SQL


SERVER


数据库的检测



SQL


SERVER


提供了数据库检测的命令,


可用



DBCC CHECKDB


对数据库中各个对象的分配



及结构的 正确性进行检测,


并可通过一参


数控制,将所有的错误信息显示 出来。其语法如下:



DBCC


CHECKDB


('database_name'


[,NOINDEX


|


{


REPAIR_ALLOW_DATA_LOSS


|


REPAIR_FAST


|


REPAIR_REBUILD


}]


)


[WITH


{ALL_ERRORMSGS


|


NO_INFOMSGS}]


参数说明:



'database_n ame'


代表被检测的数据库实体


名;



NOINDEX


指非系统表的非聚族索引不检测;



REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST|


REPAIR_REBUILD


指直接修复发现的



错误,其中



REPAIR_ALLOW_DATA_LOSS


代表,若此 错


误不能修复时,系统将直接删除相



关数据。带此三个参数的任一个时,数据库必须处于单


用户模式,可在

< br>


Enterprise


Manager


中的数据库属性中设置;



ALL_ERRORMSGS


代表将检


测到的错误信息全


部显示出来




否则,



对于每张表


最多只显示



200


条错


误信息;



NO_INFOMSGS


代表隐藏所有的信息及占用空间的报告。



经过检测,



对于错误的对象,






OBJECT ID


的形式报告具体出错的信息,



可根据



OBJECT ID


到系统表



sysobjects


中查找


到相关的表,即



NAME








1.2 SQL SERVER


问题数据库的修复


< br>经过数据库检测后,可针对出现的问题采取相应的


措施进行处理。


如通过检测后,


发现对象的物



理存放存在问题,


可用



DBCC CHECKALLOC







:< /p>



DBCC


CHECKALLOC


('database_name'


|


REPAIR_REBUILD


}]


)


[WITH


{ALL_ERRORMSGS | NO_INFOMSGS}]


若是非系统对象的索引出错,则可用



DBCC DBREINDEX


进行修复:



DBCC DBREINDEX ( [ '_name' [, index_name


[, fillfactor ]


] ] )


[WITH


NO_INFOMSGS]













使




DBCC

-


-


-


-


-


-


-


-



本文更新与2021-02-07 10:19,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/607964.html

DBCC DBREINDEX Sql数据库表修复的相关文章