您的位置:   主页 > 技术文章

sqlserver 数据库置疑修复语句(seo)

时间:2011-05-20 09:30来源:青岛数据恢复 作者:青岛四通数据恢复 点击:167次

用来搜查一个数据库的逻辑不合性及物理不合性。斥地和应用中,一、数据库不合性检查工具(DatabasConsistenecich青岛数据恢复 href="http://www.raidst.com">青岛数据恢复ecker简称DBCCDBCC一个实用命令集。DBCC经常要使用的饬令。

数据库控制台命令语句被分为以下种别。

保护

对数据库、索引或文件组进行维护的使命。

杂项

如启用跟踪标识表记标帜或从内存中删除 DLL杂项任务。

消息

汇集并展现各种典范榜样消息的使命。

考证

对数据库、表、索引、目次、文件组或数据库页的分配执行的验证操纵。

DBCC饬令的格式如下

skip_ncindex]|dbccchecktabl表名|表标识([.

skip_ncindex]]|checkdb[数据库名[.

fix|nofix]]|checkalloc[数据库名[.

tablealloc{表名|表标识}

[{full|optim|fast|null}

fix|nofix]]]|[.

indexalloc{表名|表标识}索引标识

[{full|optimez|fast|null}

fix|nofix]]|[.

checkcatalog[数据库名)]|

dropdb|dbrepair数据库名.

reindex{表名|表标识}|

fix_text{表名|表标识)}

关于checktable,dbcc权限。fix_text和reindex缺省赋给表的属主,关于checkdb,checkalloccheckcatalog,dbrepairindexalloc和tablealloc缺省赋给数据库属主的DBO自动失掉DBCC命令和全部选项的权限。该权限不可转授。别的,dbcc数据库是行为时运行,除了dbrepair选项和带有fix选项的dbcccheckalloc以外。

checktabl选项

确保索引和数据页正确地连接,checktabl用来对一个指定的表做检查。索引按正确的顺序存储,所有指针的不合性,每页上数据信息的合理性,页偏移的合理性。如果日志段在本身的日记)设备上,对syslog表使用dbccchecktabl命令可以或许述说已使用的和剩余的日志空间,利用skip_ncindex选项使得dbccchecktabl跳过对用户表上非聚簇索引(nonclustindex查抄。缺省是搜查一切的索引。

DBCC语句操纵输入参数和返回值。一切 DBCC语句参数都可以接受 Unicod

和 DBCS字面值。

利用 DBCC功效集输出

很多 DBCC命令可以或许产生表格花式的输入(利用 WITHTA BLERESULTS选项)该动静可装载到表中以便将来利用。

例1.搜查日志利用的空间量和未用的空间量:

dbccchecktablsyslog

则会返回如下消息:若日志段在日志设备上。

SysLogDBCC成果。

工具 'SysLogs'37页中有 4361行。

请与系统管理员联系。DBCC执行结束。若是 DBCC输入了错误消息。

则会展现下列消息:若日志不在本身的设备上。

动静 2501级别 16状况 45第 1行

找不到名为 "syslogs"表或对象。请搜查系统目次。

checkdb选项

但它对一指定数据库中的每张表都做这样的查抄。若未指定数据库名,运转checkdb选项同checktabl查抄的内容信息一样。checkdb搜查当面的数据库。checkdb前往的消息,也同于checktabl

checkalloc选项

看其所有正确调配的页和尚未分配的页的环境。若未指定数据库名,checkalloc搜查指定数据库。则checkalloc搜查面前数据库。checkalloc会返回已分配的和使用的空间数目。checkalloc缺省模式为nofix要使用fix选项,必须把数据库置于单用户模式。

例:

dbcccheckallociccard13

 

总区数 =325已用页数 =2534保留页数 =2589此数据库中。

此数据库中(混同区数 =45混同页数 =349

CHECKA LLOC数据库 'IcCard13'中发现 0个分配错误和 0个不合性错误。

请与系统管理员联系。DBCC执行结束。若是 DBCC输入了错误消息。

tablealloc选项

也不能整理OA M页里没有列出的分配页上没有引用的扩大(extent如果没有指明范例,或使用了null则optim选项是缺省的设置。fast选项,并不生成分配陈述,但生成一个被引用但并没有在扩张里分配的页的计划外的陈述。fix|nofix选项决意tablealloc否清理表中发现的分配过错。对于一切的表,缺省为fix但系统表除外,缺省为nofix要对系统表使用fix选项,必须首先将数据库置成单用户模式。tablealloc搜查指定的表以确保所有页都被正确地分配。checkalloc缩小版本。对单张表进行相同的完整性检查。利用tablealloc可以或许生成三种类型的报表:full,optim和fastfull选项相当于表一级的checkalloc述说各种范例的分配过错。optim选项基于表的对象分配映像(OA M页里列出的分配页生成报告。并不报告。

indexalloc选项

确保一切的页都被正确地分配,indexalloc搜查指定的索引。checkalloc缩小版本,对单独一条索引指定异样的完整性检查。其中各选项与tablealloc不异。

checkcatalog选项

系统表之间的不合性。比方:确保在syscolumn表中的每一(数据)范例在systyp表中都有一个相匹配的记实;关于sysobject中的每个表和视图在syscolumn表中应有关于它每一列的描绘记实;确保在syslog中的最后一个检查点是有用的checkcatalog也述说任何已定义的段。若不指定数据库名,checkcatalog选项用于搜查系统表内。则搜查面前数据库。

dbrepair选项

dropdb选项是删除一个受破坏的数据库。受破坏的数据库是不能用dropdatabas命令删除的dropdatabas只能删除畸形的数据库,dbrepair数据库名。当执行dbrepair命令时,任何用户(包含执行此命令的用户)都不得操纵正被删除的数据库。该选项要在master库中运行。

reindex选项

SA 或表属主应该执行这一选项。此选项不能在用户界说的事务中运行。reindex选项通过运转dbccchecktablfast执行方式搜查用户表上索引的完整性。若是它检测出索引有成就则会删除着重建索引。SQLServer胪列顺序改变之后。

fix_text选项

fix_text选项用于升级文本值。SQLServer字符集由单字节转变为多字节字符集会使文本数据的管理更加庞杂。由于文本值可以或许较大足以覆盖几多页,SQLServer字符集由单字节转变为多字节后。SQLServer必须能处理(通过页约束)可以或许超过跨过页的字符。为做到这点,服务器需要在每一文本页上增加一些信息。SA 或表属主必须在文本数据的每一个表上运行dbccfix_text以计算所需要的新页数。

DBCC命令所返回的动静能准确地反映数据库及它各个工具的状况。总之。

二、DBBCC庇护语句:对数据库、索引或文件组进行维护的使命

1DBCCSHRINKDA TA BA SE--缩短全数数据库的数据文件与日志文件。

40--将此数据库收缩到仅剩下40%剩余空间。例:DBCCSHRINKDA TA BA SEadventureworks.

DBCCSHRINKDA TA BA SE:已跳过数据库 ID6文件 ID1因为该文件没有充足的可用空间可以或许收受接管。

请与系统管理员联系。DBCC执行结束。若是 DBCC输入了错误消息。

2DBCCSHRINKFILE--缩短指定的数据库文件或记录文件的巨细。文件存于sys.database_fil命令行

50--将指定的文件收缩到仅剩下50DBCCSHRINKFILE'A dventureWorks_log'.M

对象可从全数数据库到单个的数据表或是索引,3DBCCUPDA TEUSA GE--更正任何有效的命令行或页面计数。多用在数据库升级后的处理操纵。

如:DBCCUPDA TEUSA GE0

4DBCCCLEA NTA BLE回收删除的可变长度列和文本列的空间。

如:

useiccard13

go

log,DBCCCLEA NTA BLE0.0WITHNO_INFOMSGS

5DBCCINDEXDEFRA G指定表或视图的索引碎片清算。

6DBCCDBREINDEX对指定数据库中的表重新生成一个或多个索引。

7DBCCDROPCLEA NBUFFERS从缓冲池中删除所有清除缓冲区。

8DBCCFREEPROCCA CHE从过程缓存中删除所有元素。

三、DBBCC验证语句:对数据库、表、索引、目次、文件组或数据库页的分配执行的验证操纵

DBCCCHECKA LLOC搜查指定数据库的磁盘空间分配布局的不合性。

DBCCCHECKFILEGROUP搜查面前数据库中指定文件组中的所有表的分配和结构完整性。

DBCCCHECKCA TA LOG搜查指定数据库内的目录不合性。数据库必须联机。

如有需要,DBCCCHECKIDENT搜查指定表的面前标识值。则变更标识值。

DBCCCHECKCONSPA INTS搜查面前数据库中指定表上的指定束厄局促或所有约束的完整性。

DBCCCHECKTA BLE搜查组成表或索引视图的所有页和结构的完整性。

DBCCCHECKDB搜查指定数据库中所有对象的调配、结构和逻辑完整性。

四、DBBCC动静语句

DBCCSHOW_STA TISTICS展现指定表上的指定方针的面前披发统计消息。

DBCCINPUTBUFFER.展现从用户端发送到MicrosoftSQLServer2005实例的最后一个语句。

request_id][WITHNO_INFOMSGS]DBCCINPUTBUFFERsession_id[.

DBCCSHOWCONTIG.展现指定的表的数据和索引的碎片消息。

则展现与之有关的消息 DBCCOPENTDBCCINPUTBUFFERRA N若是在指定数据库内存在最早的行为事务和最早的漫衍式和非漫衍式复制事务。

DBCCSQLPERF.供给有关若何在所有数据库中操纵事务日志空间的统计消息。

CLEA R|'sys.dm_os_wait_stats',DBCCSQLPERFLOGSPA CE|'sys.dm_os_latch_stats'.CLEA R

[WITHNO_INFOMSGS]

request_id]DBCCOUTPUTBUFFER.以十六进制和 ASCII格式返回指定 session_id面前输出缓冲区。DBCCOUTPUTBUFFERsession_id[.

...n]][,DBCCPA CESTA TUS.展现跟踪标记的状况.DBCCPA CESTA TUS[[trace#[.][-1]]

DBCCPROCCA CHE.以表格格式展现有关过程缓存的消息。DBCCPROCCA CHE[WITHNO_INFOMSGS]

DBCCUSEROPTIONS返回面前毗连的举动(设置)SET选项。DBCCUSEROPTIONS

如启用跟踪标识表记标帜或从内存中删除 DLL五、DBBCC杂项语句:杂项任务。

DBCCHELP返回指定的DBCC饬令的语法消息。DBCCHELP'dbcc_statement'|@dbcc_statement_var|'?'[WITHNO_INFOMSGS]

DBCCdllnameFREE从内存中上载指定的扩张存储历程 DLLDBCCdllnameFREE[WITHNO_INFOMSGS]

...n][,DBCCDBREPA IR禁用指定的跟踪标识表记标帜。DBCCPA CEOFFtrace#[.-1][WITHNO_INFOMSGS]

...n][,DBCCPA CEON启用指定的跟踪标识表记标帜。DBCCPA CEONtrace#[.-1][WITHNO_INFOMSGS]

六、未公开的DBCC

DBCCERRLOG初始化SQL错误日记

DBCCBUFFER展现缓冲区头部和页面信息

DBCCFLUSHPROCINDB清楚数据库服务器内存中的某个数据库存储历程的缓存内容。

DBCCDBINFO展现数据库功效消息

DBCCDA TA BLE展现管理数据库的表信息

DBCIND查抄某个索引利用的页面消息。

DBCCREBULDLOG

重建修复SQL数据库事物日志文件。

DBCCLOG查抄某个数据库的事务日志消息

DBCCPA GE查抄某个数据库数据也面信息

DBCCPROCBUF展现过程缓冲池的缓冲区头和存储过程。

DBCCPRTIPA GE查抄某个索引页面的每行指向的页面号。

DBCCPSS展现面前毗连到SQLSERVER服务器的历程消息。

DBCCRESOURCE展现服务器当前使用的本钱环境。

DBCCTA B查抄数据页面的布局