Oracle undo保留時間的幾個相關引數
參考文件:
https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams265.htm#REFRN10225
https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams264.htm#REFRN10224
MOS 文件 ID 1526122.1
MOS 文件 ID 846079.1
適用版本:10.1.0.5以上
相關引數:
_highthreshold_undoretention,_smu_debug_mode,_undo_autotune,undo_management,undo_retention,undo_tablespace
undo主要功能:
undo segement 回滾段主要工作是為了構造讀一致性,事物回滾,資料庫恢復,閃回查詢
正文:
這裡主要介紹幾個引數的設定
_highthreshold_undoretention —- 單位 秒,預設值 4294967294 。允許undo_retention 設定的最大值,當修改undo_retention的值超過改引數值,相關報錯 ORA-55567,ORA-55568,ORA-55569
_smu_debug_mode —undo除錯引數,通過設定特定值可以啟動特殊作用,如 4, 33445542
_undo_autotune — 預設 true 開啟。自動調整回滾段的保留時間。
undo_retention — 單位 秒,預設900秒,undo段儘可能的保留時間
undo_management —undo段管理方式,預設auto 自動使用undot ablespace 管理。MANUAL 利用 rollback segment管理
undo_tablespace —- 指定undo使用的表空間
SYS@ >select a.inst_id, a.ksppinm "Parameter",
2 b.ksppstvl "Session Value",
c.ksppstvl "Instance Value"
4 from x$ksppi a, x$ksppcv b, x$ksppsv c
5 where a.indx = b.indx and a.indx = c.indx
6 and a.inst_id=b.inst_id and b.inst_id=c.inst_id
and a.ksppinm in ('_undo_autotune', '_smu_debug_mode',
8 '_highthreshold_undoretention',
'undo_tablespace','undo_retention','undo_management')
10 order by 2;
Instance # Parameter Session Value Instance Value
---------- ----------------------------------- ------------------------- -------------------------
1 _highthreshold_undoretention 4294967294 4294967294
1 _smu_debug_mode 0 0
1 _undo_autotune TRUE TRUE
1 undo_management AUTO AUTO
1 undo_retention 900 900
1 undo_tablespace UNDOTBS1 UNDOTBS1
6 rows selected.
實際undo段的保留時間,undo段覆蓋與否,絕大數情況是由表空間的使用情況結合相關引數來決定的。(除非對undo tablespace 設定了retention guarantee 特性,強制保留undo segment達到保留時間值,不然不會覆蓋,哪怕表空間不足也是。隱患太大,不太考慮)
PS:undo段的保留時間只是讓已提交事務的 undo segment 標記為 UNEXPIRED(未過期),我們其實知道不管是UNEXPIRED 還是 EXPIRED 狀態的 undo segment 都是可能會被覆蓋的。只是優先覆蓋EXPIRED ,如果空間不足一樣覆蓋UNEXPIRED
以下情況都是 undo tablespace 是NOGUARANTEE
引數組合情況一:
在預設情況下,及_undo_autotune=true 時候及undo tablespace 的autoextend =yes 自動擴充套件
_smu_debug_mode =0
_undo_autotune =true
undo_retention =900 (這個值可自行修改)
開啟自動調整時實際的保留時間以試圖V$UNDOSTAT中的欄位 TUNED_UNDORETENTION 值為準,且>=undo_retention值
SELECT TO_CHAR(BEGIN_TIME, 'YYYY-MM-DD HH24:MI:SS') BEGIN_TIME,TUNED_UNDORETENTION FROM V$UNDOSTAT;
2018-07-08 01:59:26 1412
2018-07-08 01:49:26 900
2018-07-08 01:39:26 1413
2018-07-08 01:29:26 900
2018-07-08 01:19:26 1417
2018-07-08 01:09:26 2021
2018-07-08 00:59:26 1421
2018-07-08 00:49:26 900
2018-07-08 00:39:26 1422
2018-07-08 00:29:26 900
2018-07-08 00:19:26 1427
2018-07-08 00:09:26 900
2018-07-07 23:59:26 1430
2018-07-07 23:49:26 900
2018-07-07 23:39:26 1432
2018-07-07 23:29:26 900
2018-07-07 23:19:26 1436
情況二:
相對於情況一,如果只是 undo tablespace 非自動擴充套件
這時oracle根據undo表空間大小與使用情況自動調整最大可能的保留時間,及忽略undo_retention的值
情況三:
undo tablespace 自動擴充套件
_smu_debug_mode = 33445542
_undo_autotune =true
undo_retention =900 (這個值可自行修改)
這時oracle自動調整的
TUNED_UNDORETENTION = (undo_retention值 or 執行時間最長的 SQL 的執行時間)
情況四:
undo tablespace 自動擴充套件
_undo_autotune =false
undo_retention =900 (這個值可自行修改)
這時oracle 自動調整關閉
TUNED_UNDORETENTION = undo_retention
情況五:
對於lob 欄位
lob 欄位 undo 不是利用undo tablespace,而是利用自己儲存空間。 例如 BasicFiles lob欄位指定了 retention引數 則繼承 undo_retention引數的值。
lob情況特殊,還有其他一些限制 參考 mos文件846079.1
相關文章
- oracle臨時表空間相關Oracle
- Oracle安裝相關Linux引數(轉)OracleLinux
- Oracle direct path read相關隱含引數Oracle
- 資料庫管理-第123期 Oracle相關兩個引數(202301205)資料庫Oracle
- 關於oracle中的undoOracle
- 【PARANETERS】Oracle異常恢復相關的隱含引數Oracle
- 時間相關的操作
- pga相關引數
- Spark的相關引數配置Spark
- ORACLE並行相關的引數Oracle並行
- 28、undo_1_2(undo引數、undo段、事務)
- 時間相關的工具類
- MySQL效能相關引數MySql
- PostgreSQL AutoVacuum 相關引數SQL
- 【UNDO】Oracle undo表空間使用率過高,因為一個查詢Oracle
- SAP CRM One Order header資料庫表幾個和時間戳相關的欄位Header資料庫時間戳
- 獲取時間戳,幾個時間點的時間戳時間戳
- MySQL 連線相關引數MySql
- 全景拍攝“快門時間”相機引數設定策略
- 時間函式:與時間相關那些事。。。函式
- oracle保留兩位小數Oracle
- python 時間相關模組Python
- ORACLE線上切換undo表空間Oracle
- php 和 nginx 的幾個超時時間PHPNginx
- Oracle11g 自動化建庫及調整相關引數Oracle
- 4.2.10.1 Oracle Restart 相關變數配置OracleREST變數
- day18_常用類(時間相關的類丶數字類)
- Java Thread 類相關的幾個核心方法Javathread
- Oracle 21c新特性預覽與日常管理相關的幾個新特性Oracle
- sql server 計算兩個時間 相差的 幾天幾時幾分幾秒SQLServer
- Oracle 12c 新特性之臨時Undo--temp_undo_enabledOracle
- Oracle切換undo表空間操作步驟Oracle
- oracle的redo和undoOracle
- mysql relay log相關引數說明MySql
- redis持久化相關引數解釋Redis持久化
- [20191204]hugepage相關引數含義.txt
- openGauss執行緒池相關引數執行緒
- [20220913]hugepage相關引數含義.txt