修复网吧数据库出现一致性错误和分配错误方法BY TURAN
网吧PUBWIN服务器在使用中有时由于非正常关闭或重新启动服务器可能会发生数据库错误,目前我们的
方法基本上是把网吧数据库导入到另外一个空数据库中来修复。这种方法是可以修复成功的,但是耗时比 较长。对于一些比较简单的数据库错误(比较少的一致性错误和非配错误)我们可以通过如下方法来修复 数据,这样操作更快
注意:在做任何数据库操作前请一定注意备份数据库。并把PUBWIN 服务停止掉,只启动 SQLSERVER
服务。
第一步:在服务器上使用 OSQL王命令进入数据库,如下图:
I□kWiNDilJWapEe?#/侦MD.exe - osqll -E
Hicrosof t W indo ms XP [Ucrs ion 5.1.2GS0i]l (C> CQPAPi'igrht 1985-2BR1 tlicrns-oft Corp.
C- XDocunemts and. Sett ings \Adninistratdf>osq 1 -E 1>
第二步:选择PUBWIN 所使用的数据库LOCAL,并检查该数据库是否存在错误。如下图:
』口|兰]I cT C:\WlNDlJWS\5:yste^i32\£M&..eMe - osqll -E
』口|兰]
Hicrosaft Windous XP [Ubfsion S.1.2G80J CO Copi/i*ight 1985-2001 tllcpos-iaft Coi*p_
use localdbcc checkdb 取.xDocunents and Sett ing^ %Adninis!tFatoF>osql —E
use local
dbcc checkdb 取.
2>
检查结果如下图:、
?? I ■■ wI I:|(]Wh\stem37'I- asql -t
未能诙取并闩锁页 3佑脚4>国由诱蜀
H257S, ?|l] 16,厌态 1,CCF-Bft54394DE3Bn 行 1
误二扩屣总区<l:4727t0> (舟象ID 133575514,需引即Q)不在此数据库电围内.
姑为,壤何拨态1,日艮务器CCS-叫触刑皿皿行1…
我蛰误=扩展<1:47276B>俱孑象ID 229575656.素引ID 0J不在此数据库范围内. fi.y之泊,绑1_6 状态 ' 段务器CCF-娅SMEg 行1
表错误:扩雇慕奁<1:210616> (稣象ID 402100473,素引】口 W55)不在此数据库范国内
箱息明K,缨I] 16,状;态「服务器CCF-H屿43皿Hg行1 是借误二rO区<l:210Glt> (时象JD 405676483,零引ID 3)不在此数据库范围札 J local* 的 DBCC 结果*
CHECMDB发现了 0个分配错误和1个一致性错误,这些错误并不与任何单个的潜象相关联
CHECMPB发现了 1个分配错误和9个-致性错误(在表■hst^sehUtu^中.该表的封 象 为 1^9575514? ?
CHECKPB发现了 1.不分配错误和&个一玫性错误(在表"nen. local(nenhei*ljase±nf<jJ中 ■该表的对彖JD为
229575856 )
CHECKDB发现了 1个分配错误和0个一致性错误(在表^D-FOLICTJHFO-中,该表的对 尿 1。 为 4B21HU473J ”
CIIECMDB发现-I个芬配误和0个一致性错误(在表^prod-iJiipncntdctrtil^中.该 表的对象1B为4tE57fi?2; 4
CHECKPB发现了 4个分配错误和1.个一锻性错误(在磨阵中), DBCC执行尧彰 如果DBCC榆出了错误信怠,请与系藐,员联系.
从上图中我们可以看到该网吧数据库存在4个分配错误和一个一致性错误。
第三步:发现错误后我们要开始修复,所使用语句下:
CODE:
sp_dboption 'local', 'single user', 'true'
--把数据库置为单用户模式
DBCC checkdb('local',REPAIR_ALLOW_DATA_LOSS)
--在允许数据丢失情况下修复数据库。
|[5r?\W1NDiQWS\fi:y5tErn3W\匚MD?EHie - ti.ql?E
±cfg_adntinaccaunt, W 1
J cFg_adrriini*o le, 的 DBOC 结果*
恭象^cf9_?drrtinrolc, 1.这些行位于1页中*
J cf g_abjecti'asaui*ce 的 DBOC 暗果*
只寸象肖365行,这些行位于6页中。
J i'ealn€tiie_f requenter1 的 DbCC 结果*
对象7i-ea