操作系统:window2003 server 集群服务 
          SQL server 2000  安装在仲裁磁盘Z。
数据库有几百万的信息,平时操作的数据量一般,某几天会有比较大量的操作。
在7月1号机房因空调原因停机重启以后,在第二天的早上操作运行时开始数据库出现错误,以下是部分日志信息:服务器: 消息 8951,级别 16,状态 1,行 1
表错误: 表 'T_YK_RZ'(ID 927394423)。索引 'IX_T_YK_RZ'(ID 7)中下列行的键缺少或无效:
服务器: 消息 8955,级别 16,状态 1,行 1
数据行(1:41000:7)(由 RID = (1:41000:7)  标识)的索引值为 czrq = 07  3 2007  8:43AM and sbh = '07070061'。
服务器: 消息 8951,级别 16,状态 1,行 1
表错误: 表 'T_YK_RZ'(ID 927394423)。索引 'IX_T_YK_RZ'(ID 7)中下列行的键缺少或无效:
服务器: 消息 8955,级别 16,状态 1,行 1
数据行(1:41000:8)(由 RID = (1:41000:8)  标识)的索引值为 czrq = 07  3 2007  8:44AM and sbh = '07070061'。
服务器: 消息 8951,级别 16,状态 1,行 1
表错误: 表 'T_YK_RZ'(ID 927394423)。索引 'IX_T_YK_RZ'(ID 7)中下列行的键缺少或无效:
服务器: 消息 8955,级别 16,状态 1,行 1
数据行(1:41000:9)(由 RID = (1:41000:9)  标识)的索引值为 czrq = 07  3 2007  8:46AM and sbh = '07050452'。
服务器: 消息 8952,级别 16,状态 1,行 1
表错误: 数据库 'wzmis',索引 'cb_sfb.Ix_cb_sfb_xzrq_dyfp'(ID 1173579219)(索引 ID 4)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 1
索引行(1:103664:132)(其值为 xzrq = 07  3 2007 12:00AM and dyfp = 9.365638989E-097)指向由 RID = (1:572292:44) 标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 1
表错误: 数据库 'wzmis',索引 'cb_sfb.Ix_cb_sfb_xzrq_dyfp'(ID 1173579219)(索引 ID 4)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 1
索引行(1:103664:136)(其值为 xzrq = 07  3 2007 12:00AM and dyfp = 1.234180251E-178)指向由 RID = (1:572294:27) 标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 1
表错误: 数据库 'wzmis',索引 'cb_sfb.Ix_cb_sfb_xzrq_dyfp'(ID 1173579219)(索引 ID 4)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 1
索引行(1:134926:112)(其值为 xzrq = 07  3 2007 12:00AM and dyfp = 4.022511316E-087)指向由 RID = (1:572573:46) 标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 1
表错误: 数据库 'wzmis',索引 'cb_sfb.Ix_cb_sfb_hh_dyfp'(ID 1173579219)(索引 ID 45)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 1
索引行(1:378781:244)(其值为 sbh = '05075924' and dyfp = 4.022511316E-087)指向由 RID = (1:572573:46) 标识的数据行。
'wzmis' 的 DBCC 结果。
'sysobjects' 的 DBCC 结果。然后用dbcc checkdb陆续出现各种一致性错误,8951,8952,8955,8956,8978,605,3624  等等。
在日常使用中,经常会发生数据操作正常后又重新回滚的情况,在查询中出现错误,数据丢失的现象,除了有时查询出错会提示,数据回滚和丢失都不会出现任何提示。
也尝试过重建和修复索引,单用户下的REPAIR 子句修复重建,索引和文件碎片的检查,但是在修复后又会重新出现新的错误。因为服务器跟数据库牵扯到相关的很多业务,所以至今还没采取换服务器和分离数据库以及还原数据库备份的操作。希望有相关处理经验的朋友不吝赐教!! 万分感谢

解决方案 »

  1.   

    先把几个索引删除,再建立当前库的T_YK_RZ表的IX_T_YK_RZ
    wzmis库的cb_sfb表的Ix_cb_sfb_xzrq_dyfp
      

  2.   

    然后用带REPAIR_ALLOW_DATA_LOSS参数的dbcc checkdb命令看能否修复
      

  3.   

    表删除 也重建过。但是REPAIR_ALLOW_DATA_LOSS 不能用
    数据不能丢失。因为关系到用户的资料。。轻易不能用
      

  4.   

    除了REPAIR_ALLOW_DATA_LOSS 其他都用过了。修复好以后又会发生。
    磁盘也检测过了。没有坏道