Oracle鏁版嵁搴撲腑閿佸畾鐨勬爣鍑嗙駭鍒繚璇佷簡鏈澶у彲鑳界殑騫跺彂綰у埆涔熷氨鏄,濡傛灉鏌愪釜浼氳瘽姝e湪鏇存柊涓鏉¤褰?閭d箞鍙湁榪欐潯璁板綍浼氳閿佸畾.姝ゅ,閿佸畾榪欐潯璁板綍鏄負浜嗛槻姝㈠叾浠栦細璇濆鍏惰繘琛屾洿鏂?鍏朵粬浼氳瘽鍙互闅忔椂鎵ц璇誨彇鎿嶄綔.鍙湁鍦ㄤ嬌鐢╟ommit鎴杛ollback鍛戒護緇撴潫浜嬪姟涔嬪悗,閿佸畾鎵嶄細琚В闄?榪欑閿佸畾鏄竴涓?#8221;鎺掍粬閿?#8221;:鍦ㄦ寚瀹氳褰曚笂璇鋒眰鎺掍粬閿佺殑絎竴涓細璇濅細寰楀埌榪欎釜閿佸畾,鍏朵粬璇鋒眰瀵硅璁板綍榪涜鍐欒闂殑浼氳瘽鍒欏繀欏葷瓑寰?铏界劧榪欐潯璁板綍宸查氳繃閿佸畾浼氳瘽榪涜浜嗘洿鏂?浣嗘槸瀵瑰叾榪涜璇昏闂綘鏄鍏佽鐨?鑰屼笖緇忓父浼氬嚭鐜拌繖縐嶆儏鍐?,騫朵笖榪欎簺璇繪搷浣滀細娑夊強鎾ら攢鏁版嵁鐨勪嬌鐢?浠庤岀‘淇濋兘浼氬洖騫朵笉浼氱湅鍒頒換浣曟湭琚彁浜ょ殑鍙樺寲瀵逛簬涓鏉¤褰曟垨涓涓畬鏁磋〃涓婄殑涓涓帓浠栭攣鏉ヨ,姣忔鍙兘鏈変竴涓細璇濆彲浠ヨ幏寰楄繖涓帓浠栭攣,涓嶈繃璁稿浼氳瘽鍙互鍚屾椂鑾峰緱鐩稿悓瀵硅薄涓婄殑”鍏變韓閿?#8221;.鍦ㄤ竴鏉¤褰曚笂璁劇疆鍏變韓閿佹鏃犳剰涔?鍏跺師鍥犲湪浜庨攣瀹氫竴鏉¤褰曠殑鍞竴鐩殑灝辨槸涓嶅厑璁稿叾浠栦細璇濇洿鏀瑰畠.鍏變韓閿佽緗簬鏁翠釜琛ㄤ笂,鍚屾椂璁稿浼氳瘽鍙互鑾峰緱鍚屼竴涓〃涓婄殑鍏變韓閿?鍦ㄤ竴涓〃涓婃斁緗叡浜攣鐨勭洰鐨勬槸涓轟簡闃叉鍙︿竴涓細璇濊幏寰楄繖涓〃涓婄殑鎺掍粬閿?鍦ㄥ凡瀛樺湪鍏變韓閿佺殑鎯呭喌涓嬫棤娉曞啀鑾峰緱鎺掍粬閿?.鍦ㄨ〃涓婇槻姝㈡帓浠栭攣鏄渶瑕佹墽琛孌DL璇彞.濡傛灉鍏朵粬浠諱綍浼氳瘽宸茬粡鍦ㄤ竴涓〃涓婃斁緗簡鍏變韓閿?閭d箞鎴戜滑灝辨棤娉曟墽琛屼慨鏀規(guī)煇涓璞$殑璇彞(渚嬪鍒犻櫎榪欎釜琛ㄧ殑鏌愪竴鍒?.
涓轟簡鍦ㄨ褰曚笂鎵цDML璇彞,褰撳墠浼氳瘽蹇呴』鑾峰彇寰呮洿鏂拌褰曚笂鐨勬帓浠栭攣浠ュ強鍖呭惈榪欎簺璁板綍鐨勮〃涓婄殑鍏變韓閿?濡傛灉鍙︿竴涓細璇濆凡緇忚幏鍙栦簡寰呮洿鏂拌褰曚笂鐨勬帓浠栭攣,閭d箞褰撳墠浼氳瘽灝嗚鎸傝搗,鐩磋嚦浣跨敤COMMIT鎴朢OLLBACK鍛戒護瑙i櫎榪欎簺閿佸畾,濡傛灉鍙︿竴涓細璇濆凡緇忚幏鍙栦簡寰呬慨鏀硅褰曠殑琛ㄤ笂鐨勫叡浜攣浠ュ強鍏朵粬璁板綍涓婄殑鎺掍粬閿?閭d箞灝變笉瀛樺湪浠諱綍闂.涓涓〃涓婄殑鎺掍粬閿佷細閿佸畾榪欎釜琛?浣嗘槸,濡傛灉涓嶉渶瑕佹墽琛孌DL璇彞,閭d箞鎴戜滑灝卞彲浠ヤ笉閿佸畾鏁翠釜琛ㄧ殑榛樿閿佸畾鏈哄埗.
鎻愮ず:鍙湁鍦ㄧ壒鍒姹傚茍涓旂紪紼嬩漢鍛樺叿鏈夊厖鍒嗙悊鐢辯殑鎯呭喌涓?鎵嶅彲浠ヨ姹傚湪鏁翠釜琛ㄤ笂鏀劇疆鎺掍粬閿?
DML閿佷笌DDL閿?/strong>
鎵鏈塂ML璇彞閮借嚦灝戦渶瑕佷袱縐嶉攣瀹?鍙楀獎鍝嶈褰曚笂鐨勬帓浠栭攣,浠ュ強鍖呭惈鍙楀獎鍝嶈褰曠殑琛ㄤ笂鐨勫叡浜攣.鎺掍粬閿佽兘澶熼槻姝㈠叾浠栦細璇濆共棰勬寚瀹氱殑璁板綍,鑰屽叡浜攣鍒欒兘澶熼樆姝㈠叾浠栦細璇濅嬌鐢―DL璇彞淇敼琛ㄧ殑瀹氫箟.榪欎袱縐嶉攣瀹氫細琚嚜鍔ㄨ姹?濡傛灉鏌愭潯DML璇彞鍦ㄦ寚瀹氳褰曚笂鏃犳硶鑾峰彇鎵闇鐨勬帓浠栭攣,閭d箞榪欐潯璇彞浼氳鎸傝搗鐩磋嚦鑾峰緱鎵闇鐨勬帓浠栭攣.
鎵цDDL鍛戒護闇瑕佷嬌鐢ㄦ墍娑夊強瀵硅薄涓婄殑鎺掍粬閿?鍙湁鍦ㄩ拡瀵規(guī)寚瀹氳〃鐨勬墍鏈塂ML浜嬪姟緇撴潫,騫朵笖璁板綍涓婄殑鎺掍粬閿佷互鍙婅〃涓婄殑鍏變韓閿侀兘琚В闄や箣鍚?鎴戜滑鎵嶅彲浠ヨ幏寰楁墽琛孌DL鍛戒護鎵闇鐨勬帓浠栭攣,浠諱綍DDL璇彞鎵闇鐨勬帓浠栭攣閮芥槸琚嚜鍔ㄨ姹傜殑.浣嗘槸,濡傛灉鏃犳硶鑾峰彇鎵闇鐨勬帓浠栭攣(閫氬父鏄洜涓哄叾浠栦細璇濆凡緇忚幏寰楃敤浜嶥ML璇彞鐨勫叡浜攣),閭d箞DDL璇彞灝變細鐢變簬閿欒绔嬪嵆緇堟.
渚嬪瓙:
1. 浣跨敤SQL*PLUS,浣滀負鐢ㄦ埛SYSTEM榪炴帴鏁版嵁搴?
2. 鍒涘緩涓涓〃,騫朵笖鍦ㄨ繖涓〃涓彃鍏ヤ竴鏉¤褰?
>create table t1(c1 number);
>insert into t1 values(1);
>commit;
3.鍐嶆浣跨敤SQL*PLUS騫朵綔涓虹敤鎴稴YSTEM榪涜榪炴帴,浠庤屾墦寮鍙︿竴涓細璇?
4.鍦ㄧ涓涓細璇濅腑鎵ц涓涓狣ML鍛戒護,榪欎釜鍛戒護浼氬湪鎻掑叆鐨勮褰曚笂鏀劇疆涓涓帓浠栭攣,鍚屾椂榪樹細鍦ㄥ垱寤虹殑琛ㄤ笂鏀劇疆涓涓叡浜攣.
>update table t1 set c1=2 where c1=1;
5.濡備笅鎵紺?鍦ㄧ浜屼釜浼氳瘽涓墽琛岀涓鏉¢拡瀵規(guī)柊寤鴻〃鐨凞DL璇彞.
>alter table t1 add(c2 date);
error at line 1:
ora-00054:resource busy and acquire with nowait specified
鍥犱負DDL璇彞闇瑕佽〃涓婄殑鎺掍粬閿?鑰岃繖涓嶥ML璇彞宸插湪琛ㄤ笂鏀劇疆浜嗗叡浜攣鐩稿啿紿?鎵浠ヨ瘯鍥懼湪琛ㄤ腑鎻掑叆涓涓垪鐨勮繖鏉DL璇彞浼氬け璐?闇瑕佹敞鎰忕殑鏄?鍦ㄧ被浼兼儏鍐典笅,DML璇彞浼氱瓑寰呭茍涓嶆柇榪涜灝濊瘯,鐩磋嚦鑾峰緱鍏舵墍闇鐨勯攣(鎹㈠彞璇濊灝辨槸鎸傝搗);鑰孌DL璇彞鍒欎細鐢變簬閿欒绔嬪嵆緇堟.
6.鍦ㄧ涓涓細璇濅腑,鎻愪氦褰撳墠浜嬪姟
>commit;
7.鍦ㄧ浜屼釜浼氳瘽涓?閲嶆柊鎵ц姝ラ5.姝ゆ椂,鍥犱負涓嶇函鍦ㄤ笌DDL鎺掍粬閿佺浉鍐茬獊鐨凞ML鍏變韓閿?鍥犳DDL璇彞灝嗘垚鍔熺殑鎵ц.
8.鍦ㄧ涓涓細璇濅腑 ,閿佸畾鏁翠釜琛?
>lock table t1 in exclusive mode;
9.鍦ㄧ浜屼釜浼氳瘽涓?鎻掑叆涓鏉¤褰?姝ゆ椂,榪欎釜浼氳瘽灝嗚鎸傝搗.
>insert into t1 values (1,sysdate);
10.鍦ㄧ涓涓細璇濅腑,閫氳繃鎵цCOMMIT鍛戒護瑙i櫎鏁翠釜琛ㄤ笂鐨勯攣瀹?闇瑕佹敞鎰忕殑鏄?ROLLBACK鍛戒護涔熷彲浠ュ疄鐜扮浉鍚岀殑鐩殑.
>commit;
11.絎簩涓細璇濅細閲婃斁騫朵笖鐜板湪浼氬畬鎴愭彃鍏ユ搷浣?闅忓悗,鎵цCOMMIT鍛戒護,緇堟褰撳墠浜嬪姟鏂屼笖瑙i櫎璇ヨ褰曚笂鐨勬帓浠栭攣.
鍏充簬濡備綍瑙e喅姝婚攣鐨勯棶棰?
錛?鏌ュ摢涓繃紼嬭閿?br />
鏌$DB_OBJECT_CACHE瑙嗗浘:
SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER=''榪囩▼鐨勬墍灞炵敤鎴?' AND LOCKS!=''0'';
2. 鏌ユ槸鍝竴涓猄ID,閫氳繃SID鍙煡閬撴槸鍝釜SESSION.
鏌$ACCESS瑙嗗浘:
SELECT * FROM V$ACCESS WHERE OWNER=''榪囩▼鐨勬墍灞炵敤鎴?' AND NAME=''鍒氭墠鏌ュ埌鐨勮繃紼嬪悕
鐗堟潈褰掑師浣滆呭拰鍚勫彂甯冪綉绔欐墍鏈夛紝姝ゆ枃绔犱粎渚涘涔犲弬鑰冧箣鐢?/em>