最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

【翻譯自mos文章】使用aum(AutomaticUndoManagement)時(shí)遇到ORA

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 15:01:15
文檔

【翻譯自mos文章】使用aum(AutomaticUndoManagement)時(shí)遇到ORA

【翻譯自mos文章】使用aum(AutomaticUndoManagement)時(shí)遇到ORA:使用aum( Automatic Undo Management) 時(shí)遇到 ORA-01555錯(cuò)誤--- 原因和解決方案。 參考原文: ORA-01555 Using Automatic Undo Management - Causes and Solutions (Doc ID 269814.1) 適用于: Oracle Databa
推薦度:
導(dǎo)讀【翻譯自mos文章】使用aum(AutomaticUndoManagement)時(shí)遇到ORA:使用aum( Automatic Undo Management) 時(shí)遇到 ORA-01555錯(cuò)誤--- 原因和解決方案。 參考原文: ORA-01555 Using Automatic Undo Management - Causes and Solutions (Doc ID 269814.1) 適用于: Oracle Databa

使用aum( Automatic Undo Management) 時(shí)遇到 ORA-01555錯(cuò)誤--- 原因和解決方案。 參考原文: ORA-01555 Using Automatic Undo Management - Causes and Solutions (Doc ID 269814.1) 適用于: Oracle Database - Enterprise Edition - Version 9.0.1.0 an


使用aum( Automatic Undo Management) 時(shí)遇到 ORA-01555錯(cuò)誤--- 原因和解決方案。

參考原文:
ORA-01555 Using Automatic Undo Management - Causes and Solutions (Doc ID 269814.1)

適用于:
Oracle Database - Enterprise Edition - Version 9.0.1.0 and later
Information in this document applies to any platform.

目的:
本文討論了當(dāng)使用Automatic Undo Management 時(shí)(以下簡(jiǎn)稱AUM)特性時(shí),
一個(gè)查詢返回ora-01555 "snapshot too old (rollback segment too small)" 錯(cuò)誤的各種場(chǎng)景以及對(duì)該錯(cuò)誤的各種解決方案

范圍:
本文讓用戶體會(huì)下列錯(cuò)誤:
ORA-1555: snapshot too old (rollback segment too small)

細(xì)節(jié):
Checked for relevance on 26-Mar-2012

對(duì)于ora-01555錯(cuò)誤,有很多原因。
當(dāng)使用諸如 在oracle 8i或者更低版本中的 老rollback segments 管理方法時(shí),其原因和解決方法在 Document 1005107.6 and Document 45895.1中。

這些原因和解決方法依然適用于oracle 9i及其更高版本,當(dāng)解決ora-01555錯(cuò)誤時(shí),這些方法應(yīng)該被考慮。
本文檔的焦點(diǎn)在于oracle 9i或者更高版本情況下,當(dāng)使用AUM特性時(shí)的ora-01555錯(cuò)誤。


UNDO_RETENTION

若是UNDO_RETENTION參數(shù)設(shè)置的不合適,會(huì)導(dǎo)致ora-01555錯(cuò)誤。Retention 是以秒為單位指定的。這個(gè)參數(shù)決定了undo retention的 低閾值(threshold )。
oracle 會(huì)盡力保留undo ,至少保留到該參數(shù)指定的時(shí)間。 The UNDO_RETENTION 參數(shù)只有在當(dāng)前 undo表空間足夠的情況下才會(huì)被使用(is only honoured )。
如果一個(gè)active的事務(wù)需要undo 空間,并且undo表空間沒有空閑的空間,然后oracle啟動(dòng) 回收 unexpired undo space 的工作。這會(huì)導(dǎo)致一些查詢失敗,并報(bào)錯(cuò)ora-01555錯(cuò)誤。

當(dāng)需求產(chǎn)生時(shí),一個(gè)新的extent 將會(huì)從undo tablespace中被分配,但是我們會(huì)盡量的將這種分配行為推遲。

在10.2.x及其更高版本中,使用extent的順序如下:

1. 當(dāng)undo 數(shù)據(jù)正在被寫入到一個(gè)undo segment時(shí),如果undo 數(shù)據(jù)已經(jīng)到達(dá)當(dāng)前extent的末尾,并且下一個(gè)extent包括 expired 的undo,
那么新的undo 數(shù)據(jù)(由當(dāng)前事務(wù)產(chǎn)生的undo數(shù)據(jù))將會(huì) 使用(wrap into)expired 的undo,而不是從 the undo tablespace free extent pool 中抓取 free的 extent。
新的extent空間不會(huì)被分配。


2.需要擴(kuò)展undo segment的話,我們首先會(huì)查找undo tablespace內(nèi)的空閑空間,而不是去擴(kuò)展datafile,不論datafile的AUTOEXTEND 屬性是否設(shè)置。
注意:本步驟在有些情況下被違反(broken),該bug在 9205 或者更高版本中被修復(fù)。

3. 如果我們暗示(hint)去收縮任何的undo segment以釋放空間,然后我們?nèi)プ隽?,然后看一下釋放的空間是否滿足我們的需要。

4.下一步,我們首先查找offline的segment 作為能reuse的 expired extents ,如果我們知道所有的offline的segment 都沒有空間,那么我們會(huì)跳過本步。

5.我們是否能從其他online 的segment 中偷取 任何的 expired 的extent

6.如果表空間中有任何一個(gè)自動(dòng)擴(kuò)展的datafile,那么我們會(huì)在表空間中擴(kuò)展數(shù)據(jù)文件以 分配空間。如果表空間中沒有自動(dòng)擴(kuò)展的datafile,則跳過本步

7.如果retention 被保證,我們不能自動(dòng)調(diào)優(yōu)undo,然后我們會(huì)拋出一個(gè)錯(cuò)誤。

8. 我們嘗試使用一個(gè)低的UNDO_RETENTION 值,來確認(rèn) :
我們能否在不必違反任何retention guarantee的情況下(通過doing any hinted shrinking of segments) 釋放一些空間

9.如果我們依然沒有空間,并且正在保證 retention(are guaranteeing retention ),那么一個(gè)錯(cuò)誤被拋出。

10.我們使用的是自動(dòng)調(diào)優(yōu)(auto tuned)并且不能保證(guaranteed)。我們開始此嘗試從offline 的segment中偷取 UNEXPIRED extents

11.嘗試把 從undo segment 分配的UNEXPIRED space 分配給當(dāng)前 事務(wù)(transaction)

12.嘗試從其他的online的segment中偷取 UNEXPIRED space。
注意:在一個(gè)特定并且罕見情況下,oracle可能不會(huì)重用(reuse) unexpired extents ,然后會(huì)報(bào) ORA-30036 error


解決方案:

1. undo tablespace 太小,增大undo 表空間的大小。undo 表空間應(yīng)該足夠大,以滿足存儲(chǔ) 活動(dòng)事務(wù)所產(chǎn)生的undo data 和 保持 honor the undo retention setting.

2.優(yōu)化 UNDO_RETENTION 參數(shù)值。這對(duì)于系統(tǒng)中運(yùn)行大的查詢 十分重要。此參數(shù)值應(yīng)該至少等于最長(zhǎng)運(yùn)行的那個(gè)查詢的時(shí)間長(zhǎng)度。
只要數(shù)據(jù)已經(jīng)運(yùn)行了一段時(shí)間,這個(gè)參數(shù)值可以通過查詢V$UNDOSTAT視圖來確定:

SQL> select max(maxquerylen) from v$undostat;

V$UNDOSTAT 視圖以10分鐘為間隔保留 udno 統(tǒng)計(jì)信息,
這個(gè)視圖按照instance 展示統(tǒng)計(jì)數(shù)據(jù),例如 begin time, end time,對(duì)于每一個(gè)實(shí)例來說,統(tǒng)計(jì)值是一個(gè)唯一的間隔

該視圖包括如下列:

Column name Meaning
BEGIN_TIME 區(qū)間檢查的開始時(shí)間
END_TIME 區(qū)間檢查的結(jié)束時(shí)間
UNDOTSN undo 表空間號(hào)
UNDOBLKS 在間隔期間內(nèi)使用的undo block的總數(shù)
TXNCOUNT 在間隔期間內(nèi)的事務(wù)總數(shù)
MAXQUERYLEN 在間隔期間內(nèi)的一個(gè)查詢最大的持續(xù)時(shí)間(以秒為單位)
MAXCONCURRENCY 在間隔期間內(nèi),最高的事務(wù)數(shù)
UNXPSTEALCNT -----當(dāng) unexpired blocks 從其他 undo segments 中被偷取以滿足空間需求的嘗試次數(shù)。
UNXPBLKRELCNT 從undo segment 中remove掉用于其他事務(wù)的 unexpired blocks 數(shù)量。
UNXPBLKREUCNT 被事務(wù)重用(reuse)的unexpired undo blocks的 數(shù)量
EXPSTEALCNT 當(dāng)expired extents 從其他 undo segments 中被偷取以滿足空間需求的嘗試次數(shù)。
EXPBLKRELCNT expired extents的數(shù)量,這些 expired extents 從其他 undo segments 中被偷取以滿足空間需求
EXPBLKREUCNT -----在同一個(gè)undo segment中被重用的 expired undo blocks 的數(shù)量。
SSOLDERRCNT 在間隔期間 ora-1555錯(cuò)誤發(fā)生的次數(shù)。
NOSPACEERRCNT Out-of-Space errors的個(gè)數(shù)。


當(dāng)UNXPSTEALCNT 列通過 EXPBLKREUCNT列 持有了一個(gè)非零值,這是空間壓力的一個(gè)標(biāo)志。
如果列SSOLDERRCNT 非零,那么UNDO_RETENTION 沒有被正確設(shè)置。
如果列NOSPACEERRCNT非零,那么有 相當(dāng)嚴(yán)重的空間問題。

3. oracle10g中,有一個(gè) guaranteed undo retention 選項(xiàng)。當(dāng)此選項(xiàng) 被啟用,數(shù)據(jù)庫永遠(yuǎn)不會(huì)覆蓋unexpired undo data。
比如,undo data的 存在時(shí)間小于 undo retention 期間。
務(wù)必保證undo tablespace 足夠大,以滿足guarantee requirement。

你可以啟用 guarantee option ,
啟用方法是當(dāng)創(chuàng)建undo tablespace的時(shí)候 為undo tablespace 指定RETENTION GUARANTEE 子句
或者 使用alter tablespace 語句:
SQL> alter tablespace undotbs1 retention guarantee;

4.需要的空間依賴于 特定期間內(nèi)需要的undo block數(shù)量,它是與UNDO_RETENTION 呈線性關(guān)系。
使用Document 262066.1 提到的公式來計(jì)算undo tablespace的大小。

注意:關(guān)于oracle 10gR2,Enterprise Manager里邊有一個(gè)undo advisor,使用Enterprise Manager,你可以管理undo

a)From the Database Control home page, click Administration. The Administration property page appears.
b)In the Database Configuration section, click Undo Management. You can use the Undo Management page to view the following about your undo configuration:
■Name and size of undo tablespace
■Auto-extend tablespace setting
■Auto-tuned undo retention period
■Minimum retention period
See the Oracle Database 2 Day DBA manual for more details.

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

【翻譯自mos文章】使用aum(AutomaticUndoManagement)時(shí)遇到ORA

【翻譯自mos文章】使用aum(AutomaticUndoManagement)時(shí)遇到ORA:使用aum( Automatic Undo Management) 時(shí)遇到 ORA-01555錯(cuò)誤--- 原因和解決方案。 參考原文: ORA-01555 Using Automatic Undo Management - Causes and Solutions (Doc ID 269814.1) 適用于: Oracle Databa
推薦度:
標(biāo)簽: 文章 使用 os
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top