oracle10 dba_tablespace中的retention
oracle10g中,針對dba_tablespace,加了其中一個額外列是retention.
回憶一下Oracle 10g之前,在自動Undo管理的模式下,我們都知道undo_retention引數的作用是用來控制當transaction被commit之後,undo資訊的保留時間。這些undo資訊可以用來構造consistent read以及用於一系列的閃回恢復,而且足夠的undo資訊還可以減少經典的ORA-01555錯誤的發生,在Oracle 9R1中呢,這個value的預設值是900秒,Oracle 9R2以後這個value提高到了10800秒。即使我們設定了undo_retention這個引數,那麼在預設情況下,這是一個noguarantee的限制。也就是說我將undo_retention=10800,那麼原本以為在一個transaction commit之後,之前的undo還可以儲存10800秒,才可以被別的transaction DML覆蓋,孰不知當有其他的transaction DML處理過程中需要undo空間的時候,恰恰這個時候not enough space for undo,也就說我並沒有允許undo tablespace自動擴充套件。由於我們的retention是noguarantee的,所以transaction DML就會忽略這種retention的時間限制直接回繞覆蓋我們的undo資訊,這種結果下其實在很多情況下是不希望得到的。
Oracle 10g之後,oracle提出了一個特性就是undo的guarantee,可以強制oracle來guarantee的undo資訊,也就說如果一個session的transaction DML需要undo空間的時候,即使undo的空間不足,這個session也不會強制覆蓋由undo_retention所保護的undo資訊,那麼這個transaction DML會因為undo空間的不足會而report一個error並自動退出。
在Oracle10g中如何要修改guarantee模式可以
SQL> select tablespace_name,block_size,extent_management
2 segment_space_management,contents,retention
3 from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE SEGMENT_SP CONTENTS RETENTION BIG
------------------------------ ---------- ---------- --------- ----------- ---
SYSTEM 8192 LOCAL PERMANENT NOT APPLY NO
UNDOTBS1 8192 LOCAL UNDO NOGUARANTEE NO
SYSAUX 8192 LOCAL PERMANENT NOT APPLY NO
TEMP 8192 LOCAL TEMPORARY NOT APPLY NO
USERS 8192 LOCAL PERMANENT NOT APPLY NO
EXAMPLE 8192 LOCAL PERMANENT NOT APPLY NO
TEST 8192 LOCAL PERMANENT NOT APPLY NO
UNDO_SMALL 8192 LOCAL UNDO NOGUARANTEE NO
RBTEST 8192 LOCAL PERMANENT NOT APPLY NO
MYALAN 2048 LOCAL PERMANENT NOT APPLY NO
ALAN_SPACE01 8192 LOCAL PERMANENT NOT APPLY NO
ALAN_SPACE02 8192 LOCAL PERMANENT NOT APPLY NO
ALAN_SPACE03 8192 LOCAL PERMANENT NOT APPLY NO
LMT 8192 LOCAL PERMANENT NOT APPLY NO
MYTEST 8192 LOCAL PERMANENT NOT APPLY NO
MSSM 8192 LOCAL PERMANENT NOT APPLY NO
MYSTOCKS 8192 LOCAL PERMANENT NOT APPLY NO
SQL> alter tablespace undo_small retention guarantee;
表空間已更改。
SQL> select tablespace_name,block_size,extent_management
2 segment_space_management,contents,retention
3 from dba_tablespaces;
TABLESPACE_NAME BLOCK_SIZE SEGMENT_SP CONTENTS RETENTION
------------------------------ ---------- ---------- --------- -----------
SYSTEM 8192 LOCAL PERMANENT NOT APPLY
UNDOTBS1 8192 LOCAL UNDO NOGUARANTEE
SYSAUX 8192 LOCAL PERMANENT NOT APPLY
TEMP 8192 LOCAL TEMPORARY NOT APPLY
USERS 8192 LOCAL PERMANENT NOT APPLY
EXAMPLE 8192 LOCAL PERMANENT NOT APPLY
TEST 8192 LOCAL PERMANENT NOT APPLY
UNDO_SMALL 8192 LOCAL UNDO GUARANTEE
RBTEST 8192 LOCAL PERMANENT NOT APPLY
MYALAN 2048 LOCAL PERMANENT NOT APPLY
ALAN_SPACE01 8192 LOCAL PERMANENT NOT APPLY
ALAN_SPACE02 8192 LOCAL PERMANENT NOT APPLY
ALAN_SPACE03 8192 LOCAL PERMANENT NOT APPLY
LMT 8192 LOCAL PERMANENT NOT APPLY
MYTEST 8192 LOCAL PERMANENT NOT APPLY
MSSM 8192 LOCAL PERMANENT NOT APPLY
MYSTOCKS 8192 LOCAL PERMANENT NOT APPLY
需要注意的是這種guarantee模式只針對undo tablespace別的表空間是不適用的。
在Oracle 10g中我們還可以設定undo_retention=0來讓Oracle自動調整保留提交後undo資訊的時間。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12361284/viewspace-199208/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java中@Retention是什麼?Java
- undo retention的思考(一)
- rman中RETENTION POLICY和BACKUP OPTIMIZATION的制約關係!
- oracle 11g undo_retention 以及retention guarantee 小節Oracle
- retention guarantee屬性
- 關於oracle的undo_retentionOracle
- 深度理解Oracle10g中UNDO_RETENTION引數的使用Oracle
- 深度理解Oracle10g中UNDO_RETENTION引數的使用(轉)Oracle
- oracle兩個 retention 引數Oracle
- window系統Oracle10安裝教程Oracle
- retention guarantee使用場景和作用
- 關於Oracle中ASH功能的特別說明,oracle10個/11g的新特點Oracle
- 在oracle10中使用低版本expOracle
- JAVA 元註解 @Target @Retention @Documented @InheritedJava
- 關於Oracle中DB time等待事件的特別說明,oracle10個/11g的新特點Oracle事件
- influxdb 筆記: Retention Police - RPsUX筆記
- rac oracle10 asm+raw for centos5.6 on vm serverOracleASMCentOSServer
- InfluxDB—資料保留策略(Retention Policies)介紹UX
- Using RMAN REPORT NEED BACKUP with Different Retention Policies
- Java面試題(19)Java元註解之@RetentionJava面試題
- 通過offsets.retention.minutes設定kafkaoffset的過期時間Kafka
- Oracle10g的UNDO_RETENTION自動化管理增強Oracle
- JAVA元註解@interface詳解(@Target,@Documented,@Retention,@Inherited)Java
- Oracle 10g Automatic Undo Retention Tuning (zt)Oracle 10g
- Oracle10新特性:臨時表空間組(temporary tablespace group)Oracle
- 在solaris 10/x86下安裝oracle10——ZT(轉)Oracle
- Oracle10 RAC 設定MAXLOGHISTORY,大家一般設定為多少?Oracle
- Oracle OCP IZ0-053 Q319(Rman Retention)Oracle
- [20190531]lob型別pctversion 和 retention.txt型別
- Oracle OCP 1Z0-053 Q706(Rman Retention Policy)Oracle
- CONTROL_FILE_RECORD_KEEP_TIME引數 和 retention policy 的關係 (轉郝總)
- oracle 11g rman configure retention policy to recovery window of days系列一Oracle
- 【百度點石(WSDM)】 Retention Rate of Baidu Hao Kan APP Users 小白經驗分享AIAPP
- oracle10 data guard(dg)__主庫添刪表空間及資料檔案相關測試Oracle
- 11g閃回日誌(flashback log)保留時間引數 - db_flashback_retention_target
- [20230227][20230109]Oracle Global Temporary Table ORA-01555 and Undo Retention.tOracle
- Python 中的類(中)Python
- 面試中聊到的javascript中的繼承面試JavaScript繼承