《深入解析Oracle》第八章,回滾與撤銷
又隔了相當長的一段時間才寫總結
第七章的Redo,是用於解決資料庫故障的
而本章的內容,是用於支援資料庫讀一致和可撤銷操作的
可以將未修改後提交的資料恢復到修改前
在某個事務為完成提交之前
使用者可以撤銷此次此事務內的修改
而事務進行中出現問題的話,Oracle也會自動回滾,恢復原樣
為了實現這種功能,類似Redo,Oracle用Undo來記錄相關資訊
insert、update、delete的相關資訊記錄在Undo表空間的回滾段內
記錄的資訊量,insert最少(只需新增記錄的rowid)
update其次(記錄所修改的舊值),delete最多(記錄所刪除記錄的整行資料)
如一事務的修改還未提交,另一事務所查詢的數值會有Undo資訊提供
個人以前曾總結過UNDO_RETENTION(儘量達到的儲存時長)引數
和Undo表空間的GUARANTEE(是否對儲存時長強制保證)選項
V$ROLLSTAT和V$ROLLNAME可以用來查詢資料庫當前回滾段的相關資訊
當事務提交後,Oracle一般會清除事務的相關資料,此操作成為塊清除
塊清除分為快速塊清除(如資料塊未寫回資料檔案,事務提交後便立即清除ITL、鎖等相關資訊)
延時塊清除(資料塊已寫回,清除作業會在下次訪問資料塊的時候進行)
以前還了解過另一個和Undo有關的資料庫恢復特性,閃回
此特性是從9i開始提供的
如果相關的Undo資訊還沒有被後來的事務所覆蓋
使用者便可以通過閃回查詢對資料庫進行極為簡便的恢復操作
另外,Oracle11g中
可以優化Undo表空間備份(跳過已提交事務的Undo資訊備份),還可以對Undo進行歸檔儲存
Undo回滾段的使用,可能會引發ORA-01555錯誤(回滾段被重用,相關Undo資訊被覆蓋)
適當設定UNDO_RETENTION值,GUARANTEE功能,以及Undo表空間,可以有效減少問題的發生率
本章還有很多篇幅是作者用轉儲方式探索回滾段相關原理的
看了一遍……只看明白一部分而已……以後有待再次深入
距離第一階段完結的日子不遠了 ^_^
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/556359/viewspace-589339/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 回滾(ROLLBACK)和撤銷(UNDO)Oracle
- oracle前滾和回滾Oracle
- ORACLE 前滾和回滾Oracle
- 撤銷rebase與git原理Git
- oracle回滾溯源Oracle
- ORACLE回滾段Oracle
- git進階(撤銷pull、撤銷merge、撤銷add)Git
- 網頁撤銷後ubuntu本地撤銷網頁Ubuntu
- Oracle 資料回滾Oracle
- ORACLE回滾段(1)Oracle
- ORACLE回滾段(2)Oracle
- ORACLE回滾段(轉)Oracle
- ORACLE回滾段管理Oracle
- ORACLE撤銷表空間(Undo Tablespaces)Oracle
- oracle自動撤銷管理簡介Oracle
- ORACLE 回滾段詳解Oracle
- AUTOCAD——命令重複、撤銷與重做
- git撤銷命令Git
- Oracle11新特性——撤銷事務(一)Oracle
- Oracle11新特性——撤銷事務(三)Oracle
- Oracle11新特性——撤銷事務(二)Oracle
- Oracle提交和回滾處理Oracle
- Oracle的回滾段介紹Oracle
- ORACLE 死事務的回滾Oracle
- Oracle AWR與ASH效能報告深入解析Oracle
- 回滾操作、回滾段的理解
- 如何撤銷 Git 操作?Git
- Git命令(撤銷更改)Git
- Git中撤銷提交Git
- 撤銷git addGit
- git撤銷修改操作Git
- Oracle例項恢復——說說前滾和回滾Oracle
- oracle檢視回滾的事務Oracle
- oracle回滾段 undo 表空間Oracle
- ORACLE技術專題-- 回滾段Oracle
- Oracle vs PostgreSQL,研發注意事項(3)- 事務回滾之UPDATE操作解析OracleSQL
- 蘇寧被蘋果撤經銷授權?蘇寧回應:“我們好著呢”蘋果
- 撤銷 git commit --amendGitMIT