server Error: 692, Severity: 20, State: 1

今天上班,发现应用系统无法创建新的流程实例,但可以查询数据,登陆数据库服务器,查看日志文件,发现如下提示,请教各位大侠,如何解决,先感谢呐:
00:00000:00071:2011/03/14 10:01:53.19 server  Error: 692, Severity: 20, State: 1
00:00000:00071:2011/03/14 10:01:53.19 server  Uninitialized logical page '6759969' was read while accessing object '373573338' in database '5'. Please contact Sybase Technical Support.
01:00000:00034:2011/03/14 10:03:26.58 server  Error: 692, Severity: 20, State: 1
01:00000:00034:2011/03/14 10:03:26.58 server  Uninitialized logical page '6759969' was read while accessing object '373573338' in database '5'. Please contact Sybase Technical Support.
00:00000:00034:2011/03/14 10:30:53.78 server  Bufunhash: Buffer 0x1b54a65e0 from database id 5 has page number 0
in the page header and page number 6759969 in the buffer header. Buffer will be unhashed,
no action is necessary. Printing headers for diagnostics:
00:00000:00034:2011/03/14 10:30:53.78 server  Mass: 0x1b54a65e0 Buffer: 0x1b54a65e0 Mass pageno: 6759969
-Mass virtpg: 140057668 dbid: 5 Mass stat: 0x44001010
-Buffer pageno: 6759969 Buffer virtpg: 140057668 Buf stat: 0x1 keep: 0 awaited: 0 tripsleft: 0
-bpage: 0x1a5e15000 flushseq: 0 dirty seq: 0 filthyseq: 0 linked: ( lru)
00:00000:00034:2011/03/14 10:30:53.78 server  Page: 0x1a5e15000 pageno: 0 objid: 0 indid: 0
- nextpg: 0 prevpg: 0 pstat: 0x0 ts: (0, 0) nextrno: 0
- freeoff: 0 minlen: 0 level: 0
01:00000:00099:2011/03/14 11:18:56.69 server  Error: 692, Severity: 20, State: 1
01:00000:00099:2011/03/14 11:18:56.69 server  Uninitialized logical page '6759969' was read while accessing object '373573338' in database '5'. Please contact Sybase Technical Support.
01:00000:00034:2011/03/14 11:20:08.11 server  Error: 692, Severity: 20, State: 1
01:00000:00034:2011/03/14 11:20:08.11 server  Uninitialized logical page '6759969' was read while accessing object '373573338' in database '5'. Please contact Sybase Technical Support.
01:00000:00173:2011/03/14 11:50:11.99 server  Bufunhash: Buffer 0x1b582de20 from database id 5 has page number 0
in the page header and page number 6759969 in the buffer header. Buffer will be unhashed,
no action is necessary. Printing headers for diagnostics:
01:00000:00173:2011/03/14 11:50:11.99 server  Mass: 0x1b582de20 Buffer: 0x1b582de20 Mass pageno: 6759969
-Mass virtpg: 140057668 dbid: 5 Mass stat: 0x44001010
-Buffer pageno: 6759969 Buffer virtpg: 140057668 Buf stat: 0x1 keep: 0 awaited: 0 tripsleft: 0
-bpage: 0x1aa65d000 flushseq: 0 dirty seq: 0 filthyseq: 0 linked: ( lru)
01:00000:00173:2011/03/14 11:50:11.99 server  Page: 0x1aa65d000 pageno: 0 objid: 0 indid: 0
- nextpg: 0 prevpg: 0 pstat: 0x0 ts: (0, 0) nextrno: 0
- freeoff: 0 minlen: 0 level: 0
补充:
数据库服务器环境:IBM P550(AIX5.0L+HACMP+DS4300+Sybase12.5)

作者: teddylw1611616   发布时间: 2011-04-06

逻辑页面错误, 这个错误比较严重的。

作者: willyomg   发布时间: 2011-04-06



QUOTE:
逻辑页面错误, 这个错误比较严重的。
willyomg 发表于 2011-04-06 15:26




    逻辑页损坏是什么导致的呢?异常关机吗?怎么解决呢?

作者: teddylw1611616   发布时间: 2011-04-06

回复 teddylw1611616


    异常关机是个不小的原因。很有可能是硬盘的故障。
这个问题比较难解决。
可以使用:
1.bcp导出损坏的表,如果运气好的话,能够导出足够多的数据。
2.很遗憾,只能从以前的备份进行恢复了。

关于bcp导出损坏的表,还有一些技巧。

作者: willyomg   发布时间: 2011-04-06

找hobbylu版主吧,他可是修复logial page错误的高手阿。

作者: Eisen   发布时间: 2011-04-06

首先你做好数据库dump备份,顶顶重要
其次bcp备份数据,尽可能的先将可以备份的数据备份出来
然后将相关表drop后,重建,将数据导进去。
如果数据很重要,那么通过备份文件,进行数据恢复。

作者: hobbylu   发布时间: 2011-04-06

找出表373573338的索引都在哪些column上
select count(column) from 373573338,如果运气好索引没坏,把数据先拷贝出来重建表

作者: camham   发布时间: 2011-04-06

找出表373573338的索引都在哪些column上
select count(column) from 373573338,如果运气好索引没坏,把数据先拷贝出来重建表

作者: camham   发布时间: 2011-04-06

0:00000:00071:2011/03/14 10:01:53.19 server  Uninitialized logical page '6759969' was read while accessing object '373573338' in database '5'. Please contact Sybase Technical Support.

个人曾经遇到过这个问题,先DBCC 373573338,

取得表名,把这个表BCP出来,然后DROP,再进行BCP进来,DROP之前把建表的脚本导出来。

如果运气好的话,可以DROP,不好,估计DROP不掉这个表的,

作者: wfcjz   发布时间: 2011-04-06

其实发生这种问题,数据绝大部分都可以恢复出来的。对这方面,我算是一个专家,毫不谦虚,呵呵!
给大家介绍一下经验
大致罗列几种情况
1、该表是APL表,此类表查找页面较为简单,一般通过dbcc pglinkage,使用页链的方式可以把数据页链找出来,通过从头至尾的扫描和从尾至头的扫描,可以将页链拼接起来(需要借助工具)。没有工具也有解决方法,就是通过修改sysindexes中的first,root,来拯救数据。使用工具的话,就是将相关页链的上下页号指向可以正确完成页链扫描的就可以了。

2、DOL表的话,就要复杂一些,为什么说其复杂呢?这跟DOL表的存储结构相关。DOL表的数据页链是不连续的,它们的控制者就是那些OAM页了。(APL的表也可以通过OAM页来定位。)那么如何排除DOL表的692之类的错误呢?那么就需要我们来定位了。普通的情况下,我们可以通过OAM页面来找到该OAM页所管理的分配页,然后再根据分配页来定位该页号。通过用dbcc listoam,dbcc allocdump等命令可以定位到某页。反过来也差不多,页号已经确定,那么我们就可以找到该分配页中的控制该页的开关,将其关掉。这样在bcp out或者select的时候,就可以跳过该页了。当然这些都是需要工具进行操作的,而且需要专业的人士才可以处理。

3、TEXT/IMAGE页暂时没有研究
当然最简单的办法肯定不是以上这些,最简单的办法,就是打电话给技术支持咯

作者: hobbylu   发布时间: 2011-04-06