服务器消息823,解决SQLServer消息823,级别24,状态2,⾏
1,连接中断及“服。。。
接上⼀篇,数据库⽂件拷回来后,依然是⽆法附加数据库,附加时报823消息错误,这个时候⽤MDF查看⼯具查看数据内容,那些数据表都是可以看到的,表⾥⾯也有数据,于是采⽤数据库替换的⽅式将数据库添加进SQL企业管理器,只是这时数据库的状态是“置疑状态”,然后将数据库的状态设置为“紧急模式”,然后重建数据库⽇志,再将数据库状态设置回正常状态。这时在SQL企业管理器就已经能正常访问数据库,并且能看到⾥⾯的表,也可以查看到数据了。就在以为万事OK的时候,情况出现了,在软件中执⾏SQL语句,全部提⽰“服务器: 消息 823,级别 24,状态 2,⾏ 1 ,连接中断”,查询不了数据,于是⽤查询分析器执⾏了⼀个SELECT语句,晕倒,⼀样的错误提⽰“服务器: 消息 823,级别 24,状态 2,⾏ 1 ,连接中断”。明明数据库已经可以访问,在企业管理器⾥⾯数据也可以看到了,于是⽤DBCC CHECKDB检查了⼀下数据库,报了类似于下⾯的⼀堆错误出来。
服务器: 消息 8909,级别 16,状态 1,⾏ 2
表错误: 对象 ID 0,索引 ID 0,页 ID (1:1372)。页⾸结构中的 PageId = (0:0)。
服务器: 消息 8909,级别 16,状态 1,⾏ 2
表错误: 对象 ID 0,索引 ID 0,页 ID (1:8709)。页⾸结构中的 PageId = (0:0)。
服务器: 消息 8909,级别 16,状态 1,⾏ 2
表错误: 对象 ID 0,索引 ID 0,页 ID (1:15999)。页⾸结构中的 PageId = (0:0)。
服务器: 消息 8909,级别 16,状态 1,⾏ 2
表错误: 对象 ID 0,索引 ID 0,页 ID (1:16052)。页⾸结构中的 PageId = (0:0)。
服务器: 消息 8909,级别 16,状态 1,⾏ 2
表错误: 对象 ID 0,索引 ID 0,页 ID (1:16084)。页⾸结构中的 PageId = (0:0)。
服务器: 消息 8909,级别 16,状态 1,⾏ 2
表错误: 对象 ID 0,索引 ID 0,页 ID (1:16085)。页⾸结构中的 PageId = (0:0)。
服务器: 消息 8909,级别 16,状态 1,⾏ 2
表错误: 对象 ID 0,索引 ID 0,页 ID (1:16086)。页⾸结构中的 PageId = (0:0)。
服务器: 消息 8909,级别 16,状态 1,⾏ 2
表错误: 对象 ID 0,索引 ID 0,页 ID (1:16087)。页⾸结构中的 PageId = (0:0)。
'mydb' 的 DBCC 结果。
CHECKDB 发现了 0 个分配错误和 8 个⼀致性错误,这些错误并不与任何单个的对象相关联。
'sysobjects' 的 DBCC 结果。
对象 'sysobjects' 有 169 ⾏,这些⾏位于 3 页中。
'sysindexes' 的 DBCC 结果。
对象 'sysindexes' 有 359 ⾏,这些⾏位于 19 页中。
'syscolumns' 的 DBCC 结果。
对象 'syscolumns' 有 1010 ⾏,这些⾏位于 19 页中。
'systypes' 的 DBCC 结果。
对象 'systypes' 有 26 ⾏,这些⾏位于 1 页中。
'syscomments' 的 DBCC 结果。
对象 'syscomments' 有 157 ⾏,这些⾏位于 16 页中。
'sysfiles1' 的 DBCC 结果。
对象 'sysfiles1' 有 2 ⾏,这些⾏位于 1 页中。
'syspermissions' 的 DBCC 结果。
对象 'syspermissions' 有 18 ⾏,这些⾏位于 1 页中。
'sysusers' 的 DBCC 结果。
对象 'sysusers' 有 12 ⾏,这些⾏位于 1 页中。
'sysproperties' 的 DBCC 结果。
对象 'sysproperties' 有 200 ⾏,这些⾏位于 4 页中。
'sysdepends' 的 DBCC 结果。
对象 'sysdepends' 有 309 ⾏,这些⾏位于 1 页中。
'sysreferences' 的 DBCC 结果。
对象 'sysreferences' 有 0 ⾏,这些⾏位于 0 页中。
'sysfulltextcatalogs' 的 DBCC 结果。
sql连接不上服务器对象 'sysfulltextcatalogs' 有 0 ⾏,这些⾏位于 0 页中。
'sysfulltextnotify' 的 DBCC 结果。
对象 'sysfulltextnotify' 有 0 ⾏,这些⾏位于 0 页中。
'sysfilegroups' 的 DBCC 结果。
对象 'sysfilegroups' 有 1 ⾏,这些⾏位于 1 页中。
......
.
.....
......
服务器: 消息 8928,级别 16,状态 1,⾏ 2
对象 ID 821577965,索引 ID 0: 未能处理页 (1:8709)。详细信息请参阅其它错误。
服务器: 消息 8928,级别 16,状态 1,⾏ 2
对象 ID 821577965,索引 ID 0: 未能处理页 (1:15999)。详细信息请参阅其它错误。
服务器: 消息 8928,级别 16,状态 1,⾏ 2
对象 ID 821577965,索引 ID 0: 未能处理页 (1:16052)。详细信息请参阅其它错误。
服务器: 消息 8978,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。页 (1:1076) 缺少上⼀页 (1:18222) 对它的引⽤。可能是因为链的链接有问题。服务器: 消息 8978,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。页 (1:1551) 缺少上⼀页 (1:18218) 对它的引⽤。可能是因为链的链接有问题。服务器: 消息 8978,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。页 (1:3165) 缺少上⼀页 (1:18219) 对它的引⽤。可能是因为链的链接有问题。
服务器: 消息 8978,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。页 (1:3397) 缺少上⼀页 (1:18221) 对它的引⽤。可能是因为链的链接有问题。
服务器: 消息 8978,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。页 (1:4898) 缺少上⼀页 (1:18216) 对它的引⽤。可能是因为链的链接有问题。
服务器: 消息 8978,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。页 (1:5200) 缺少上⼀页 (1:18220) 对它的引⽤。可能是因为链的链接有问题。
服务器: 消息 8978,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。页 (1:7722) 缺少上⼀页 (1:18217) 对它的引⽤。可能是因为链的链接有问题。
服务器: 消息 8976,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。在扫描操作中未发现页 (1:18216),⽽其⽗代 (1:1620) 和上⼀页 (1:12401) 指向了该页。请检查先前的错误。
服务器: 消息 8976,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。在扫描操作中未发现页 (1:18217),⽽其⽗代 (1:10128) 和上⼀页 (1:3661) 指向了该页。请检查先前的错误。
服务器: 消息 8976,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。在扫描操作中未发现页 (1:18218),⽽其⽗代 (1:10778) 和上⼀页 (1:4551) 指向了该页。请检查先前的错误。
服务器: 消息 8976,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。在扫描操作中未发现页 (1:18219),⽽其⽗代 (1:8876) 和上⼀页 (1:17038) 指向了该页。请检查先前的错误。
服务器: 消息 8976,级别 16,状态 1,⾏ 2
表错误: 对象 ID 821577965,索引 ID 1。在扫描操作中未发现页 (1:18220),⽽其⽗代 (1:8876) 和上⼀页 (1:1921) 指向了该页。请检查先前的错误。
服务器: 消息 8976,级别 16,状态 1,⾏ 2
......
......
......
看了⼀部分错误提⽰后,发现是数据表的索引被破坏掉了,于是就成了苦⼒活了,⼀张表⼀张表修复它的索引,在修复了半⼩时完,终于是全部修复完成,并再次⽤DBCC CHECKDB检查了⼀下数据库,这时终于显⽰0错误了,打开软件也⼀切正常了,⾄此数据库的修复⼯作算是完成了