oracle ocp 052-30

賀子_DBA時代發表於2014-11-14

30. In which situation may the UNDO_RETENTION parameter be ignored, even if it is set to a value?

A.when the data file of the undo tablespace is autoextensible

B.when there are more than one undo tablespaces available in the database

C.when the undo tablespace is of a fixed size and retention guarantee is not enabled

D.when the undo tablespace is autoextensible and retention guarantee is not enabled

Answer: C

答案解析:

此題考的是UNDO_RETENTION 即使設定了值,在哪些情況下會忽略。

在固定大小的還原表空間,且沒有設定retention guarantee 強制保留,UNDO_RETENTION 就會被忽略。如果設定了retention guarantee ,即使是固定大小的表空間,也不會忽略UNDO_RETENTION,但有可能出現事務失敗。

參考:http://blog.csdn.net/rlhua/article/details/12259555

配置還原保留時間

 

UNDO_RETENTION指定已提交的還原資訊要保留多長時間(秒)。僅在以下情況下才必須設定這個引數:
? 還原表空間啟用了AUTOEXTEND選項
? 要設定LOB 的還原保留時間
? 要保證保留時間
UNDO_RETENTION初始化引數指定還原保留時間的下限閾值(秒)。可將自動擴充套件的還原表空間的最短還原保留時間設定為預期的最長閃回操作所需的時間。對於自動擴充套件的還原表空間,系統至少按這個引數指定的時間保留還原資料,而且還會自動調整還原保留時間以滿足查詢的還原要求。但是,此自動最佳化的保留時間可能不足以執行閃回操作。
對於固定大小的還原表空間,系統會根據還原表空間大小和使用歷史記錄,自動調整到儘可能最優的還原保留時間;系統會忽略UNDO_RETENTION直至啟用保留時間保證。因此,進行自動還原管理時,在以上中列出的三種情況都使用UNDO_RETENTION設定。
對於這三種以外的情況,會忽略此引數。
還原資訊分為三類:
? 未提交的還原資訊(活動):支援當前執行的事務處理,如果使用者要回退事務處理或事務處理失敗,需要用到這類資訊。絕對不會覆蓋未提交的還原資訊。
? 提交的還原資訊(未過期):不再需要用來支援執行的事務處理,但是為了符合還原保留時間間隔,仍然要用到這類資訊。這也稱為“未過期”還原資訊。當不是因為缺少空間而導致活動事務處理失敗時,就會保留提交的還原資訊。
? 過期的還原資訊(過期):不再需要用來支援執行的事務處理。活動事務處理需要空間時會覆蓋過期的還原資訊。
 
 
預設還原行為是覆蓋已提交、但尚未過期的事務處理的還原資訊,而不是讓活動事務處理因缺少還原空間而失敗。
保證保留時間會改變此行為有了保留時間保證,即使會導致事務處理失敗,仍然會強制執行還原保留時間設定
RETENTION GUARANTEE是表空間屬性而不是初始化引數。此屬性只可使用SQL 命令列語句來更改。透過更改還原表空間來保證保留時間的語法是:
SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;
要將有保留時間保證的還原表空間返回到其常規設定,請使用以下命令:
SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;
保留時間保證僅適用於還原表空間。嘗試對非還原表空間設定保留時間會產生以下錯誤:
SQL> ALTER TABLESPACE example RETENTION GUARANTEE;
ERROR at line 1:
ORA-30044: 'Retention' can only specified for undo tablespace

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-1332244/,如需轉載,請註明出處,否則將追究法律責任。

相關文章