中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何評估undo表空間大小

發布時間:2021-11-29 15:40:46 來源:億速云 閱讀:226 作者:柒染 欄目:關系型數據庫

今天就跟大家聊聊有關如何評估undo表空間大小,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

如何估算Oracle數據庫所需的UNDO表空間的大小:
How To Size UNDO Tablespace For Automatic Undo Management (文檔 ID 262066.1)

要確定Oracle需要的UNDO 表空間的大小,需要以下三條信息: 

UR 以秒為單位的UNDO_RETENTION
UPS 每秒生成的還原數據塊的數量
DBS db_block_size

UndoSpace = [UR * (UPS * DBS)] + (DBS * 24)

UNDO_RETENTION是一個參數,此參數控制為提供讀一致性而保留的還原數據量,以秒為單位定義,可以在初始化文件中設置,或使用 ALTER SYSTEM 命令來動態修改。

SQL>ALTER SYSTEM SET UNDO_RETENTION=900;

SQL> show parameter undo_retention

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_retention integer 900
如果值為900,則可以使還原數據保留 15 分鐘,當然需要足夠的存儲空間才行。

那么如何計算每秒生成的還原數據塊的數量呢,可以通過v$undostat視圖的begin_time、end_time和undoblks三個字段的值查詢出來,計算的SQL語句如下:
SQL> SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes" FROM (SELECT value AS UR  FROM v$parameter WHERE name = 'undo_retention'),(SELECT (SUM(undoblks)/SUM(((end_time -begin_time)*86400))) AS UPS  FROM v$undostat),  (SELECT value AS DBS FROM v$parameter  WHERE name = 'db_block_size');
  Bytes
----------
445814.844


詳解:

一般應該在一天中數據庫負載最繁重的時候進行計算。
對于UNDO表空間大小的定義需要考慮UNDO_RETNETION參數、產生的UNDO BLOCKS/秒、UNDO BLOCK的大小。undo_retention:對于UNDO表空間的數據文件屬性為autoextensible,則undo_retenion參數必須設置,UNDO信息將至少保留至undo_retention 參數設定的值內,但UNDO表空間將會自動擴展。對于固定UNDO表空間,將會通過表空間的剩余空間來最大限度保留UNDO信息。如果FIXED UNDO表空間沒有對保留時間作GUARANTEE(alter tablespace xxx retention guarantee;),則undo_retention參數將不會起作用。(警告:如果設置UNDO表空間為retention guarantee,則未過期的數據不會被復寫,如果表空間不夠則會導致DML操作失敗或者transation掛起)


Oracle 10g 有自動Automatic Undo Retention Tuning 這個特性。設置的 undo_retention 參數只是一個指導值,,Oracle 會自動調整 Undo (會跨過 undo_retention 設定的時間) 來保證不會出現 Ora-1555 錯誤.。通過查詢V$UNDOSTAT(該視圖記錄4天以內的UNDO表空間使用情況,超過4天可以查詢DBA_HIST_UNDOSTAT視圖) 的 tuned_undoretention (該字段在10G版本才有,9I是沒有的)字段可以得到Oracle 根據事務量(如果是文件不可擴展,則會考慮剩余空間)采樣后的自動計算出最佳的 retenton 時間.。這樣對于一個事務量分布不均勻的數據庫來說,,就會引發潛在的問題--在批處理的時候可能 Undo 會用光, 而且這個狀態將一直持續, 不會釋放。


SQL查詢tuned_undoretention:
select to_char(begin_time,'DD-MON-RR HH24:MI') begin_time,to_char(end_time,'DD-MON-RR HH24:MI') end_time,tuned_undoretention from v$undostat order by end_time;


檢查一天平均每秒產生的UNDO BLOCK
select (sum(undoblks)/sum((end_time-begin_time)*86400) from v$undostat;
生成的結果是UNDO BLOCK,如果需要計算出實際大小,則需要乘以db_block_size(通過show parameter db_block_size查出來)

如何計算合適的UNDO表空間大小:
select (UR*(UPS*DBS))+(DBS*24) as "bytes" from (select value as UR from v$parameter where name='undo_retention'),(select (sum(undoblks)/sum(((end_time-begin_time)*86400))) as ups from v$undostat),(select value as DBS from v$parameter where name='db_block_size');

看完上述內容,你們對如何評估undo表空間大小有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

牡丹江市| 宿松县| 曲阜市| 凤凰县| 囊谦县| 巍山| 綦江县| 长宁县| 嘉善县| 太仆寺旗| 白沙| 旺苍县| 溧阳市| 雷山县| 墨江| 界首市| 平乐县| 荃湾区| 鄄城县| 高陵县| 甘德县| 噶尔县| 大厂| 略阳县| 宁强县| 乐至县| 平武县| 墨竹工卡县| 丰宁| 博白县| 崇明县| 屏东县| 田东县| 出国| 甘肃省| 丹巴县| 杭州市| 类乌齐县| 竹山县| 泽州县| 寻乌县|