有關UNDO表空間的學習:
UNDO表空間用於存放UNDO資料,當執行DML操作(insert、update、delete)的時候,oracle會將這些操作的舊資料寫入到UNDO段。
UNDO資料也稱為回滾資料,用於確保資料的一致性。作用包括:
1、回退事務
2、讀一致性
3、事務恢復
4、閃回查詢
9i開始,管理UNDO資料可以使用UNDO表空間,也可以使用回滾段。10g開始,oracle已經放棄使用回滾段。
用於undo管理的引數:
1、UNDO_MANAGEMENT
用於指定undo資料的管理方式。如果使用自動管理,必須設定為AUTO;如果手動管理,必須設定為MANUAL。
使用自動管理的時候,oracle會使用UNDO表空間管理UNDO資料;使用手動管理時,oracle會使用回滾段管理UNDO資料。
如果使用自動管理模式,必須建立UNDO表空間,並且配置UNDO_TABLESPACE引數,否則oracle會使用SYSTEM回滾段存放UNDO紀錄,並在警告日誌中紀錄提示。
2、UNDO_TABLESPACE
用於指定例程所要使用的UNDO表空間。設定的時候,必須保證該表空間存在,否則會導致例程啟動失敗。
使用RAC的時候,因為一個UNDO不能由多個例程同時使用,所以必須為每個例程配置一個獨立的UNDO表空間。
3、UNDO_RETENTION
用於控制UNDO資料的最大保留時間,其預設值為900秒。從9i開始,通過配置該初始化引數,可以指定UNDO資料的保留時間,從而確定閃回查詢可以檢視到的最早時間點。
建立UNDO表空間
1、使用CREATE DATABASE命令建立UNDO表空間
如果使用的是UNDO管理模式,但是沒有指定UNDO TABLESPACE,那麼建立資料庫的時候oracle會自動生成名稱為SYS_UNDOTBS的UNDO表空間。
2、使用CREATE UNDO TABLESPACE 命令建立UNDO表空間
建立資料庫以後,可以使用該命令建立UNDO表空間。
修改UNDO表空間
當事務用盡UNDO表空間後,增加資料檔案:
ALTER TABLESPACE ... ADD DATAFILE;
當UNDO表空間所在磁碟填滿時,移動資料檔案到其他磁碟:
ALTER TABLESPACE ...RENAME DATAFILE;
當在OPEN狀態下移動UNDO表空間時,可以使表空間離線/聯機:
ALTER TABLESPACE ... OFFLINE/ONLINE;
當資料庫處於歸檔模式時,備份UNDO表空間:
ALTER TABLESPACE ... BEGIN BACKUP/END BACKUP
切換UNDO表空間
啟動並開啟oracle資料庫後,同一時刻只能使用一個UNDO表空間。可以切換UNDO表空間:
ALTER SYSTEM SET undo_tablespace=undotbs02;
刪除UNDO表空間
當前使用的UNDO表空間不能被刪除,如果要刪除當前例項使用的UNDO,需要先切換,然後刪除:
DROP TABLESPACE undotbs01;
監控UNDO表空間的使用:
1、確定當前正在使用的undo表空間:
show parameter undo_tablespace
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
undo_tablespace string UNDOTBS1
2、顯示資料庫的所有UNDO表空間:
SQL> select tablespace_name from dba_tablespaces where contents='UNDO';
TABLESPACE_NAME
------------------------------
UNDOTBS1
3、顯示UNDO表空間統計資訊:
SQL> select to_char(begin_time,'hh24:mi:ss') begin_time,to_char(end_time,'hh24:mi:ss') end_time,undoblks from v$undostat where rownum < 4;
BEGIN_TIME END_TIME UNDOBLKS
--------------------------------------------------------------------------- --------------------------------------------------------------------------- ----------
14:52:52 14:54:56 1
14:42:52 14:52:52 61
14:32:52 14:42:52 27
4、顯示UNDO段統計資訊:
使用自動管理模式時,oracle會在UNDO表空間上自動建立10個UNDO段。通過查詢動態效能檢視V$ROLLNAME,可以顯示所有聯機UNDO的名稱;通過查詢動態效能檢視V$ROLLSTAT可以顯示UNDO段的統計資訊。
SQL> select a.name,b.xacts,b.writes,b.extents from v$rollname a,v$rollstat b where a.usn = b.usn;
NAME XACTS WRITES EXTENTS
------------------------------ ---------- ---------- ----------
SYSTEM 0 176730 6
_SYSSMU1$ 0 524055286 6
_SYSSMU2$ 0 555250470 3
_SYSSMU3$ 0 1477369722 6
_SYSSMU4$ 0 281773370 5
_SYSSMU5$ 0 149888652 2
_SYSSMU6$ 0 101947936 2
_SYSSMU7$ 0 158121686 2
_SYSSMU8$ 0 203385052 3
_SYSSMU9$ 0 84385448 3
_SYSSMU10$ 0 426643090 4
xacts用於標示undo段所包含的活動事務個數,writes用於標示undo段上所寫入的位元組數,extents用於標示undo段的區個數。
5、顯示活動事務資訊:
SQL> select a.username,b.name,c.used_ublk from v$session a,v$rollname b,v$transaction c where a.saddr=c.ses_addr and b.usn = c.xidusn;
6、顯示UNDO區資訊:
SQL> select extent_id,bytes,status from dba_undo_extents where segment_name='_SYSSMU10$';
EXTENT_ID BYTES STATUS
---------- ---------- ---------
0 65536 UNEXPIRED
1 65536 UNEXPIRED
2 1048576 EXPIRED
3 1048576 UNEXPIRED
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/51862/viewspace-180629/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自動undo表空間模式下切換新的undo表空間模式
- oracle undo 表空間Oracle
- 理解UNDO表空間
- 【UNDO】使用重建UNDO表空間方法解決UNDO表空間過大問題
- oracle UNDO表空間一個bug——undo表空間快速擴充套件Oracle套件
- Oracle undo 表空間管理Oracle
- oracle重建UNDO表空間Oracle
- oracle undo表空間管理Oracle
- undo表空間總結
- 關於undo表空間的一些常用操作
- undo表空間中常用的操作
- MySQL InnoDB Undo表空間配置MySql
- undo表空間故障處理
- Oracle - 回滾表空間 Undo 的整理Oracle
- Oracle的UNDO表空間管理總結Oracle
- UNDO表空間損壞的處理
- ORACLE線上切換undo表空間Oracle
- UNDO表空間不足解決方法
- Oracle undo表空間切換(ZT)Oracle
- Undo表空間與redo日誌
- oracle回滾段 undo 表空間Oracle
- ORACLE撤銷表空間(Undo Tablespaces)Oracle
- undo 表空間滿了的處理方法
- undo表空間不能回收的解決方法
- Oracle undo表空間爆滿的解決Oracle
- undo表空間佔用磁碟空間滿案例處理
- 有關Undo表空間與回滾段的一些查詢語句記錄
- undo表空間檔案丟失恢復(1)--有備份
- Oracle undo 表空間使用情況分析Oracle
- 改變資料庫undo表空間資料庫
- 10.管理UNDO表空間.(筆記)筆記
- undo表空間太大解決辦法
- 檢查及設定合理的undo表空間
- Oracle undo表空間爆滿的處理方法Oracle
- undo表空間損壞的處理過程
- 監控和管理Oracle UNDO表空間的使用Oracle
- UNDO 表空間檔案損壞的恢復
- Oracle 釋放過度使用的Undo表空間Oracle