今天库由于表空间问题挂了 ,回复后一张表删除不了drop的时候提示死锁回滚“68”,查看如下:表挂了
select *from NWH.GPRS_TICKET_03;
[IBM][CLI Driver][DB2/LINUXX8664] SQL1477N 对于表 "NWH.GPRS_TICKET_03",不能访问表空间 "28" 中的对象 "50"。 SQLSTATE=55019
麻烦问下这个表为什么删不了
SQL1477N 对于表 \"<表名>\",不能访问表空间 \"<表空间标识>\" 中的对
象 \"<对象标识>\"。
说明:
试图访问一个表,而该表的其中一个对象是不可访问的。由于下列原因之一,该
表可能不可访问:
* 当回滚工作单元时,该表激活了 NOT LOGGED INITIALLY。
* 该表是一个已创建的分区临时表或者已声明的分区临时表,由于已声明此临时
表或者已将它实例化,因此一个或多个数据库分区失败。
* ROLLFORWARD 在此表上遇到了 NOT LOGGED INITIALLY 激活,或者遇到了
NONRECOVERABLE 装入。
不允许访问此表,因为不能保证其完整性。
用户响应:
可以执行下列操作之一。
* 如果对象是一个表,并且它已经激活了 NOT LOGGED INITIALLY,那么删除该
表。如果需要此表,那么重新创建。
* 如果对象是一个数据分区,那么将它与表拆离。如果需要此数据分区,那么添
加一个新的数据分区。
* 如果对象是一个非分区索引,那么删除该索引。如果需要此索引,那么创建一
个新索引。
* 如果此表是一个已创建的临时表,那么请与服务器断开连接然后再次连接,以
将此临时表的新副本实例化。
* 如果该表是已声明临时表,那么删除该表。如果此表是必需的,那么再次对其
进行声明。
* 否则,从表空间或数据库备份中复原。备份映像必须在非可恢复操作(NOT
LOGGED INITIALLY 操作或 NONRECOVERABLE 装入)完成之后的落实点之后获
取。
可以使用目录和管理视图来确定对象。要确定对象是否是一个表,使用以下查询:
SELECT TABNAME
FROM SYSCAT.TABLES
WHERE TBSPACEID=\"
TABLEID=\"
如果以上查询的结果中未出现表名,那么可以使用以下查询来确定对象是否是一
个分区:
SELECT DATAPARTITIONNAME, TABNAME
FROM SYSCAT.DATAPARTITIONS
WHERE TBSPACEID=\"
PARTITIONOBJECTID=\"
要确定对象是否是一个索引,使用以下查询:
SELECT INDNAME
FROM SYSCAT.INDEXES
WHERE TBSPACEID=\"
INDEX_OBJECTID=\"
要确定对象是一个已创建的临时表还是已声明的临时表,使用以下查询:
SELECT TABNAME
FROM SYSIBMADM.ADMINTEMPTABTABLES
WHERE TBSP_ID=\"
INDEX_TAB_FILE_ID=\"