oracle undo管理机制,Oracle UNDO数据概念和管理
UNDO數(shù)據(jù)也稱為回滾(ROLLBACK)數(shù)據(jù),它用于確保數(shù)據(jù)的一致性.UNDO表空間用于存放UNDO數(shù)據(jù),當(dāng)執(zhí)行DML操作(INSERT,UPDATE和DELETE)時,oracle會將這些操作的舊數(shù)據(jù)寫入到UNDO段,在oracle9i之前,管理UNDO數(shù)據(jù)時使用(Rollback Segment)完成的.從oracle9i開始,管理UNDO數(shù)據(jù)不僅可以使用回滾段,還可以使用UNDO表空間.因為規(guī)劃和管理回滾段比較復(fù)雜,所有oracle database 10g已經(jīng)完全丟棄用回滾段.并且使用UNDO表空間來管理UNDO數(shù)據(jù).
UNDOTBS1是一個回滾表空間,隨著數(shù)據(jù)庫的使用,默認(rèn)會自動擴展。當(dāng)它增大到一定程度,占用了過多的磁盤空間時,就需要定時進行清理了。1. 登陸到數(shù)據(jù)庫
oracle@suse:~> sqlplus '/as sysdba'2. 創(chuàng)建一個新的回滾段表空間
SQL> create undo tablespace undotbs2 datafile '%oracle_home%/oradata/DBSID/undotbs02.dbf' size 500M;
Tablespace created.
3. 將回滾段指向新的表空間
SQL> alter system set undo_tablespace=undotbs2 scope=spfile;
System altered.4. 重新啟動數(shù)據(jù)庫
SQL> startup force
ORACLE instance started.
5. 因為oracle9i默認(rèn)是自動管理回滾段,為了防止其無限制的增長,可以將其設(shè)置為人工管理:
SQL> alter system set undo_management =MANUAL scope=spfile;
System altered.
(本人建議:還是讓數(shù)據(jù)庫自動管理回滾段比較好,可以定期清理該表空間)7. 刪除原來的回滾段:
SQL> drop tablespace undotbs1 including contents and datafiles;
Tablespace dropped.
總結(jié)
以上是生活随笔為你收集整理的oracle undo管理机制,Oracle UNDO数据概念和管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1万并发服务器配置_小程序后端服务器搭建
- 下一篇: mysql到mysqli转变表_利用my