暂无图片
快速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
疯狂的小马达

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

暂无图片 评论
暂无图片 有用 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
疯狂的小马达

感谢大师!

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

回收站里有33万张表

——————————

据此信息推断:

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


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

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

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

暂无图片 评论
暂无图片 有用 0
打赏 0
盖国强
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
在生产环境中每天Oracle监控到的无效对象一般怎么去处理?
回答 3
已采纳
如果是Oracle内部,例如每天的统计信息任务偶尔会收集到oracle未来得急删除的均对像,我们一般把这种情况做监控报警排除。如果是应用程序涉及的无效的存储过程或函数之类的,如果程序已经不再使用,会联
请教一个问题,在一个procedure里边循环使用游标。如果打开游标需要2s的话。那么循环一次就耗时2s么
回答 1
是否可以外层循环游标,内层循环业务逻辑。这样就只需要打开一次了。同一个游标打开多次是否有必要?
DG修改备库redo时,删除备库当前current redo日志时报错,求解
回答 2
已采纳
暂定为bug,DG同步不受影响。Bug16091872ORA01623/ORA01624/ORA01567droppingORLonaSTANDBYdatabase(DocID16091872.8)D
Windows环境RMAN备份脚本报错问题
回答 10
已采纳
修改日期格式之后一点问题没有啊,你命令行里面的百分号是不是中文百分号,手打英文%上去试试
国产数据库厂商谁做的好?
回答 2
您好,国产厂商都各有各的特点,不妨说说您的需求?是有向国产数据库转型的需求,还是仅作调研?
不完全恢复某个pdb报错误
回答 3
验证了下setuntiltime"TODATE('2023041222:11:00','YYYYMMDDHH24:MI:SS')"和setuntilscn1476006这两种方式是可以做不完全恢复,但
CREATE TABLE T (x int primary key, y clob)一共创建了几个段?
回答 1
已采纳
语句CREATETABLET(xintprimarykey,yclob)一共能创建4个段,即表T的表,索引段(这个索引是为主键而创建的),还有两个CLOB段(一个CLOB段是LOB索引,另一个是LOB
Oracle一般做同步库用什么工具或者软件?
回答 7
做dg吧,简单可用
Oracle 21c 没有ojvm补丁了吗?
回答 1
已采纳
21c开始,OJVM已经被合并到RU里面了
mac系统能用oracle和plsql吗?
回答 5
使用docker可以