从9i开始,Oracle提供了一种避免因为空间不足而导致事务异常的操作,那就是resumable.通常,我们在日常工作中,往往忽略了对空间资源上的需求,直到事务异常结束才恍然大悟。在oracle 10g中这个功能得到了加强。

一,imp

resumable参数:当在导入数据是遇到空间问题,事务挂起直到问题解决。

二,session

可 以使用alter session命令启动可恢复语句。语句例如:alter session enable resumable timeout 60 name 'test',当遇到空间问题的语句最多会被挂起一分钟,如果在一分钟内,问题解决了的话,被挂起的语句会继续执行。如果没有在直到的时间内解决空间问 题,数据库就会生成一个错误消息,描述被挂起会话的试图会将name的值为标签。

三,instance

在为实例级别启动可恢复语句时,就需要设置实例参数resumable_timeout.这个值默认为0,也就是不等待你的处理,事务直接异常结束。如果是rac数据库需要每个节点单独设置这个参数。

如果需要跟踪语句的挂起,可查询视图,也可以使用触发器。只要有语句被挂起,dba_resumable视图中就会出现一条相对应的记录。

而且v$session视图中也会有相关的信息。被挂起的语句的event列会在挂起期间显示为“statement suspended,wait error to be cleard”