Oracle管理UNDO資料表空間

來源:互聯網
上載者:User

建立undo talespace有兩種方式:

(1)資料庫建立時建立undo tablespace;

(2)在一個已經存在的資料庫建立。

在undo tablespace中不能建立資料庫物件,這是因為這個資料表空間是為資料庫recover而準備的。

1、建立資料庫時建立undo tablespace

在建立資料庫的時候可以通過指定undo子句來建立undo tablespace,但是這個子句不是必須的。

如果在建立資料庫時,系統指定是auto模式,但是沒有指明undo tablespace的名字,那麼系統會建立一個預設的復原資料表空間,名稱叫sys_undotbs。這個資料表空間根據oracle定義的預設值建立。初始化大小是10m,可以自動擴充。不過oracle推薦最好還是使用一個指定的大小。

CREATE DATABASE rbdb1

CONTROLFILE REUSE

...

UNDO TABLESPACE undotbs_01 DATAFILE '/u01/oracle/rbdb1/undo0101.dbf';

注意:如果此時系統建立undo失敗,那麼整個建立資料庫的命令就失敗了。此時

Dba需要刪除已經建立的資料檔案,糾正錯誤,重建建立資料庫。

使用create undo tablespace子句建立

CREATE UNDO TABLESPACE undotbs_02

DATAFILE '/u01/oracle/rbdb1/undo0201.dbf' SIZE 2M REUSE

AUTOEXTEND ON;

2、Undo tablespace的相關操作

(1)增加資料檔案

ALTER TABLESPACE undotbs_01

ADD DATAFILE '/u01/oracle/rbdb1/undo0102.dbf' AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;

(2)重新命名資料檔案

ALTER TABLESPACE undotbs_01 RENAME DATAFILE '/u01/oracle/rbdb1/undo0102.dbf' TO '/u01/oracle/rbdb1/undo0101.dbf';

(3)使資料檔案online或者offline

ALTER TABLESPACE undotbs_01 online|offline;

(4)開始或者結束一個聯機備份

ALTER TABLESPACE undotbs_01 BEGIN|END BACKUP;

(5)刪除undo tablespace

Drop tablespace undotbs_01;

Drop undo資料表空間的時候必須是在未使用的情況下才能進行。如果undo資料表空間正在使用(例如事務失敗,但是還沒有恢複成功),那麼drop資料表空間命令將失敗。在drop資料表空間的時候可以使用including contents。

(6)切換undo tablespace

切換undo資料表空間有兩種方式:

a、使用命令動態修改;

b、修改初始化參數後重新啟動資料庫。

Alter system set undo_tablespace=undotbs1;

當切換命令完成後,所有的事務就會在新的復原資料表空間內進行。

以下幾種情況會導致切換命令失敗:

a、資料表空間不存在;

b、資料表空間不是一個復原段資料表空間;

c、資料表空間已經被另一個執行個體使用。

注意:切換的操作不等待舊undo資料表空間的事務提交。如果舊undo資料表空間有事務未提交,那麼舊的undo資料表空間進入pending offline狀態,在這種模式下所有的事務能夠繼續進行,但是undo資料表空間不能被其他執行個體使用,也不能被刪除,直到所有的事務提交後, undo資料表空間才進入offline模式。

(7)設定undo_retention

dba可以設定undo_retention初始化參數指定undo復原資料表空間保留undo資訊的時間。在設定好這個參數時,系統會保留undo資訊在指定的時間斷後才收回這個空間。

一般情況下,系統會保留undo資訊到指定的時間後才回收空間,但是,如果系統

存在大量的事務,也會將未到期的undo空間回收,以供使用。

(8)Undo 資料表空間大小的設計規範的計算公式

Undospace = UR * UPS *db_block_size+ 冗餘量

UR: 表示在undo中保持的最長時間數(秒),由資料庫參數UNDO_RETENTION值決定。

UPS:表示在undo中,每秒產生的資料庫塊數量。

和undo有關的動態效能檢視v$undostat 包含undo的統計資訊。使用這張視圖可以估計系統當前所需的undo大小。

v$rollstat 是undo模式的視圖。是undo資料表空間的undo segments的統計資訊

v$transaction 包含undo segments的資訊。

dba_undo_extents 包含undo資料表空間中每一個範圍的提交時間。

查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.