數(shù)據(jù)庫(kù)事務(wù)的四大特性 為什么大部分的數(shù)據(jù)庫(kù)系統(tǒng)仍然要用oracle?
為什么大部分的數(shù)據(jù)庫(kù)系統(tǒng)仍然要用oracle?因?yàn)镺racle在互聯(lián)網(wǎng)快速發(fā)展的大環(huán)境下越來(lái)越強(qiáng),越做越好。Oracle目前最大的戰(zhàn)略計(jì)劃就是Cloud-云,同時(shí)Oracle會(huì)持續(xù)升級(jí),向精細(xì)化,智能
為什么大部分的數(shù)據(jù)庫(kù)系統(tǒng)仍然要用oracle?
因?yàn)?span style="font-weight: bold">Oracle在互聯(lián)網(wǎng)快速發(fā)展的大環(huán)境下越來(lái)越強(qiáng),越做越好。Oracle目前最大的戰(zhàn)略計(jì)劃就是Cloud-云,同時(shí)Oracle會(huì)持續(xù)升級(jí),向精細(xì)化,智能化,自動(dòng)化等方法發(fā)展。關(guān)注12c,18c,19c的發(fā)展路徑就可以看到……
舉個(gè)例子說(shuō)一下Oracle 19c的一個(gè)新特性(Oracle 19c還未發(fā)布,從某ACED處獲取的消息)。對(duì)于傳統(tǒng)的集群,如果某個(gè)節(jié)點(diǎn)掛掉,放在傳統(tǒng)的集群中,該節(jié)點(diǎn)正在處理的操作會(huì)失敗,從而可能導(dǎo)致事務(wù)會(huì)處理失敗被回滾。但是19c的新特性就特別牛,有守護(hù)進(jìn)程會(huì)全程監(jiān)控你的事務(wù)的每一個(gè)操作,如果節(jié)點(diǎn)掛掉了,后臺(tái)會(huì)將所有操作切換到健康的節(jié)點(diǎn)重做,事務(wù)成功執(zhí)行,用戶無(wú)感知。
特別的,將Oracle與DB2相對(duì)比,Oracle和DB2相同之處就是不開源,最大的不同之處是Oracle絕對(duì)開放,DB2相對(duì)封閉。比如Oracle在使用時(shí)報(bào)了一個(gè)錯(cuò)誤,我們看錯(cuò)誤信息大概能知道是什么問(wèn)題,還有trace日志可查。但是DB2報(bào)了個(gè)錯(cuò)誤,那就是一串錯(cuò)誤碼,讓人不明所以。
也正是Oracle的開放,造就了Oracle在全球數(shù)據(jù)庫(kù)市場(chǎng)占用率最高的局面,同時(shí)也造就了Oracle相對(duì)完善的生態(tài)圈。從安全性、穩(wěn)定性、可維護(hù)性等角度考慮,從公司發(fā)展的角度來(lái)看,大部分的數(shù)據(jù)庫(kù)系統(tǒng)仍然要用oracle。
ORACLE數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別介紹?
隔離級(jí)別(isolation level),是指事務(wù)與事務(wù)之間的隔離程度。 顯然,事務(wù)隔離程度越高,并發(fā)性越差、性能越低;事務(wù)隔離程度越低,并發(fā)性越強(qiáng)、性能越高。Oracle默認(rèn)的隔離級(jí)別是read committed。查看數(shù)據(jù)庫(kù)隔離級(jí)別的方法:
1. SELECT * FROM dual FOR UPDATE
2. SELECT s.sid, s.serial#, CASE BITAND(t.flag, POWER(2, 28)) WHEN 0 THEN "READ COMMITTED" ELSE "SERIALIZABLE" END AS isolation_level FROM v$transaction t JOIN v$session s ON t.addr = s.taddr AND s.sid = sys_context("USERENV", "SID")修改數(shù)據(jù)庫(kù)隔離級(jí)別的方法: 設(shè)置隔離級(jí)別使用 SET TRANSACTION ISOLATION LEVEL [READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE]