iT邦幫忙

DAY 25
0

ORACLE 管理與系統開發運用學習日記系列 第 25

25.undo data的介紹

  • 分享至 

  • xImage
  •  

這篇我們要簡單說明undo data:

資料操作語言(data manipulation language,DML) 包含inset, update, delete, merge四種語法大家都常常使用的語法。

在oracle資料庫操作中,DML的指令通常指執行一個Transaction的一部分,讓我們可以作rolled back 與commit,讓transaction恢復或執行。

而我們在對尚未執行Commit與rollback的指令之前,undo就會複製原來的、未修改前的資料出來。undo data會保留到transaction結束為止。

undo資料通常用來:

1.rollback操作

2.完整性讀取與查詢回復

3.回復失敗的transaction

通常undo data結束通常有幾種情況

1.使用者恢復資料(rollback)

2.使用者結束transaction(commit)

3.使用者意外被中斷(rollback)

4.使用者正常關閉transaction且離開(commit)

transaction 與 undo data關係

當DML指令下達的時候,每個Transaction只能指定一個undo segment使用;

但是一個undo segment可以服務超過一個上的transaction。

當transaction改變的資料越來越多,資料就會一直延伸到下一個undo segment;

當所有的segment被寫滿,就會開始複寫第一個undo segment或再要求新的位置來增加undo segment。

Storing Undo Information

undo資訊會儲存在undo segments,其內容儲存在undo tablespace:

1.undo tablespace只能提供undo segment使用

2.雖然資料庫可以很多undo tablespace,但是同時只有一個tablespace能寫入undo data

3.undo segment屬於sys所有,因為undo segment會循環複寫,所以最少會有兩個延伸。

4.undo tablespace只能在資料庫狀態MONUT狀態下進行回覆作業。

--

快結束了 加油!

(還有幾篇要補充...XD)


上一篇
24. Lock
下一篇
26.主動維護(I)
系列文
ORACLE 管理與系統開發運用學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言