暂无图片
分享
scott
2020-06-16
shrink收缩高水位疑问

第一步:启用行迁移
alter table owner.table_name enable row movement;
第二步:
alter table owner.table_name shrink space compact;
第三步:
alter table owner.table_name shrink space;
第四步:关闭行迁移
alter table owner.table_name disable row movement;

Q:
是不是只有第三步,会锁表,需要停业务?
其余一、二、四步,不需要停业务,可以在线做?
对于一张10GB以上的表,在第几步骤花销的时间最多?

收藏
分享
3条回答
默认
最新
盖国强

在 Compact 和 降低 HWM 都需要加锁,只是锁定级别不同,前者行级锁,后者表级锁。

HWM调整在第二阶段,要释放空闲数据块。此过程需要在表上加X锁,会造成表上的所有DML语句阻塞。在业务特别繁忙的系统上可能造成比较大的影响。

所以一般都是,可以先执行shrink space compact重组数据(这个步骤最慢),然后在业务不忙的时候再执行shrink space降低HWM释放空闲数据块。

最后 shrink space 这个步骤比较快。在业务闲时可能秒级就完成了。

暂无图片 评论
暂无图片 有用 0
盖国强

可以搜索墨天轮,有很多相关的文章。

参考:
https://www.modb.pro/db/12109
https://www.modb.pro/db/26483

暂无图片 评论
暂无图片 有用 0
scott
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏