自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入了解Oracle事務(wù)

數(shù)據(jù)庫(kù) Oracle
Oracle事務(wù)是Oracle數(shù)據(jù)庫(kù)的重要概念,下文對(duì)Oracle事務(wù)方面的知識(shí)作了詳盡的闡述,如果您對(duì)此方面感興趣的話,不妨一看。

Oracle事務(wù)的對(duì)于Oracle數(shù)據(jù)庫(kù)的重要性不言而喻,下面就將為您詳細(xì)介紹Oracle事務(wù)方面的知識(shí),供您參考學(xué)習(xí)之用。

1.Oracle事務(wù)隔離

①一個(gè)未提交的事務(wù)所做的修改不能被其它事務(wù)所看到。只有當(dāng)事務(wù)提交成功后,在該事務(wù)之后執(zhí)行的其它事務(wù)才可能看到該事務(wù)所做的改變。
②在該事務(wù)提交之前已經(jīng)執(zhí)行了一部分而另一部分在該事務(wù)提交后執(zhí)行的剩余部分同樣也看不到該事務(wù)做出的改變。這是另一個(gè)Oracle特性:讀一致和快照。

③在該事務(wù)提交同時(shí)進(jìn)行的其它事務(wù)同樣也看不到該事務(wù)所做的改變。

2.語(yǔ)句級(jí)回滾

①當(dāng)一個(gè)SQL語(yǔ)句在執(zhí)行期間因?yàn)榘l(fā)生的任何錯(cuò)誤而中斷時(shí),將產(chǎn)生一個(gè)“語(yǔ)句級(jí)回滾”。該回滾的后果就像這個(gè)SQL語(yǔ)句根本沒(méi)有執(zhí)行過(guò)一樣。

②注意回滾是發(fā)生在“執(zhí)行”階段的,如果是在SQL語(yǔ)句的解析階段因?yàn)檎Z(yǔ)法問(wèn)題而無(wú)法執(zhí)行。因?yàn)闆](méi)有產(chǎn)生任何影響而不會(huì)出現(xiàn)“回滾”。

3.Oracle事務(wù)控制的分割( oracle沒(méi)有明顯的事務(wù)開(kāi)始,結(jié)束的語(yǔ)句塊,它將自動(dòng)形成事務(wù)塊。 )

如果一個(gè)事務(wù)中包含了DML語(yǔ)句和DDL語(yǔ)句,那么該事務(wù)會(huì)被分解成多個(gè)事務(wù)。首先在DDL之前的所有DML語(yǔ)句會(huì)被作為一個(gè)事務(wù)而一次性提交。然后Oracle會(huì)為這個(gè)DDL創(chuàng)建一個(gè)新的,單語(yǔ)句的事務(wù)。如果DDL語(yǔ)句執(zhí)行失敗了,那么DML事務(wù)依然成功。 每個(gè)DDL語(yǔ)句單獨(dú)成為一個(gè)事務(wù),也就是說(shuō)DDL語(yǔ)句不能回退。

4.不同情況下的Oracle事務(wù)控制

請(qǐng)注意:用戶從Oracle服務(wù)器斷開(kāi)連接和用戶進(jìn)程強(qiáng)行中斷的后果是不同的。

①前者典型的例子是Oracle服務(wù)器關(guān)閉或重啟,此時(shí)所有未提交事務(wù)會(huì)被提交。

②后者典型的例子用戶通過(guò)進(jìn)程管理器強(qiáng)行kill掉進(jìn)程,此時(shí)所有未提交事務(wù)所做的操作被回滾。

5.事務(wù)提交前要做的事情

Oracle提交一個(gè)事務(wù)之前,必須做以下幾件事情:

①記住數(shù)據(jù)被修改前是什么樣子的

②記住數(shù)據(jù)即將要被改成什么樣子

③記住redo log和undo log的關(guān)聯(lián)

④將SGA中已讀取到內(nèi)存的數(shù)據(jù)修改為新的值(此時(shí)并未真正保存到數(shù)據(jù)文件)

其中第一步是通過(guò)在undo表空間中記錄undo日志來(lái)完成的。第二步、第三步是通過(guò)向SGA中的redo日志緩沖區(qū)寫(xiě)記錄來(lái)完成的。這樣當(dāng)事務(wù)回滾時(shí)就可以從redo日志找到對(duì)應(yīng)的undo日志,從而找回之前的數(shù)據(jù)

★要特別注意的是:此時(shí)不一定會(huì)觸發(fā)DBWn進(jìn)程。

★要特別注意的另一個(gè)地方是:第2步記錄事務(wù)操作的改變是內(nèi)存中進(jìn)行的,還未寫(xiě)到磁盤(pán)上的redo日志文件

6.事務(wù)提交時(shí)所做的事情

①記錄SCN值(System Change Number)

②將在線重做日志記錄(位于SGA的redo日志緩沖區(qū)中)持久化到redo日志文件

③Oracle釋放資源和鎖

④Oracle將事務(wù)標(biāo)記為已結(jié)束

注意:只有在commit指令被發(fā)出后,才會(huì)將SGA中重做日志緩沖區(qū)的內(nèi)容刷新到磁盤(pán)的redo日志文件。在LGWR進(jìn)程執(zhí)行前,重做日志一直存在于內(nèi)存中,也被稱(chēng)為在線重做日志。

7.savepoint回滾和整個(gè)事務(wù)的回滾

注意當(dāng)Oracle事務(wù)回滾到某個(gè)savepoint時(shí),在savepoint之后的所有后續(xù)savepoint將失效。但此時(shí)Transaction還是活躍且可繼續(xù)的。這一點(diǎn)不同于整個(gè)事務(wù)的回滾。

8.自治事務(wù)

從傳統(tǒng)上來(lái)說(shuō),一個(gè)事務(wù)只有在完整執(zhí)行成功或回滾之后,才會(huì)進(jìn)行下一個(gè)事務(wù)。而自治事務(wù)允許在一個(gè)事務(wù)中調(diào)用運(yùn)行另一個(gè)事務(wù),被調(diào)用事務(wù)執(zhí)行完成后,調(diào)用事務(wù)繼續(xù)執(zhí)行之前未完成的操作直至事務(wù)結(jié)束

自治事務(wù)在被調(diào)用后,將和外圍事務(wù)完全獨(dú)立。彼此之間并不共享任何資源或者鎖,外圍事務(wù)所有未提交的改變對(duì)自治事務(wù)來(lái)說(shuō)都是不可見(jiàn)。自治事務(wù)提交后外圍事務(wù)將可以看到改變。

 

 

 

【編輯推薦】

刪除oracle服務(wù)項(xiàng)中不用的服務(wù)

Oracle數(shù)據(jù)庫(kù)關(guān)閉的三種方法

詳解Windows下管理Oracle服務(wù)

Oracle重做日志的實(shí)現(xiàn)方法

Oracle歸檔日志大小的修改方法

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-11-15 11:40:44

Oracle表空間

2010-10-19 13:26:45

SQL Server事

2010-10-29 10:04:27

2010-10-26 11:28:33

ORACLE運(yùn)行方式

2010-10-27 15:58:01

Oracle臨時(shí)表

2010-10-28 10:19:29

oracle權(quán)限管理

2010-10-29 14:57:12

Oracle歸檔模式

2010-11-19 15:53:28

oracle管理表空間

2010-11-16 14:43:25

Oracle SQL計(jì)

2010-10-25 14:09:01

Oracle觸發(fā)器

2010-07-13 09:36:25

2010-06-23 20:31:54

2009-08-25 16:27:10

Mscomm控件

2022-08-26 13:48:40

EPUBLinux

2020-09-21 09:53:04

FlexCSS開(kāi)發(fā)

2020-07-20 06:35:55

BashLinux

2022-06-03 10:09:32

威脅檢測(cè)軟件

2011-07-18 15:08:34

2010-10-25 16:29:45

Oracle隨機(jī)數(shù)產(chǎn)生

2013-04-16 10:20:21

云存儲(chǔ)服務(wù)云存儲(chǔ)SLA服務(wù)水平協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)