转: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'
然后把表重建 ,记得数据如果能恢复照样恢复,不行的话就重建了
分享到:
相关推荐
在LINUX操作系统中安装SybaseIQ数据库(服务器或客户端),总是会报这样那样的错误,其原因大都是因为缺少某些库文件(文件后缀为.so, 类似于Windows系统中的.dll文件)。本帖分享的“LINUX系统安装SybaseIQ数据库所...
SybaseIQ数据库v16.0版本指南文档合集,全部是简体中文版的,包含多大34份文档内容十分全面,其中有原Sybase公司发布的《TransactSQL用户指南》,非常适合数据库初学者使用,而网上目前能找到的指南文档大都是英文版...
SybaseIQ数据库64位LINUX系统服务器v16.0安装包,可选择Express Edition模式安装(在该模式下无试用时长30天限制、无使用功能限制、数据库最大容量5GB),只能安装在64位的LINUX操作系统(IA-AMD架构)上。...
在SYBASE中用于生当前数据库中所有表的建表语句的过程。 在系统备份的加上BCP,那是相当的好。
sybaseiq数据库迁移实例.pdf
在linux平台上对 SybaseIQ数据库备份与恢复操作超详细介绍,一步接一步简单明了,供大家参考。
DSP芯片中IQ数据库使用说明,详细介绍。
每个 SAP Sybase IQ 数据库都在一个服务器上运行。 根据平台和管理工具, SAP Sybase IQ 提供多种方法来启动和停止服务器。
数据库 IQ资料.7z
支持sybase iq 16 数据库连接驱动 jconn2.jar 在jdk1.5下是好用的 jconn3.jar 未测试 jconn4.jar 在jdk1.6下是好用的 连接串: jdbc:sybase:Tds:127.0.0.1:2638/iqdemo
SybaseIQ数据库64位Windows系统服务器v16.0安装包,,可安装在32位的Windows操作系统上
Sybase-iq数据库函数整理文档.docx
SybaseIQ数据库32位Linux系统客户端v15.2安装包,可安装在32位的Linux操作系统上,官方网站目前仅有适用于64位平台的服务器安装包供下载,适用于32位平台的安装包已绝迹。。。本安装包在百度云盘的下载地址为:...
培训主题介绍 1.介绍Sybase IQ 2.讲解Sybase IQ的安装步骤 3.创建Sybase IQ数据库
SybaseIQ数据库64位IBM-UNIX系统服务器v16.0安装包,可选择Express Edition模式安装(在该模式下无试用时长30天限制、无使用功能限制、数据库最大容量5GB),只能安装在64位的IBM-UNIX操作系统(AIX架构)上。...
SybaseIQ数据库32/64位Windows系统通用客户端v15.0安装包,可安装在32位的Windows操作系统上,官方网站目前仅有适用于64位平台的服务器安装包供下载,适用于32位平台的安装包已绝迹。。。本安装包在百度云盘的下载...