檢視ORACLE的使用者對錶的鎖的使用
當某個資料庫使用者在資料庫中插入、更新、刪除一個表的資料,或者增加一個表的主鍵時或者表的索引時,常常會出現ora-00054:resource busy and acquire with nowait specified這樣的錯誤。
主要是因為有事務正在執行(或者事務已經被鎖),所有導致執行不成功。
1、用dba許可權的使用者檢視資料庫都有哪些鎖
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
如:testuser 339 13545 2009-3-5 17:40:05
知道被鎖的使用者testuser,sid為339,serial#為13545
2、根據sid檢視具體的sql語句,如果sql不重要,可以kill
select sql_text from v$session a,v$sqltext_with_newlines b
where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
and a.sid=&sid order by piece;
查出來的sql,如: begin :id := sys.dbms_transaction.local_transaction_id; end;
3、kill該事務
alter system kill session '339,13545';
4、這樣就可以執行其他的事務sql語句了
如增加表的主鍵:
alter table test
add constraint PK_test primary key (test_NO);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/235507/viewspace-718173/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle檢視錶空間使用情況及某表是否被鎖的問題Oracle
- oracle檢視被鎖的表和解鎖Oracle
- 檢視oracle被鎖的表是誰鎖的Oracle
- Oracle錶的歷史統計資訊檢視Oracle
- oracle 檢視錶空間使用情況Oracle
- oracle 檢視使用者所在的表空間Oracle
- 檢視oracle資料庫的連線數以及使用者檢視Oracle資料庫
- 詳解Oracle使用者許可權檢視的使用Oracle
- oracle死鎖的檢視及kill方法Oracle
- Oracle Mysql SqlServer檢視錶的最後10行OracleMySqlServer
- oracle 檢視錶所佔用的空間大小Oracle
- oracle 檢視錶空間Oracle
- ORACLE如何檢視錶空間路徑及使用者許可權Oracle
- Oracle 檢視錶空間的大小及使用情況sql語句OracleSQL
- 檢視Oracle使用者的許可權或角色Oracle
- oracle 檢視使用者密碼的修改時間Oracle密碼
- 【轉】檢視Oracle當前使用者下的資訊Oracle
- mysql檢視錶建立的索引MySql索引
- 檢視處理Oracle中被鎖物件的SQLOracle物件SQL
- oracle 檢視鎖表和解鎖Oracle
- Oracle檢視錶空間大小Oracle
- Oracle檢視錶空間大小和使用率Oracle
- Oracle SQL對錶的操作OracleSQL
- Oracle對錶的監控Oracle
- [sqlserver] 檢視錶的統計資訊SQLServer
- 【TUNE_ORACLE】檢視錶的總塊數SQL參考OracleSQL
- Oracle死鎖的檢視以及解決辦法Oracle
- oracle 監控 DML DDL 鎖 的4個檢視Oracle
- 檢視SAP使用者的IP[table]
- Oracle檢視錶空間使用率SQL指令碼OracleSQL指令碼
- Oracle常用檢視錶結構命令Oracle
- 解鎖資料庫使用者、檢視登陸幾次才鎖定使用者資料庫
- oracle檢視鎖表程式Oracle
- Oracle檢視使用者許可權Oracle
- 檢視oracle 使用者許可權Oracle
- oracle表對錶的多行更新Oracle
- Oracle 索引的使用情況檢視Oracle索引
- 檢視Oracle鎖並且釋放鎖Oracle