亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Oracle事務和鎖

系統 1760 0

Oracle事務和鎖

1. 事務的概念:

? 事務用于保證數據的一致性 , 它由一組相關的 dml ( 數據操作語言 [ 增刪改]) 語句組成 , 該組的 dml 語句要么全部成功。要么全部失敗。

??????*事務的特性有四個: ACID
原子性 atomicity: 語句級原子性,過程級原子性,事務級原子性
一致性 consistency: 狀態一致,同一事務中不會有兩種狀態
隔離性 isolation: 事務間是互相分離的互不影響 ( 這里可能也有自治事務 )
持久性 durability: 事務提交了,那么狀態就是永久的

??????*只讀事務 :
只讀事務是指只允許執行查詢的操作,而不允許執行任何其它dml操作的事務,使用只讀事務可以確保用戶只能取得某時間點的數據。假定機票代售點每天18點開始統計今天的銷售情況,這時可以使用只讀事務。在設置了只讀事務后,盡管其它會話可能會提交新的事務,但是只讀事務將不會取得最新數據的變化,從而可以保證取得特定時間點的數據信息。
?????設置只讀事務: set transaction read only;

?

2. ? 事務的優點:

*? 把邏輯相關的操作分成了一個組。

*? 在數據永久改變前,可以預覽數據變化。

*? 能夠保證數據的讀一致性。

??? COMMIT 操作把多個步驟對數據庫的修改,一次性地永久寫入數據庫,代表數據庫事務的成功執行。

??? ROLLBACK 操作在發生問題時,把對數據庫已經作出的修改撤消,回退到修改前的狀態。在操作過程中,一旦發生問題,如果還沒有提交操作,則隨時可以使用 ROLLBACK 來撤消前面的操作。

??? SAVEPOINT 則用于在事務中間建立一些保存點, ROLLBACK 可以使操作回退到這些點上邊,而不必撤銷全部的操作。一旦 COMMIT 完成,就不能用 ROLLBACK 來取消已經提交的操作。一旦 ROLLBACK 完成,被撤消的操作要重做,必須重新執行相關操作語句。

數據庫事務

?

3.數據庫鎖

????* Oracle 數據庫中的鎖機制

????? 數據庫是一個多用戶使用的共享資源。當多個用戶并發地存取數據時,在數據庫中就會產生多個事務同時存取同一數據的情況。若對并發操作不加控制就可能會讀取和存儲不正確的數據,破壞數據庫的一致性。

??? 在數據庫中有兩種基本的鎖類型:排它鎖( Exclusive Locks ,即 X 鎖)和共享鎖( Share Locks ,即 S 鎖)。當數據對象被加上排它鎖時,其他的事務不能對它讀取和修改;加了共享鎖的數據對象可以被其他事務讀取,但不能修改。

????* ? Oracle 數據庫鎖分類(根據保護對象的不同):

(1) DML lock data locks ,數據鎖):用于保護數據的完整性;

(2) DDL lock dictionary locks ,字典鎖):用于保護數據庫對象的結構(例如表、視圖、索引的結構定義);

(3) Internal locks? latches (內部鎖與閂):保護內部數據庫結構;

(4) Distributed locks (分布式鎖):用于 OPS (并行服務器)中;

(5) PCM locks (并行高速緩存管理鎖):用于 OPS (并行服務器)中。

?????? Oracle 中最主要的鎖是 DML (也可稱為 data locks ,數據鎖)鎖。 DML 鎖的目的在于保證并發情況下的數據完整性。在 Oracle 數據庫中, DML 鎖主要包括 TM 鎖和 TX 鎖,其中 TM 鎖稱為表級鎖, TX 鎖稱為事務鎖或行級鎖。

????? 鎖出現在數據共享的場合,用來保證數據的一致性。當多個 會話同時修改一個表時,需要對數據進行相應的鎖定。鎖有“只讀鎖”、“排它鎖”,“共享排它鎖”等多種類型,而且每種類型又有“行級鎖” ( 一次鎖住一條記錄 ) ,“頁級鎖” ( 一次鎖住一頁,即數據庫中存儲記錄的最小可分配單元 ) ,“表級鎖” ( 鎖住整個表 )

????? 若為“行級排它鎖”,則除被鎖住的行外,該表中其他行均可被其 他的用戶進行修改 (Update) 或刪除 (delete) 。若為“表級排它鎖”,則所有其他用戶只能對該表進行查詢 (select) 操作,而無法對其中的任何記錄進行修改或刪除。當程序對所做的修改進行提交 (commit) 或回滾 (rollback) 后,鎖住的資源便會得到釋放,從而允許其他用戶進行操作。如果兩個事務,分別鎖定一部分數據,而都在等待對方釋放鎖才能完成事務操作,這種情況下就會發生死鎖。

?

4. ? 事務和鎖

當執行事務操作時 (dml 語句 ),oracle 會在被作用的表上加鎖 , 防止其他用戶改變表的結構。

提交事務: 當執使用 commit 語句可以提交事務 . 當執行了 commit 語句之后 , 會確認事務的變化、結束事務、刪除保存點、釋放鎖 , 當使用 commit 語句結束事務之后 , 其他會話將可以查看到事務變化后的新數據 ;

savepoint? 保存點名稱 ;???? -- 創建一個保存點

rollback to 保存點名稱 ;???????? -- 回滾到保存點

回滾事務

當執行 rollback , 通過指定保存點可以回退到指定的點

rollback??????-- 取消全部事務

commit 之后不能 rollback

?

?

?

?

Oracle事務和鎖


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 92在线视频| 日韩一区二区三区不卡视频 | 日本黄色aa | 日韩爱爱小视频 | 亚洲悠悠色综合中文字幕 | 成人毛片免费免费 | 国产精品社区在线观看 | 日本一级毛片视频网站 | 亚洲黄色免费看 | 婷婷在线成人免费观看搜索 | 久久精品国产日本波多麻结衣 | 久久精品66 | 日日日日人人人夜夜夜2017 | 香蕉视频97 | 97久久综合精品久久久综合 | 亚洲精品国产成人专区 | 欧美最大成人毛片视频网站 | 亚洲欧美在线综合一区二区三区 | 欧洲精品在线观看 | 亚洲欧美一区二区三区麻豆 | 色综合色综合色综合色综合 | 亚洲精品美女久久久久 | 欧美日本一本线在线观看 | 日本一级特黄aa毛片免费观看 | 亚洲精品亚洲人成毛片不卡 | 伊人久久波多野结衣中文字幕 | 国产成人高清 | 日韩毛片高清免费 | 国内女高中生一级毛片 | 久久久亚洲精品视频 | 久久久久综合精品福利啪啪 | 青青爽| 一色屋精品亚洲香蕉网站 | 夜夜爱夜夜做夜夜爽 | 四虎久久精品国产 | 国产视频一二 | 视频一区二区欧美日韩在线 | 女bbbbxxxx毛片视频0 | 欧美激情一区二区三区视频 | 七次郎在线视频精品视频 | 亚洲欧洲国产精品你懂的 |