`
bdk82924
  • 浏览: 565052 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

如何删除IQ数据库中损坏的表

 
阅读更多

转:http://blog.chinaunix.net/space.php?do=blog&uid=16765068&id=108095

 由于某种原因,IQ数据库中的表出现损坏不能访问,并且可能使用drop table语句也不能把它删除。对于这样的表,当我们访问它时IQ会报如下错误:

    ASA Error -1009039: main Bufman: Incorrect page header read; buffer={btype=14,nlb=16,blk=992,pbn=992,npb=16,uid=562,txn=1829,sp=0,flgs=0xc08} page={btype=0,nlb=0,npb=0,ctr=0,cta=0,pbn=0,txn=0,sp=0,ver=0,pb=0,pus=0}.
     -- (s_buf.cxx 1140)
    Msg: 21, Level: 14, State: 0 Line: 0
 
    当发生这样的问题,我们打算删除损坏的表时该如何操作呢?下面介绍一下具体的方法和步骤(适用于IQ 12.6和IQ 12.7):
 
(1) 重启服务器
start_asiq -n bad_db_server -x 'tcpip{port=xxx}' -gm 1 -gd dba bad_db.db
在这个命令行中,-gm 1仅仅允许一个用户做连接,-gd只允许DBA访问。当强制删除对象时,必须禁止其他用户连接。
   
    说明: bad_db_server即出现损坏的IQ Server,其名称为.cfg文件中-n参数指定的引擎名
          bad_db.db即出现损坏IQ数据库的catalog db名称
 
(2) 打开临时选项FORCE_DROP为ON:
set temporary option FORCE_DROP = 'ON'

(3) 删除所有不一致对象
使用DROP TABLE损坏的表。在重新启动服务器之前不要执行任何其他的DDL或者DML命令。

(4) 重新启动服务器
可以用-iqdroplks选项重新启动服务器,以恢复泄露的空间并把分配映射图(allocation map)修改到正确状态。
start_asiq -n bad_db_server -x 'tcpip{port=xxx}' -iqdroplks bad_db bad_db.db
您需要指定两次数据库名称,前者是-iqdroplks选项使用的,后者指定您要启动的数据库。
(5) 运行sp_iqcheckdb
sp_iqcheckdb 'allocation database'。
这个步骤用计算出来的分配映射图重新设置数据库分配映射表。
如果上面的存储过程执行没有错误出现,它将显示“Freelist Updated”信息,表明已经完成泄露空(leaked space)间的恢复
(6) 发出一个checkpoint
   即执行checkpoint语句
(7) 使用通用方式停止服务器
(8) 使用正常方式启动服务器,启动后即可进行正常操作。
我的解决方法:

(2) 打开临时选项FORCE_DROP为ON:
set temporary option FORCE_DROP = 'ON'
然后把表重建 ,记得数据如果能恢复照样恢复,不行的话就重建了

 

分享到:
评论

相关推荐

    SYBASE数据库维护指南

    - 当使用某个表时报出表损坏的信息时,可以使用`dbcc`确定数据库中其他表是否也有损坏。 **命令示例:** - `dbcc checktable(表名)`:检查指定表的索引和数据页是否正确链接,索引是否正确排序,所有指针是否一致...

    Sybase IQ 16.0中文版本 管理:备份、恢复和数据恢复

    `BACKUP DATABASE` 命令用于备份Sybase IQ数据库到一个或多个档案设备上。此命令的基本语法可以指定备份类型,并通过 `TO` 子句将输出定向到档案设备上。 ``` BACKUP DATABASE [backup-option...] TO archive_...

    IQ管理员手册

    ### IQ管理员手册知识点详解 #### 一、Sybase IQ 系统管理概述 ...综上所述,Sybase IQ管理员手册提供了丰富的信息和指导,涵盖了从基本的概念介绍到实际操作的各种方面,对于理解并有效管理Sybase IQ数据库至关重要。

    Sybase IQ 16.0中文版本 错误消息

    这部分错误关注的是表和视图的定义和使用过程中的问题。例如: - **消息289**:在定义表时出现错误,可能是由于列定义不合法。 - **消息300**:报告试图访问不存在的视图。 ##### 消息503到619 这些错误消息主要...

    Sybase IQ教程

    - **ODBC/JDBC驱动**:介绍如何使用这些接口连接Sybase IQ数据库。 - **API文档**:提供编程接口文档,方便开发者调用。 - **示例代码**:给出具体的应用示例,帮助理解如何集成Sybase IQ到应用程序中。 通过以上...

    Sybase IQ 12.7故障处理指引(中文)

    该版本的故障处理指引主要面向数据库管理员和技术支持人员,旨在帮助他们快速诊断并解决在使用过程中遇到的各种问题。 #### 二、文档结构与内容概览 本故障处理指引主要包括以下几个部分: 1. **简介**:介绍...

    sysbase 错误集

    - 这里通过更新 `master..sysdatabases` 表中的记录来将数据库的状态修改为 `-32768`,该状态表示数据库被标记为可疑。 3. **导出数据**: - 使用 `bcp out` 命令导出数据库数据到文件。 - 备份完成后,执行以下...

    mysql unique option prefix myisam_recover instead of myisam-recover-options的解决方法

    MySQL数据库在管理MyISAM表时,经常遇到表损坏的问题,这主要由于系统崩溃、硬件故障或其他原因导致。MyISAM引擎是MySQL早期版本中常用的存储引擎,它以速度快、占用磁盘空间少而受到青睐,但其非事务性和易损坏的...

    BusinessObject Crystal web intelligence 错误代码文档

    根据提供的文件信息,本文将对BusinessObject Crystal web intelligence在安装及应用过程中可能遇到的错误代码进行详细解析,并探讨这些错误代码的原因与解决方法。 ### BusinessObject Crystal web intelligence ...

Global site tag (gtag.js) - Google Analytics