暂无图片
快速purge dba_recyclebin
我来答
分享
疯狂的小马达
2019-05-23
快速purge dba_recyclebin

请教个问题,有没有什么办法可以快速purge回收站?现在回收站里有33万张表。正常purge要好几天。有什么办法提高下速度。

我来答
添加附件
收藏
分享
问题补充
7条回答
默认
最新
章芋文

之前在客户那里写过一个并行清理回收站的脚本,这个脚本再生成64个子脚本,并自动并行运行这64个脚本,速度还是非常快的。

每个脚本里面的内容就是purge不同的表:

purge table USER.XX1;
purge table USER.XX2;
purge table USER.XX3;
...


当然最好是定期清理,比如每周清理一次。

暂无图片 评论
暂无图片 有用 0
疯狂的小马达

章大师,方便提供一个示例吗?不太会写这种存储过程呢。

暂无图片 评论
暂无图片 有用 0
章芋文

参考刚更新的工具:

【墨天轮工具】Drop User Fast (in parallel):https://www.modb.pro/download/2805



当时给客户做测试,测试完需要清理用户,使用了该脚本的0.1版本,但是脚本有一个缺陷就是忽略了回收站的问题(已修复),drop table后,表全部进入了回收站,于是改写了脚本,又并行清理了一遍回收站,把mk_dropusertabspurge.ksh改写如下:

1、54、55行改成查询回收站

2、117行命令改成purge table $OWN.\"$TAB\";

暂无图片 评论
暂无图片 有用 0
疯狂的小马达

感谢大师!

暂无图片 评论
暂无图片 有用 0
lastwinner

回收站里有33万张表

——————————

据此信息推断:

1、开发的程序里可能存在大量的drop临时表又重建的情况


故而建议从源头上找出为何会有这么多表在回收站里,这样治标又治本。

暂无图片 评论
暂无图片 有用 0
疯狂的小马达

嗯!已经跟开发沟通过,让他们去改程序了。现在里面的那些表要处理掉。感谢大师!

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