真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Oracle11gR2事物的控制

控制事務(wù)

襄城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

銀行轉(zhuǎn)賬

李四給張三匯款

ACID

A:原子性:整個(gè)事務(wù)中所有的步驟是不可分割的,原子性原則規(guī)定一個(gè)事務(wù)的各個(gè)步驟都必須完成,否則整個(gè)事務(wù)都不會(huì)完成。即保證一個(gè)事務(wù)中所有的操作都能完成或者都不能完成,如果事務(wù)在完成之前出現(xiàn)任何錯(cuò)誤,那么數(shù)據(jù)庫(kù)自身必須保證自動(dòng)回滾所做過(guò)的任何事務(wù)部分(并且必須自動(dòng)進(jìn)行)

C:一致性:無(wú)論是事務(wù)前,事務(wù)中,事務(wù)后,數(shù)據(jù)始終處于一致的狀態(tài)。例如李四給張三匯款10000,那么就需要從李四賬戶減去10000,給張三的賬戶增加10000。Oracle使用撤銷段來(lái)保證數(shù)據(jù)的一致性。

I:隔離性:隔離性的原則規(guī)定,未完成的事務(wù)必須不可視。在某個(gè)事務(wù)進(jìn)行期間,只有執(zhí)行該事務(wù)的會(huì)話能看見所做的變化,而其他所有的會(huì)話看見的都是沒(méi)有變化的數(shù)據(jù)(而不是更改后的新值)。這個(gè)規(guī)定的邏輯含義是:首先,由于整個(gè)事務(wù)可能沒(méi)有全部完成,因此不允許其他用戶看到可能回滾的變化;其次,在某個(gè)事務(wù)進(jìn)行期間,數(shù)據(jù)是不連貫的,李四的賬戶減掉10000,但張三的賬戶還沒(méi)有增加10000。事務(wù)的隔離性要求數(shù)據(jù)庫(kù)必須對(duì)其他用戶隱藏正在進(jìn)行的事務(wù),這些用戶只能看到?jīng)]有被更新的數(shù)據(jù),只有在事務(wù)完成時(shí),他們才能看到所有變化。Oracle使用撤銷段來(lái)保證事務(wù)的隔離性。

創(chuàng)建練習(xí)環(huán)境:創(chuàng)建一個(gè)aa表,插入3條記錄,并提交事物。
Oracle 11g R2 事物的控制
查看aa表的記錄,插入一條記錄,當(dāng)我們執(zhí)行一條DML語(yǔ)句時(shí)候,就自動(dòng)開始了一個(gè)事物
Oracle 11g R2 事物的控制
此時(shí)insert記錄的事務(wù)并沒(méi)有提交,沒(méi)有提交事務(wù)就沒(méi)有真正的完成,此時(shí)還有rollback的機(jī)會(huì)。

Scott用戶在當(dāng)前會(huì)話中查看aa表時(shí)可以看到被插入的記錄
Oracle 11g R2 事物的控制
打開一個(gè)新的sqlplus會(huì)話,查看aa表時(shí)會(huì)發(fā)現(xiàn)并沒(méi)有新插入的記錄:這是事物的隔離性
Oracle 11g R2 事物的控制
在第一個(gè)sqlplus會(huì)話中提交事物
Oracle 11g R2 事物的控制
提交之后才能在第二個(gè)會(huì)話中看到被插入的第四條記錄
Oracle 11g R2 事物的控制
D:持久性:一旦使用commit命令來(lái)結(jié)束某個(gè)事務(wù),那么就必須保證數(shù)據(jù)庫(kù)不丟失這個(gè)事務(wù)。在事務(wù)進(jìn)行期間,隔離性的原則要求除了指定會(huì)話涉及的用戶之外的任何用戶都不能查看當(dāng)前所做的變化。不過(guò)事務(wù)一旦完成,所有用戶都必須能夠立即看到所做的變化,同時(shí)數(shù)據(jù)庫(kù)必須保證這些變化絕不會(huì)丟失。Oracle通過(guò)使用日志文件來(lái)滿足這個(gè)需求。日志文件具有兩

種形式:聯(lián)機(jī)重做日志文件,歸檔重做日志文件。

一個(gè)正確配置的oracle數(shù)據(jù)庫(kù)是不可能丟失數(shù)據(jù)的。當(dāng)然用戶的錯(cuò)誤(包括不恰當(dāng)?shù)腄ML或刪除對(duì)象)也會(huì)造成數(shù)據(jù)的丟失

DDL語(yǔ)句有自動(dòng)提交功能(create、drop、truncate、alter)
Oracle 11g R2 事物的控制
創(chuàng)建表AA,插入一條記錄
Oracle 11g R2 事物的控制
回退事物
Oracle 11g R2 事物的控制
在表中插入一條記錄
Oracle 11g R2 事物的控制
在sqlplus中正常退出
Oracle 11g R2 事物的控制
在另外一個(gè)sqlplus中查看aa表中的記錄,會(huì)發(fā)現(xiàn)新插入的tom1的記錄了。如果使用sqlplus工具更改了數(shù)據(jù)之后,正常退出sqlplus時(shí),oracle會(huì)自動(dòng)提交事物。
Oracle 11g R2 事物的控制
目前aa表中只有tom1的記錄
Oracle 11g R2 事物的控制
模擬實(shí)例重啟
Oracle 11g R2 事物的控制
使用scott用戶連接,查看aa表中的內(nèi)容,發(fā)現(xiàn)insert tom2的記錄由于實(shí)例重啟自動(dòng)被回滾了。
Oracle 11g R2 事物的控制
使用autocommit實(shí)現(xiàn)事物的自動(dòng)提交
Oracle 11g R2 事物的控制
即使執(zhí)行回滾,查詢結(jié)果仍然包含新插入的數(shù)據(jù),關(guān)閉自動(dòng)提交時(shí)可以使用set autocommit off
Oracle 11g R2 事物的控制
關(guān)于事物的總結(jié):

  1. 需要注意的是,Commit:只是用來(lái)確認(rèn)這個(gè)數(shù)據(jù)已經(jīng)正式的修改了,不一定非得寫入硬盤,DBWn什么都不做。執(zhí)行commit命令時(shí)發(fā)生的所有物理操作時(shí)LGWR進(jìn)程將日志緩沖區(qū)的內(nèi)容寫入磁盤。DBWN進(jìn)程完全沒(méi)有執(zhí)行任何操作。DBWN進(jìn)程與提交事物處理沒(méi)有關(guān)系,不過(guò)最終DBWN進(jìn)程會(huì)將變化的數(shù)據(jù)塊寫入磁盤。

  2. commit和rollback語(yǔ)句只應(yīng)于DML語(yǔ)句,我們無(wú)法回滾DDL語(yǔ)句。DDL語(yǔ)句一旦被執(zhí)行就會(huì)立即具有持久狀態(tài)。

3.自動(dòng)提交和隱式提交:oracle在某些情況下可以進(jìn)行自動(dòng)提交:執(zhí)行DDL語(yǔ)句是一種情況,退出某個(gè)用戶進(jìn)程也是一種自動(dòng)提交。

如果對(duì)此有興趣,請(qǐng)掃下面二維碼免費(fèi)獲取更多詳情


分享文章:Oracle11gR2事物的控制
路徑分享:http://weahome.cn/article/ggcshp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部