日期:2014-05-16  浏览次数:20451 次

转:resumable_timeout 参数说明

总结: 当在会话里打开这个功能后(运行 alter session enable resumable timeout ,
默认7200).当运行某些sql导致空间不足(表空间用完了)、或已抵达该表/段的 maxextents,
或者 该用户使用此表空间的配额已经用完(原话:Out of space condition, Maximum extents
reached condition, Space quota exceeded condition.),此时Oracle将不会报错,而是把
语句挂起,让 dba 在 timeout 所指定的时间范围内解决问题,之后语句又可以继续运行。

这个功能主要是防止因为空间不够的原因导致session failed

例如你create一个很大index,三天三夜后,完成了99%,这时候表空间用完了导致create失败,那只能吐血了

比如alter session enable resumable timeout 60;

挂起时间60秒到了之后就报错了,可以把挂起时间修改大一些,从9i开始,Oracle提供了一种避免因为space Error而导致事务异常的操作,那就是resumable.通常,DBA在日常工作中,往往忽略了对空间资源上的需求,比如一个大的事务所需要的temp,undo,data space等等。直到出现了经典的ORA-01652才恍然

有了resumable session后,他会等待一段时间,等你有了空间后继续

使用很简单,首先user要有resumable权限,如果没有,可以grant resumable to user

session开始时,alter session enable resumable就可以了

对于application可以通过logon trigger: