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