mysql reorg,db2 reorg table failed处理

db2 GET SNAPSHOT FOR TABLES on DBName通过db2pd reorg选项获得当前正在执行和近期完成的重组信息:db2pd -db DBName -reorg index通过list history reorg all for DBName获得表或索引重组信息:db2 list history reorg all for DBName此外db2 list utilities show detail 可以监控 LOAD ,BACKUP ,RESTORE, RUNSTATS

总结

数据库在进行reorg时失败由于系统无法分配新的页,表空间方面可能存在问题,需要扩充表空间或reorg表时重新指定表空间。

创建临时表空间操作

注意 pagesize要和表的pagesize匹配,可以用原来db2 中创建表空间的语句来参照着创建自己新的表空间。

$db2look -d $dbname -l -e -x -o $db.layout

在线重组表:

在线reorg占用资源很少,对系统影响也很小。在线reorg也叫inplace reorg,不会创建数据副本,而是在原表空间进行,表数据的重组是分批次的,每批次只处理一部份数据,因此会比离线reorg慢很多。

在线reorg可以随时启动和终止,在线reorg会记录大量日志,保证其可恢复性。在线reorg是在后台异步执行的。

db2 reorg table db2inst2.staff inplace allow write access        可以通过db2 list applications show detail |grep db2reorg 查看是否有reorg正在执行

Reorg索引:

当离线reorg结束后,会重建表上的所有索引。在线reorg仅仅维护索引,而不会重建索引(聚集索引除外)。当在线索引reorg完成后,如需要进行索引单独重组,可以使用:db2 reorg indexes all for table tabname

1.离线重组与在线重组对比:

0c2e4e82318c0dff3a0778733838cc41.png

2.重组过程中出现以外(断电),对正在重组的表或索引有何影响?

离线重组:如果断电时reorg正在进行scan或build,崩溃恢复时改表将恢复到初始状态;如果reorg正在进行replace(copy),崩溃恢复将重新执行改阶段;如果reorg正在index create,崩溃恢复阶段将把索引失效,并延迟索引重建。

在线重组:如果断电时reorg正在进行,那么在执行reorg的那个事务会回滚(在线reorg采用增量的方式进行数据处理,已经完成的迁移不会收到影响)。但reorg的状态是终止(paused),可以重新恢复。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值