-
寒山
sql
数据库修复中心
/
MS Sql Server
数据库或表修复
数据库或表修复
(DBCC CHECKDB)
MS
Sql
Server
提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时
可以尝
试这些修复命令。
1. DBCC CHECKDB
重启服务器后,
在没有进行任何操作的情况下,
在
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',
p>
N'false'--
将目标数据库置为多用户状态
然后执行
DBCC
p>
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('
需
要
修
复
的
数
据
p>
表
的
名
称
',REPAIR_REBUILD)
------
把’
需要修复的数据表的名称’更改为执行
DBCC CHECKDB
时报错
的数据表的名称
exec sp_dboption @dbname,'single
user','false' 3.
其他的一些常用的修复命
令
DBCC
DBREINDEX
重建指定数据库中表的一个或多个索引
用法:
DBCC
DBREINDEX
(
表
名
,
p>
’
’
)
修复此表所有的索引。
===
================================
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]
以
上
p>
两
种
情
况
,
也
可
直
接
使
用
DBCC
-
-
-
-
-
-
-
-
-
上一篇:通知书之搬迁通知英文范文
下一篇:乔迁英文祝福语