公司用了十年的DELL服务器一块硬盘闪黄灯了。进入PERC 6/I RAID配置里面看了一下一块硬盘Offline 离线的; 脱机的; 未连线的; 未联机的
连上线,结果系统坏了,系统还好有GHSOT,进入系统结果发现数据库给损坏了,真的是怀事接二连二的。这也就导致人事那边使用的灵灵免软件进入用不了,提示:连接失败Table Error: Database ID 8, object ID52049303,IndexID 0. Chain Linkage mismatch………………….大概意思是数据库有问题,
后面找软件公司了解了一下,说要找人修复,要700元服务费。本来系统就没在使用了,只不过是做一下卡上传的考勤机里面。软件用也行不用也行。要这么多钱所以就没准备找软件公司修复了。直接使用依时利考勤机的一卡通软件做卡了。
既然有出现问题但还是很好奇的想自己修复试试,经过对错误提示的了解。尝试了以下命令发现修改OK了。
1,测试查看表你就发现会提示错误:
修复方法:
一、将目标数据库置为单用户状态
二、
三、
四、将目标数据库恢复多用户状态
如果有错误的话,重复执行第二
下面是 上参考的其他方法也可以试一下:
将目标数据库置为单用户状态
exec sp_dboption kqdata, N’single’, N’true’
— 修复数据库
dbcc checkdb(kqdata,REPAIR_REBUILD)
— 将目标数据库置为多用户状态
exec sp_dboption kqdata, N’single’, N’false’
一、DBCC CHECKDB :
在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误。
use kqdata
declare @databasename varchar(255)
set @databasename=’kqdata’
exec sp_dboption kqdata, N’single’, N’true’
dbcc checkdb(kqdata,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(kqdata,REPAIR_REBUILD)
exec sp_dboption kqdata, N’single’, N’false’
然后执行 DBCC CHECKDB(‘kqdata’) 检查数据库是否仍旧存在错误。注意:修复后可能会造成部分数据的丢失。
2. DBCC CHECKTABLE
如果DBCC CHECKDB 检查仍旧存在错误,可以使用DBCC CHECKTABLE来修复。
use kqdata
declare @dbname varchar(255)
set @dbname=’kqdata’
exec sp_dboption @dbname,’single user’,’true’
dbcc checktable(‘dbo.att_reco’,REPAIR_ALLOW_DATA_LOSS)
dbcc checktable(‘dbo.att_reco’,REPAIR_REBUILD)
exec sp_dboption kqdata,’single user’,’false’
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!