DB2 reorg表,因表空间不够出现错误

当对一个表的结构进行改变后,需要reorg表,重新组织其目录统计信息,为数据库的访问计划提供信息,以便高效执行对其的操作。

 

在一次维护数据库中,因添加了表的一列后,对其作reorg操作,发生错误,通过db2 "? sql0xxx"查的错误原因为物理空间已满,然后在$DB2_INSTALL_DIR/sqllib/db2dump/查看db2diag.log可以发现是表空间大小不够。因为reorg table如果没有指定用哪个表空间来做reorg操作的话,会默认使用该表所在的表空间,而reorg table and index xxx即表和其上的索引一起reorg的话,会默认使用系统临时表空间。

 

我的这个表数据量特别大,所以我在一个空间很大的盘创建了新的临时表空间MYTEMPSPACE1,然后用这个表空间来做reorg操作reorg table $tablename index $indexname use MYTEMPSPACE1

 

这里创建这个表空间有将就,他的pagesize要和表的pagesize匹配,然后维护人员可以用原来db2 中创建表空间的语句来参照着创建自己新的表空间。用db2look -d $dbname -l -e -x -o $db.layout

 

这样查看db.layout就可以把原来创建表空间的一些参数复制来使用。

 

最后执行的时候因为我的表实在太大,还是出现问题,在我的临时表空间减小了40G左右的时候,就不用这个空间了(我的空间还有50多G的,不知道是不是创建表空间的时候制约了这点,还没有去查),又使用了默认的系统临时表空间(30G)把这个表空间用完后,又报错误空间不够。

 

 

当时快崩溃了,就尝试着只执行reorg table $tablename use MYTEMPSPACE1,执行快一个小时后,执行成功!!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值