公司电脑7.18日因空间不足导致MSDB数据库还有CY20090325数据库处于置疑状态,于是用下面语句修复:USE MASTERGOSP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb'Gosp_dboption 'msdb', 'single user', 'true'GoDBCC CHECKDB('msdb') Goupdate sysdatabases set status =28 where name='msdb'Gosp_configure 'allow updates', 0 reconfigure with overrideGo sp_dboption 'msdb', 'single user', 'false'Go修复后数据库状态为正常,但是有下面提示:DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
已将配置选项 'allow updates' 从 0 改为 1。请运行 RECONFIGURE 语句以安装。(所影响的行数为 1 行)服务器: 消息 8928,级别 16,状态 1,行 2
对象 ID 18099105,索引 ID 0: 未能处理页 (1:1431)。详细信息请参阅其它错误。
服务器: 消息 8939,级别 16,状态 1,行 2
表错误: 对象 ID 18099105,索引 ID 0,页 (1:1431)。测试(IS_ON (BUF_IOERR, bp->bstat) && bp->berrcode)失败。值为 2057 和 -1。
'msdb' 的 DBCC 结果。
'sysobjects' 的 DBCC 结果。
对象 'sysobjects' 有 419 行,这些行位于 8 页中。
'sysindexes' 的 DBCC 结果。
对象 'sysindexes' 有 214 行,这些行位于 9 页中。
'syscolumns' 的 DBCC 结果。
对象 'syscolumns' 有 3555 行,这些行位于 128 页中。
'systypes' 的 DBCC 结果。
对象 'systypes' 有 26 行,这些行位于 1 页中。
'syscomments' 的 DBCC 结果。
对象 'syscomments' 有 422 行,这些行位于 160 页中。
'sysfiles1' 的 DBCC 结果。
对象 'sysfiles1' 有 2 行,这些行位于 1 页中。
'syspermissions' 的 DBCC 结果。
对象 'syspermissions' 有 168 行,这些行位于 1 页中。
'sysusers' 的 DBCC 结果。
对象 'sysusers' 有 13 行,这些行位于 1 页中。
'sysproperties' 的 DBCC 结果。
对象 'sysproperties' 有 0 行,这些行位于 0 页中。
'sysdepends' 的 DBCC 结果。
对象 'sysdepends' 有 2654 行,这些行位于 17 页中。
'sysreferences' 的 DBCC 结果。
对象 'sysreferences' 有 12 行,这些行位于 1 页中。
'sysfulltextcatalogs' 的 DBCC 结果。
对象 'sysfulltextcatalogs' 有 0 行,这些行位于 0 页中。
'sysfulltextnotify' 的 DBCC 结果。
对象 'sysfulltextnotify' 有 0 行,这些行位于 0 页中。
'sysfilegroups' 的 DBCC 结果。
对象 'sysfilegroups' 有 1 行,这些行位于 1 页中。
'sysjobschedules' 的 DBCC 结果。
对象 'sysjobschedules' 有 2 行,这些行位于 1 页中。
'RTblClassExtension' 的 DBCC 结果。
对象 'RTblClassExtension' 有 69 行,这些行位于 1 页中。
'RTblIfaceMem' 的 DBCC 结果。
对象 'RTblIfaceMem' 有 1189 行,这些行位于 9 页中。
'backupfile' 的 DBCC 结果。
对象 'backupfile' 有 63 行,这些行位于 2 页中。
CHECKDB 发现了 0 个分配错误和 2 个一致性错误(在表 'backupfile' 中,该表的对象 ID 为 18099105)。
'syscategories' 的 DBCC 结果。
对象 'syscategories' 有 19 行,这些行位于 1 页中。
'systargetservers' 的 DBCC 结果。
对象 'systargetservers' 有 0 行,这些行位于 0 页中。
'RTblWorkspaceItems' 的 DBCC 结果。
对象 'RTblWorkspaceItems' 有 0 行,这些行位于 0 页中。
'restorehistory' 的 DBCC 结果。
对象 'restorehistory' 有 5 行,这些行位于 1 页中。
'systargetservergroups' 的 DBCC 结果。
对象 'systargetservergroups' 有 0 行,这些行位于 0 页中。
'RTblDatabaseVersion' 的 DBCC 结果。
对象 'RTblDatabaseVersion' 有 1 行,这些行位于 1 页中。
'systargetservergroupmembers' 的 DBCC 结果。
对象 'systargetservergroupmembers' 有 0 行,这些行位于 0 页中。
'sysalerts' 的 DBCC 结果。
对象 'sysalerts' 有 9 行,这些行位于 1 页中。
'RTblDTSProps' 的 DBCC 结果。
对象 'RTblDTSProps' 有 0 行,这些行位于 0 页中。
'RTblVersionAdminInfo' 的 DBCC 结果。
对象 'RTblVersionAdminInfo' 有 2333 行,这些行位于 30 页中。
'restorefile' 的 DBCC 结果。
对象 'restorefile' 有 10 行,这些行位于 1 页中。
'sysoperators' 的 DBCC 结果。
对象 'sysoperators' 有 0 行,这些行位于 0 页中。
'sysnotifications' 的 DBCC 结果。
对象 'sysnotifications' 有 0 行,这些行位于 0 页中。
'RTblParameterDef' 的 DBCC 结果。
对象 'RTblParameterDef' 有 136 行,这些行位于 1 页中。
'restorefilegroup' 的 DBCC 结果。
对象 'restorefilegroup' 有 5 行,这些行位于 1 页中。
'systaskids' 的 DBCC 结果。
对象 'systaskids' 有 0 行,这些行位于 0 页中。
'syscachedcredentials' 的 DBCC 结果。
对象 'syscachedcredentials' 有 1 行,这些行位于 1 页中。
'RTblIfaceHier' 的 DBCC 结果。
对象 'RTblIfaceHier' 有 3349 行,这些行位于 18 页中。
'loghistory' 的 DBCC 结果。
对象 'loghistory' 有 0 行,这些行位于 0 页中。
'RTblNamedObj' 的 DBCC 结果。
对象 'RTblNamedObj' 有 2196 行,这些行位于 22 页中。
'sysdtscategories' 的 DBCC 结果。
对象 'sysdtscategories' 有 3 行,这些行位于 1 页中。
'sysdtspackages' 的 DBCC 结果。
对象 'sysdtspackages' 有 0 行,这些行位于 0 页中。
'RTblTypeInfo' 的 DBCC 结果。
对象 'RTblTypeInfo' 有 0 行,这些行位于 0 页中。
'sysdtspackagelog' 的 DBCC 结果。
对象 'sysdtspackagelog' 有 0 行,这些行位于 0 页中。
'RTblScriptDefs' 的 DBCC 结果。
对象 'RTblScriptDefs' 有 0 行,这些行位于 0 页中。
'RTblOLPProps' 的 DBCC 结果。
对象 'RTblOLPProps' 有 0 行,这些行位于 0 页中。
'sysdtssteplog' 的 DBCC 结果。
对象 'sysdtssteplog' 有 0 行,这些行位于 0 页中。
'RTblEnumerationDef' 的 DBCC 结果。
对象 'RTblEnumerationDef' 有 0 行,这些行位于 0 页中。
'sysdtstasklog' 的 DBCC 结果。
对象 'sysdtstasklog' 有 0 行,这些行位于 0 页中。
'RTblSumInfo' 的 DBCC 结果。
对象 'RTblSumInfo' 有 0 行,这些行位于 0 页中。
'RTblMDSProps' 的 DBCC 结果。
对象 'RTblMDSProps' 有 0 行,这些行位于 0 页中。
'RTblEnumerationValueDef' 的 DBCC 结果。
对象 'RTblEnumerationValueDef' 有 0 行,这些行位于 0 页中。
'RTblUMLProps' 的 DBCC 结果。
对象 'RTblUMLProps' 有 0 行,这些行位于 0 页中。
'sysdbmaintplans' 的 DBCC 结果。
对象 'sysdbmaintplans' 有 1 行,这些行位于 1 页中。
'sysdbmaintplan_jobs' 的 DBCC 结果。
对象 'sysdbmaintplan_jobs' 有 0 行,这些行位于 0 页中。
'RTblUMXProps' 的 DBCC 结果。
对象 'RTblUMXProps' 有 0 行,这些行位于 0 页中。
'sysdbmaintplan_databases' 的 DBCC 结果。
对象 'sysdbmaintplan_databases' 有 0 行,这些行位于 0 页中。
'RTblSIMProps' 的 DBCC 结果。
对象 'RTblSIMProps' 有 0 行,这些行位于 0 页中。
'sysdbmaintplan_history' 的 DBCC 结果。
对象 'sysdbmaintplan_history' 有 0 行,这些行位于 0 页中。
'RTblGENProps' 的 DBCC 结果。
对象 'RTblGENProps' 有 0 行,这些行位于 0 页中。
'RTblDTMProps' 的 DBCC 结果。
对象 'RTblDTMProps' 有 0 行,这些行位于 0 页中。
'log_shipping_primaries' 的 DBCC 结果。
对象 'log_shipping_primaries' 有 0 行,这些行位于 0 页中。
'log_shipping_secondaries' 的 DBCC 结果。
对象 'log_shipping_secondaries' 有 0 行,这些行位于 0 页中。
'RTblDBMProps' 的 DBCC 结果。
对象 'RTblDBMProps' 有 0 行,这些行位于 0 页中。
'RTblEQMProps' 的 DBCC 结果。
对象 'RTblEQMProps' 有 0 行,这些行位于 0 页中。
'log_shipping_monitor' 的 DBCC 结果。
对象 'log_shipping_monitor' 有 0 行,这些行位于 0 页中。
服务器: 消息 8928,级别 16,状态 1,行 2
对象 ID 2069582411,索引 ID 2: 未能处理页 (1:35)。详细信息请参阅其它错误。
服务器: 消息 8939,级别 16,状态 1,行 2
表错误: 对象 ID 2069582411,索引 ID 2,页 (1:35)。测试(IS_ON (BUF_IOERR, bp->bstat) && bp->berrcode)失败。值为 2057 和 -1。
'mswebtasks' 的 DBCC 结果。
对象 'mswebtasks' 有 0 行,这些行位于 0 页中。
'log_shipping_databases' 的 DBCC 结果。
对象 'log_shipping_databases' 有 0 行,这些行位于 0 页中。
'log_shipping_plans' 的 DBCC 结果。
对象 'log_shipping_plans' 有 0 行,这些行位于 0 页中。
'RTblVersions' 的 DBCC 结果。
对象 'RTblVersions' 有 2333 行,这些行位于 27 页中。
'log_shipping_plan_databases' 的 DBCC 结果。
对象 'log_shipping_plan_databases' 有 0 行,这些行位于 0 页中。
'log_shipping_plan_history' 的 DBCC 结果。
对象 'log_shipping_plan_history' 有 0 行,这些行位于 0 页中。
'RTblDBXProps' 的 DBCC 结果。
对象 'RTblDBXProps' 有 0 行,这些行位于 0 页中。
'RTblRelships' 的 DBCC 结果。
对象 'RTblRelships' 有 6922 行,这些行位于 146 页中。
'RTblSites' 的 DBCC 结果。
对象 'RTblSites' 有 44 行,这些行位于 1 页中。
'RTblProps' 的 DBCC 结果。
对象 'RTblProps' 有 393 行,这些行位于 3 页中。
'RTblRelshipProps' 的 DBCC 结果。
对象 'RTblRelshipProps' 有 28 行,这些行位于 1 页中。
'RTblPropDefs' 的 DBCC 结果。
对象 'RTblPropDefs' 有 797 行,这些行位于 10 页中。
'RTblRelColDefs' 的 DBCC 结果。
对象 'RTblRelColDefs' 有 320 行,这些行位于 4 页中。
'RTblIfaceDefs' 的 DBCC 结果。
对象 'RTblIfaceDefs' 有 453 行,这些行位于 5 页中。
'backupmediaset' 的 DBCC 结果。
对象 'backupmediaset' 有 9 行,这些行位于 1 页中。
'sqlagent_info' 的 DBCC 结果。
对象 'sqlagent_info' 有 0 行,这些行位于 0 页中。
'RTblClassDefs' 的 DBCC 结果。
对象 'RTblClassDefs' 有 537 行,这些行位于 5 页中。
'sysdownloadlist' 的 DBCC 结果。
对象 'sysdownloadlist' 有 0 行,这些行位于 0 页中。
'backupmediafamily' 的 DBCC 结果。
对象 'backupmediafamily' 有 9 行,这些行位于 1 页中。
CHECKDB 发现了 0 个分配错误和 2 个一致性错误(在表 'backupmediafamily' 中,该表的对象 ID 为 2069582411)。
'sysjobhistory' 的 DBCC 结果。
服务器: 消息 8952,级别 16,状态 1,行 2
表错误: 数据库 'msdb',索引 'backupset.backupsetuuid'(ID 2117582582)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 2
索引行(1:49:2)(其值为 backup_set_uuid = FADF65F6-33D1-475C-840C-0A365B20FEFDT and backup_set_id = 61)指向由  标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 2
表错误: 数据库 'msdb',索引 'backupset.backupsetuuid'(ID 2117582582)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 2
索引行(1:49:10)(其值为 backup_set_uuid = 023048DA-BA20-4629-B56B-4799B7EBB88BT and backup_set_id = 57)指向由  标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 2
表错误: 数据库 'msdb',索引 'backupset.backupsetuuid'(ID 2117582582)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 2
索引行(1:49:15)(其值为 backup_set_uuid = 87A22410-8B70-4D4E-98B1-62B630EF195DT and backup_set_id = 55)指向由  标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 2
表错误: 数据库 'msdb',索引 'backupset.backupsetuuid'(ID 2117582582)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 2
索引行(1:49:32)(其值为 backup_set_uuid = 6D0FE4B2-C835-49B9-A936-958DD89470EFT and backup_set_id = 58)指向由  标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 2
表错误: 数据库 'msdb',索引 'backupset.backupsetuuid'(ID 2117582582)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 2
索引行(1:49:34)(其值为 backup_set_uuid = 1A4C1597-C966-44FB-9A3B-A77DB69E8838T and backup_set_id = 59)指向由  标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 2
表错误: 数据库 'msdb',索引 'backupset.backupsetuuid'(ID 2117582582)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 2
索引行(1:49:38)(其值为 backup_set_uuid = EED26D1D-5FB7-4973-8950-B67623077F17T and backup_set_id = 56)指向由  标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 2
表错误: 数据库 'msdb',索引 'backupset.backupsetuuid'(ID 2117582582)(索引 ID 2)。下列键的键多余或无效:
服务器: 消息 8956,级别 16,状态 1,行 2
索引行(1:49:51)(其值为 backup_set_uuid = CCA664BB-6531-4DCF-BC0E-E6D75D8BA3A6T and backup_set_id = 60)指向由  标识的数据行。
服务器: 消息 8952,级别 16,状态 1,行 2
表错误: 数据库 'msdb',索引 'backupset.backupsetuuid'(ID 2117582582)(索引 ID 2)。下列键的键多余或无效:
对象 'sysjobhistory' 有 116 行,这些行位于 14 页中。
'sysjobs' 的 DBCC 结果。
对象 'sysjobs' 有 2 行,这些行位于 1 页中。
'RTblTFMProps' 的 DBCC 结果。
对象 'RTblTFMProps' 有 0 行,这些行位于 0 页中。
'RTblRelshipDefs' 的 DBCC 结果。
对象 'RTblRelshipDefs' 有 144 行,这些行位于 1 页中。
'backupset' 的 DBCC 结果。
服务器: 消息 8956,级别 16,状态 1,行 2
索引行(1:49:54)(其值为 backup_set_uuid = 078A4F23-6381-41A8-9A94-E99933093E22T and backup_set_id = 54)指向由  标识的数据行。
对象 'backupset' 有 53 行,这些行位于 3 页中。
CHECKDB 发现了 0 个分配错误和 8 个一致性错误(在表 'backupset' 中,该表的对象 ID 为 2117582582)。
'sysjobservers' 的 DBCC 结果。
对象 'sysjobservers' 有 2 行,这些行位于 1 页中。
'RTblTypeLibs' 的 DBCC 结果。
对象 'RTblTypeLibs' 有 17 行,这些行位于 1 页中。
'sysjobsteps' 的 DBCC 结果。
对象 'sysjobsteps' 有 2 行,这些行位于 1 页中。
CHECKDB 发现了 0 个分配错误和 12 个一致性错误(在数据库 'msdb' 中)。
repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKDB (msdb ) 发现的错误而言)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。(所影响的行数为 1 行)DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
已将配置选项 'allow updates' 从 1 改为 0。请运行 RECONFIGURE 语句以安装。
   请问各位大大应该如何解决

解决方案 »

  1.   

    -- 解决方法: 
    -- 假设数据库名为:Test
    -- 先创建一个同样的数据库Test 
    -- 停掉server服务,用旧的数据文件覆盖新创建的文件(只要mdf就可以)。  
    -- 启动server服务  
    -- 运行以下命令  
    sp_configure  'allow',1  
    go
    reconfigure  with  override  
    go
    update  sysdatabases  set  status=32768  where  name='Test'  
    go
    dbcc  rebuild_log('Test','D:\database\Test_Log.ldf')  
    go
    update  sysdatabases  set  status=0  where  name='Test'  
    go
    sp_configure   'allow',0    
    go
    reconfigure  with  override  
    go
    dbcc  checkdb('Test')  
    go
    --若发现有错误,还要进一步找出出错的地方,可以先检查 
    -- DBCC  CHECKTABLE  (sysobjects) 
    -- DBCC  CHECKTABLE  (sysindexes) 
    -- DBCC  CHECKTABLE  (syscolumns  ) 
    -- DBCC  CHECKTABLE  (systypes) -------------------------------------------------------------------------------------------------
    --第一、
    exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表的开关 */
    --第二、
    update sysdatabases set status=32768 where name='Test' /* 设置数据库状态 */
    --第三、
    DBCC rebuild_log ('Test','D:\database\Test_Log.ldf') /* 重建LDF文件 */
    --第四、
    update sysdatabases set status=0 where name='Test' /* 重置数据库状态 */
    --第五、
    restore database Test WITH RECOVERY /* 恢复数据库 */
    --第六、
    exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭打开修改系统表的开关 */
    按照此方法操作,应该能修复数据库正常访问了。如果问题依然存在,最笨的一个方法就是新建另一个数据库,把原数据库(Test)各个表的数据导出到新建数据库表中。