Energy of Love  
          日歷
          <2009年7月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678
          統計
          • 隨筆 - 70
          • 文章 - 0
          • 評論 - 80
          • 引用 - 0

          導航

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          當某個數據庫用戶在數據庫中插入、更新、刪除一個表的數據,或者增加一個表的主鍵時或者表的索引時,常常會出現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);

          posted on 2009-07-22 11:39 不高興 閱讀(333) 評論(0)  編輯  收藏 所屬分類: Oracle
           
          Copyright © 不高興 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 轮台县| 都昌县| 高清| 永兴县| 湘乡市| 谢通门县| 美姑县| 枣阳市| 盐亭县| 颍上县| 资溪县| 威信县| 贵德县| 民县| 浮梁县| 通山县| 墨玉县| 海城市| 芦溪县| 金山区| 孙吴县| 宣城市| 内黄县| 绵竹市| 广汉市| 乌鲁木齐市| 驻马店市| 达日县| 丰顺县| 绥芬河市| 蒙城县| 松桃| 宜宾市| 大庆市| 若羌县| 龙游县| 云梦县| 资兴市| 宜宾县| 磴口县| 阳江市|