You have enabled resumable space allocation in your database by setting the
RESUMABLE_TIMEOUT parameter set to a nonzero value.
Which three statements about resumable space allocation are true? (Choose three.)
A. Even with resumable space allocation enabled for your database, you can disable resumable space allocation for a single session.
B. A resumable statement is suspended only if an out of space error occurs.
C. When a resumable statement is suspended, the transaction that contains the statement is also suspended.
D. A resumable statement can only be suspended and resumed once during the execution of the statement.
E. You can query the V$SESSION_WAIT dynamic performance view to identify the statements that are suspended for a session.
此题考点是可恢复空间分配。
可恢复空间分配,在如果出现空间故障时,提供了一种暂停并在之后恢复数据库操作的一种方式。受影响的操作会被暂停,而不是返回一个错误。没有进程必须重启。当空间问题被解决时,挂起的操作会自动的恢复。
可以在系统或会话级别启用(alter system set RESUMABLE_TIMEOUT 语句和 alter session enable resumable 语 句 ) 。 默 认 一 个 新 会 话 的 可 恢 复 模 式 是 禁 用 的 , 除 非 在 初 始 化 参 数 中 显 式 指 定 了RESUMABLE_TIMEOUT 初始化参数值为非零值。
可恢复语句支持下列条件发生时:
1.超出空间条件
2.最大分区达到
3.达到空间配额
--B 错误
挂起语句自动地导致整个事务挂起。因此所有事务资源通过语句暂停和恢复。 C 正常
一个挂起的语句可以强制的抛出异常,通过使用 DBMS_RESUMABLE.ABORT()存储过程。
当设置了 RESUMABLE_TIMEOUT 参数,一个可恢复语句会在超时时间后唤醒,如果错误条件在超时时间内仍然未解决,
会返回异常给用户。
一个可恢复语句可以被挂起和恢复在执行的时候多次 --D 错误
会话在下列情况下的可恢复空间分配被禁用:
1.会话没执行 ALTER SESSION ENABLE RESUMABLE 语句(系统级别未开启的话)
2.会话执行了 ALTER SESSION DISABLE RESUMABLE 语句
3.会话执行了 ALTER SESSION ENABLE RESUMABLE,并且超时值为 0(RESUMABLE_TIMEOUT 参数或选项 TIMEOUT timeout_value 指定为 0)
RESUMABLE_TIMEOUT 设置后,在使用 ALTER SESSION ENABLE RESUMABLE 时会使用默认超时时间,不用显式再指定,如果显式指定 0(或 disable),就会禁用可恢复空间分配。 A 正确
可查询的视图:
DBA_RESUMABLE:当前指定或被挂起可恢复语句。
V$SESSION_WAIT:当一个语句被挂起,这个语句被放置到等待状态。一行记录会插入到这个视图,并且EVENT 字段会包含“statement suspended, wait error to be cleared”
--E 正确