转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
解决 Error 605 错误的方案         ★★★★

解决 Error 605 错误的方案

作者:闵涛 文章来源:闵涛的学习笔记 点击数:817 更新时间:2009/4/22 23:09:43

错误原始信息(例子):

An attempt was made to fetch logical page '%ld' in
database '%.*s' from cache '%.*s'. Page belongs to
object with id '%ld', not to object '%.*s'.

-------------------------------------------------------------------------------------------------
使用dbcc tablealloc 去检查出现错误的表

命令格式:
 dbcc tablealloc('错误信息中第二个表对象')

最好将错误结果使用 isql 的 -o 参数输出到文件中便于察看


注意:
    这个dbcc 操作可能会锁住接受检查的表,这将影响到其他进程的访问和操作。
-------------------------------------------------------------------------------------------------

DBCC 结果(例子为正常结果):

The default report option of OPTIMIZED is used for this run. 
The default fix option of NOFIX is used for this run. 
*************************************************************** 
TABLE: Tablename OBJID = id_number 
INDID=1  FIRST=257  ROOT=264  SORT=0 
Data level: 1.  1 Data pages allocated and 1 Extents allocated. 
Indid   : 1.  1 Index pages allocated and 1 Extents allocated. 
INDID=2  FIRST=272  ROOT=272  SORT=0 
Indid   : 2.  1 Index pages allocated and 1 Extents allocated. 
TOTAL # of extents = 3 
Alloc page 256 (# of extent=1 used pages=2 ref pages=2) 
Alloc page 256 (# of extent=1 used pages=3 ref pages=3) 
Alloc page 256 (# of extent=1 used pages=2 ref pages=2) 
Total (# of extent=3 used pages=7 ref pages=7) in this database 
DBCC execution completed. If DBCC printed error messages, contact a user with System Administrator (SA) role. 

-------------------------------------------------------------------------------------------------
一. 
如果有一些错误(例如2583或者其他)出现在 INDID为0之后,表示表本身数据损坏。
解决办法:
1. 使用 "select into" 或者 "insert into ... select " 将坏表中能够正常访问的数据取出装入一个临时表中。同时可以使用
" where"加上一些可以缩小选择范围的条件尽量多的将正常的数据取出
2. 或者使用bcp去导出正常的数据
3. 对于实在无法取出的数据,只能通过应用系统中的冗余或者相关信息进行恢复
4. 删除或者重命名坏表,并重新创建新表
5. 将导出的正常数据重新导入新表中

注意: 可能会有一些数据的丢失
-------------------------------------------------------------------------------------------------
二.
如果有一些错误(例如2583或者其他)出现在 INDID为1之后,说明表上的聚簇索引损坏,解决方法同一,也可能出现数据丢失。
如果有一些错误(例如2583或者其他)出现在 INDID为2,3,4.....之后,说明为表上的非聚簇索引损坏,解决方法比较简单,删除此索引然后重新创建即可。

步骤如下:
1. use databasename
   go

2. 获知索引名称
   select name from sysindexes where id = table_object_id and indid = index_number
   go
   
3. 创建一个跟坏索引不同名称但具有相同列的索引
   create index
   你可以使用 sp_help table_name 去察看索引上的列信息
4. 将已损坏索引删除
   drop index

-------------------------------------------------------------------------------------------------
当这些故障排除完毕后,有时间及业务系统允许的情况下,最好再做一次全库的dbcc检查

DBCC checkdb(db_name)
DBCC checkalloc(db_name)
DBCC checkcatalog(db_name)

 


[Web开发]解决phpmyadmin上传文件大小限制的配置方法  [Web开发]解决ecshop安装过程中“特定目录修改权限检查”出…
[Web开发]IIS安全配置详细讲解与指导  [Web开发]解决"操作必须使用一个可更新的查询"-ASP应用
[Web开发]解决在VS2005、VWD中创建用户时提示““密码最短长…  [MySql]解决mysql 1040错误Too many connections的方法
[办公软件]PowerPoint演示文稿无法打开的解决方案  [办公软件]解决PowerPoint 2007无法输入中文
[办公软件]解决PowerPoint课件中的菜单问题  [办公软件]问答形式给您解决打印机不能正确打印字体的难题
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台