oracle資料庫OCP
You want execution of large database operations to suspend, and then resume, in the event of space allocation failures.
You set the value of the initialization parameter RESUMABLE_TIMEOUT to 3600.
Which two statements are true?
A.Before a statement executes in resumable mode, the ALTER SESSION ENABLE RESUMABLE statement must be issued in its session
B.Data Manipulation Language (DML) operations are resumable, provided that they are not embedded in a PL/SQL block.
C.A resumable statement can be suspended and resumed only once during execution.
D.A suspended statement will report an error if no corrective action has taken place during a timeout period.
E. Suspending a statement automatically results in suspending a transaction and releasing all the resources held by the transaction.
Answer: AD
【解析】
可恢複空間配置設定的工作方式為:
僅當通過以下操作之一為語句的會話啟用了可恢複空間配置設定時,該語句才以可恢複模式執行:
該ALTER SESSION ENABLE RESUMABLE聲明是在語句執行前的會議時發出的RESUMABLE_TIMEOUT初始化參數設定為非零值。
該ALTER SESSION ENABLE RESUMABLE TIMEOUT timeout_value語句在執行之前在會話中發出,并且timeout_value是非零值。
當出現以下情況之一時,可恢複語句被挂起(這些條件導緻非可恢複語句被發出相應的錯誤信号):
空間不足
達到最大範圍的條件
超出空間配額條件。
當中止可恢複語句的執行時,有一些機制可以執行使用者提供的操作,記錄錯誤以及查詢語句執行的狀态。暫停可恢複語句後,将執行以下操作:
該錯誤在警報日志中報告。
系統發出“可恢複的會話已挂起”警報。
如果使用者在AFTER SUSPEND系統事件上注冊了觸發器,則将執行使用者觸發器。使用者提供的PL / SQL過程可以使用DBMS_RESUMABLE包和DBA_或USER_RESUMABLE視圖通路錯誤消息資料。
挂起語句會自動導緻挂起事務。是以,所有事務資源都通過語句中止和恢複來保留。
解決錯誤情況後(例如,由于使用者幹預或其他查詢釋放的排序空間),被挂起的語句将自動恢複執行,并清除“可恢複的會話被挂起”警報。
可以使用該DBMS_RESUMABLE.ABORT()過程強制執行已暫停的語句引發異常。DBA或發出該語句的使用者可以調用此過程。
由RESUMABLE_TIMEOUT初始化參數或ALTER SESSION ENABLE RESUMABLE TIMEOUT語句中的逾時值指定的暫停逾時間隔與可恢複語句相關聯。如果在逾時間隔内未解決錯誤條件,則會暫停在逾時間隔内暫停的可恢複語句,并将異常傳回給使用者。
可恢複語句可以在執行期間被挂起和恢複多次。
【官方手冊】
https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/managing-space-for-schema-objects.html#GUID-46AE3FD8-95D4-4CFA-9F3C-B80C5AFDE75B