oracle資料庫中什麼是已經提交的事務

2022-02-28 16:16:51 字數 3977 閱讀 9951

1樓:匿名使用者

已經提交的事務即在進行update或insert操作後,進行了commit的操作。

1、如,有以下兩個語句:

update test set id=3 where id=2;

commit;

insert into test values (4,'王五');

commit;

2、如果進行了update及insert操作後不進行提交的話,那麼修改或插入的資料只在當前session有效,並不會寫入資料庫,只有當commit(提交)後,才會生效。

2樓:姑遂向觸

這裡為什麼重點強調 未提交的事務 呢 , • when one-third full

• when there is 1 mb ofredo

• every three seconds• before dbwn writes

這些情況下 都會自動寫入redo logfile, 這種自動的機制是為了 確保避免一次commit的時候執行過多的寫入。

比如我們用sql語句修改了一個值 但是沒有提交 在上面幾種情況下可能 這個操作已經記錄到了redo logfile 但是這個操作並沒有得到認為的確認,所以當發生系統崩潰等問題時,應該將這種修改回退,因為他並不是人為確認的,並不合法。 未提交的事務就是指 系統自動寫入到redo中但是並沒有得到使用者的commit 確認的事務

3樓:匿名使用者

1 時寫入redo logfile的事務才就已提交的事務碼?而類似every three seconds等自動寫入redo logfile中的資料並不是以提交的事務?

commit 是標記事務提交,會在資料塊上做標記,此時 資料可能在記憶體裡面。

every three seconds等自動寫入redo logfile中的資料並不是以提交的事務?

----這個是將在記憶體中的資料的操作記錄寫入redo log ,達到寫入條件的所有資料都會被寫入而不管它是不是被標記為提交。

2 回退就是回滾,oracle在做修改操作的是除了寫 redo log之外 還會寫 undo 也即回滾記錄,redo的逆向操作。

利用undo 中的資訊對已經修改的操作當時為標記為commit記錄做修改。

datafile中沒有修改,但是資料庫記憶體中的已經修改了,此時資料是不一致的,不符合acid原則。

4樓:匿名使用者

你做了修改,不提交別人就看不到你的修改,是為了體現一致性;回退是做了修改,但最後不想這麼做了,所以才回退,

oracle資料庫中什麼是已經提交的事務?

5樓:匿名使用者

回退的是undo中記錄的髒塊(雖然事務未提交沒有寫到相應的datafile中,但是觸發ckpt後,undo中會記錄未提交的髒塊)

日誌是不會回退的,只會增長;

oracle資料庫中什麼是事物

6樓:匿名使用者

事務處理:所謂的事務處理就是保證操作的完整性,所有操作要麼同時成功,要麼同時失敗。

原理如下:

在oracle每個連線到資料庫的視窗,連線之後建立一個session。一個session裡面對資料所做的修改,不會立刻反應在資料庫的真實資料之上,是允許回滾的,當一個session提交所有的操作後,資料才真正地做出修改。

兩個事務操作:

提交:commit

回滾:rollback

commit後資料無法回滾。

死鎖:一個session裡面對某行資料進行更新操作,如果沒有commit,那麼另外一個session針對這行資料的更新將需要等待,直到第一個session commit後,才提交更新資料。

7樓:賓士

一次完整的業務邏輯操作就叫一次事務。

如:轉賬這個業務邏輯

從你的卡里扣除金額,然後在轉入的卡上增加金額。

請考慮:當你的卡里金額被扣除後,在轉入的時候出現了故障的情況。

此時需要將資料恢復到最初情況,就是將你卡里的錢恢復成原樣(事務的rollback)

這就是一個完整的業務邏輯,如果你非得把他拆分開錢從你的卡里扣除後,commit,轉入的時候出現故障 rollback,但是由於這是兩個事務,你卡里的錢丟了,這應該不是你想看到的。

8樓:

簡單的說就是一次更新操作.

也可能是多個操作.

你可以認為

提交:commit

回滾:rollback

是一次事務的結束.

9樓:匿名使用者

好問題。明確的知道oracle的transaction的概念非常重要。不管你是當程式設計師還是dba

update是不是事務?select是不是事務?回答【是的】也是對的,回答【不是】也是對的。

我無法直接回答你,請檢視toms的經典圖書【oracle9i10g程式設計藝術】其中關於事務,鎖的描述

必須從第六章開始看,先理解鎖,然後是第七章併發和多版本,最後第8章 事務

絕對不能跳過去直接看事物,直接看第八章肯定看不懂的。

非常好的問題,可惜很多程式設計師不注意也不關心。

oracle資料庫 提交和回滾 。

10樓:

從你的貼圖來看,你使用的create語句是ddl語句,oracle預設是自動提交的。自然看不到提交和回滾了。對於dml語句(如delete,update,insert等)你可以進行顯示提交,以及未提交前可以進行回滾

11樓:清晨

建立表之類的不需要提交回滾!

oracle資料庫中還原資料在事務提交後至少要保留多長時間?這樣做的目的是什麼

12樓:黃玫瑰爾最美

回退的是undo中記錄的髒塊(雖然事務未提交沒有寫到相應的datafile中,但是觸發ckpt後,undo中會記錄未提交的髒塊) 日誌是不會回退的,只會增長;

oracle資料庫dml操作,回滾,事務提交,這個過程的儲存是什麼樣的?求大神指點迷津 10

13樓:淺黃卻百里

在提交之前,資料表是沒有進行修改的。相當於重新開闢一個空間來存放你的修改記錄。於是就可以進行回滾。

14樓:

提交和回滾相當於儲存和取消,如果你儲存資料修改才成立 ,回滾則取消修改

15樓:匿名使用者

建議先看下回滾段啊,oracle保持資料一致性,這個是必須的

如何在oracle資料庫中使用事務transaction

oracle什麼時候需要commit

16樓:出家人詞悲

sql語言分為五大類:

ddl(資料定義語言) - create、alter、drop 這些語句自動提交,無需用commit提交。

dql(資料查詢語言) - select 查詢語句不存在提交問題。

dml(資料操縱語言) - insert、update、delete 這些語句需要commit才能提交。

dtl(事務控制語言) - commit、rollback 事務提交與回滾語句。

dcl(資料控制語言) - grant、revoke 授予許可權與**許可權語句。

oracle資料庫不小心刪除了資料,已提交事物,怎麼恢復資料 20

17樓:匿名使用者

1)閃回查詢:

select * from 表 as of timestamp systimestamp-interval '10' minute

2)redo日誌挖掘 dbms_logmnr ,這個網上有眾多的demo

18樓:gbase8s資料庫

截斷日誌,邏輯日誌有備份不?

如何知道oracle資料庫哪些表是有資料的,哪些表是空的沒有資料

比如 test表空間有2個資料檔案,datafile1為300mb,datafile2為400mb,那麼test表空間的 sum mb 就是700mb userd mb 表示表空間已經使用了多少 free mb 表示表空間剩餘多少 percent user 表示已經使用的百分比 select cou...

在web程式中連線Oracle資料庫的連線字串怎麼寫

c 中連線 oracle資料復庫時使用的連線字制符串 var connectionstring data source description address list address protocol tcp host 192.168.115.33 port 1521 connect data s...

什麼是資料庫,什麼是資料庫?資料庫有什麼用?

資料庫 database 是按照 資料結構來組織 儲存和管理資料的倉庫,它產生於距今六十多年前,隨著 資訊科技和市場的發展,特別是二十世紀九十年代以後,資料管理不再僅僅是儲存和管理資料,而轉變成使用者所需要的各種資料管理的方式。資料庫有很多種 型別,從最簡單的儲存有各種資料的 到能夠進行海量 資料儲...