oracle只支持2種事務(wù)隔離級(jí)別。

專(zhuān)注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)同德免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
read commited
Serializable
alter session set isolation_level={ SERIALIZABLE | READ COMMITTED }
想測(cè)這個(gè)可以去使用mysql,它支持完整的四種事務(wù)隔離級(jí)別。
事務(wù)隔離級(jí)別:一個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改與并行的另一個(gè)事務(wù)的隔離程度。
兩個(gè)并發(fā)事務(wù)同時(shí)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)表相同的行時(shí),可能存在以下三個(gè)問(wèn)題:
1、幻想讀:事務(wù)T1讀取一條指定where條件的語(yǔ)句,返回結(jié)果集。此時(shí)事務(wù)T2插入一行新記錄,恰好滿(mǎn)足T1的where條件。然后T1使用相同的條件再次查詢(xún),結(jié)果集中可以看到T2插入的記錄,這條新紀(jì)錄就是幻想。
2、不可重復(fù)讀取:事務(wù)T1讀取一行記錄,緊接著事務(wù)T2修改了T1剛剛讀取的記錄,然后T1再次查詢(xún),發(fā)現(xiàn)與第一次讀取的記錄不同,這稱(chēng)為不可重復(fù)讀。
3、臟讀:事務(wù)T1更新了一行記錄,還未提交所做的修改,這個(gè)T2讀取了更新后的數(shù)據(jù),然后T1執(zhí)行回滾操作,取消剛才的修改,所以T2所讀取的行就無(wú)效,也就是臟數(shù)據(jù)。
為了處理這些問(wèn)題,SQL標(biāo)準(zhǔn)定義了以下幾種事務(wù)隔離級(jí)別
READ?UNCOMMITTED?幻想讀、不可重復(fù)讀和臟讀都允許。
READ?COMMITTED?允許幻想讀、不可重復(fù)讀,不允許臟讀
REPEATABLE?READ?允許幻想讀,不允許不可重復(fù)讀和臟讀
SERIALIZABLE?幻想讀、不可重復(fù)讀和臟讀都不允許
Oracle數(shù)據(jù)庫(kù)支持READ?COMMITTED?和?SERIALIZABLE這兩種事務(wù)隔離級(jí)別。所以O(shè)racle不支持臟讀
SQL標(biāo)準(zhǔn)所定義的默認(rèn)事務(wù)隔離級(jí)別是SERIALIZABLE,但是Oracle?默認(rèn)使用的是READ?COMMITTED
設(shè)置隔離級(jí)別使用?SET?TRANSACTION?ISOLATION?LEVEL?[READ?UNCOMMITTED|READ?COMMITTED|REPEATABLE?READ|SERIALIZABLE]
--?下面是oracle?設(shè)置SERIALIZABLE隔離級(jí)別一個(gè)示例:
左面是事務(wù)T1,右面是事務(wù)T2,因?yàn)門(mén)2級(jí)別為SERIALIZABLE,所以即使事務(wù)T1在提交了數(shù)據(jù)之后,事務(wù)T2還是看不到T1提交的數(shù)據(jù),幻想讀和不可重復(fù)讀都不允許了。
那如何能查看到T1新增的記錄呢? 上面T1和T2是并發(fā)執(zhí)行,在T1執(zhí)行insert的時(shí)候事務(wù)T2已經(jīng)開(kāi)始了,因?yàn)門(mén)2級(jí)別是SERIALIZABLE,所以T2所查詢(xún)的數(shù)據(jù)集是T2事務(wù)開(kāi)始前數(shù)據(jù)庫(kù)的數(shù)據(jù)。即事務(wù)T1在事務(wù)T2開(kāi)始之后的insert和update操作的影響都不會(huì)影響事務(wù)T2。現(xiàn)在重新開(kāi)啟一個(gè)事務(wù)T3 就可以看到T1新增的記錄了。
當(dāng)下列事件發(fā)生時(shí),事務(wù)就開(kāi)始了:
1、連接到數(shù)據(jù)庫(kù),并執(zhí)行第一條DML語(yǔ)句
2、前一個(gè)事務(wù)結(jié)束后,又輸入了另一條DML語(yǔ)句
設(shè)置一個(gè)事務(wù)的隔離級(jí)別
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
ET TRANSACTION READ ONLY;
設(shè)置增個(gè)會(huì)話(huà)的隔離級(jí)別
ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE;
ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED;
首先,我沒(méi)有明白樓主所說(shuō)的OS級(jí)別是什么級(jí)別,
oracle審計(jì)級(jí)別可以分為:
語(yǔ)句審計(jì)、權(quán)限審計(jì)、模式對(duì)象審計(jì)、(細(xì)粒度的審計(jì))
三個(gè)重要參數(shù):audit_file_dest、audit_sys_operations、audit_trail
audit_trail:
None:是默認(rèn)值,不做審計(jì);
DB:將audit trail 記錄在數(shù)據(jù)庫(kù)的審計(jì)相關(guān)表中,如aud$,審計(jì)的結(jié)果只有連接信息;
DB_EXTENDED:這樣審計(jì)結(jié)果里面除了連接信息還包含了當(dāng)時(shí)執(zhí)行的具體語(yǔ)句;
OS:將audit trail 記錄在操作系統(tǒng)文件中,文件名由audit_file_dest參數(shù)指定;
XML:10g里新增的。
audit_sys_operations:
對(duì)應(yīng)Audit_trail=OS,默認(rèn)為false,當(dāng)設(shè)置為true時(shí),所有sys用戶(hù)(包括以sysdba,sysoper身份登錄的用戶(hù))的操作都會(huì)被記錄,audit trail不會(huì)寫(xiě)在aud$表中,這個(gè)很好理解,如果數(shù)據(jù)庫(kù)還未啟動(dòng)aud$不可用,那么像conn /as sysdba這樣的連接信息,只能記錄在其它地方。比如文件。
audit_file_dest:Audit_trail=OS時(shí) 文件位置。
例如:
alter system set audit_trail=DB_EXTENDED scope=spfile;設(shè)置為DB_EXTENDED 。
如果您說(shuō)的OS級(jí)別是指audit_trail=OS的話(huà),記得設(shè)置另外兩個(gè)參數(shù)。
當(dāng)前標(biāo)題:oracle怎么調(diào)事物級(jí)別,oracle默認(rèn)事務(wù)級(jí)別
網(wǎng)頁(yè)地址:http://chinadenli.net/article35/dsiessi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站導(dǎo)航、、搜索引擎優(yōu)化、網(wǎng)頁(yè)設(shè)計(jì)公司、企業(yè)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)