복붙노트

[SQL] ORA-00054 : NOWAIT와 자원 바쁜 취득 지정

SQL

ORA-00054 : NOWAIT와 자원 바쁜 취득 지정

나는 테이블을 갱신의 한가운데에 있었다 스크립트를 죽였다. 지금은 내가 무엇입니까 스크립트를 다시 실행하면,

나는 테이블이 잠겨 가정? 어떻게 테이블 잠금을 해제 할? 미리 감사드립니다.

해결법

  1. ==============================

    1.1 단계:

    1 단계:

    select object_name, s.sid, s.serial#, p.spid 
    from v$locked_object l, dba_objects o, v$session s, v$process p
    where l.object_id = o.object_id and l.session_id = s.sid and s.paddr = p.addr;
    

    2 단계:

    alter system kill session 'sid,serial#'; --`sid` and `serial#` get from step 1
    

    추가 정보 : http://www.oracle-base.com/articles/misc/killing-oracle-sessions.php

  2. ==============================

    2.[정보] 사용자 user712934 '에 대한 감사

    [정보] 사용자 user712934 '에 대한 감사

    또한 SQL, 사용자 이름, 기계, 포트 정보를 검색하고 연결을 보유하고있는 실제 프로세스를 얻을 수 있습니다

    SELECT O.OBJECT_NAME, S.SID, S.SERIAL#, P.SPID, S.PROGRAM,S.USERNAME,
    S.MACHINE,S.PORT , S.LOGON_TIME,SQ.SQL_FULLTEXT 
    FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, 
    V$PROCESS P, V$SQL SQ 
    WHERE L.OBJECT_ID = O.OBJECT_ID 
    AND L.SESSION_ID = S.SID AND S.PADDR = P.ADDR 
    AND S.SQL_ADDRESS = SQ.ADDRESS;
    
  3. ==============================

    3.기다리셔야됩니다. 살해 된 세션은 트랜잭션의 중간 및 기록의 갱신을 많이했다. 이 기록은 롤백 할 수 있고 일부 백그라운드 프로세스는 처리를하고있다. 그 동안 당신은 감동 한 기록을 수정할 수 없습니다.

    기다리셔야됩니다. 살해 된 세션은 트랜잭션의 중간 및 기록의 갱신을 많이했다. 이 기록은 롤백 할 수 있고 일부 백그라운드 프로세스는 처리를하고있다. 그 동안 당신은 감동 한 기록을 수정할 수 없습니다.

  4. ==============================

    4.당신이 "KILLED"상태에서 잠시 동안 세션, 세션 중단을 살해 할 때 오라클은 후 정리하면서.

    당신이 "KILLED"상태에서 잠시 동안 세션, 세션 중단을 살해 할 때 오라클은 후 정리하면서.

    당신이 절대적으로, 당신은뿐만 아니라 OS 프로세스를 죽일 수해야하는 경우가에 들고 한 모든 잠금을 해제 것이다, (최대 V $ process.spid)을 보면.

    더 자세한 정보를 원하시면이를 참조하십시오.

  5. ==============================

    5.상황에 따라, 테이블은 단지 정상 작동의 일부가 될 수 갇혀 & 당신은 차단 트랜잭션을 죽이고 싶지 않습니다. 당신이 원하는 것은 다른 자원에 대한 명세서 대기를 가지고있다. 오라클 11g는이 처리하도록 설정할 수 있습니다 DDL 시간 제한이 있습니다.

    상황에 따라, 테이블은 단지 정상 작동의 일부가 될 수 갇혀 & 당신은 차단 트랜잭션을 죽이고 싶지 않습니다. 당신이 원하는 것은 다른 자원에 대한 명세서 대기를 가지고있다. 오라클 11g는이 처리하도록 설정할 수 있습니다 DDL 시간 제한이 있습니다.

    더 많은 창의력과 재 시도를 처리하기 위해 몇 가지 PL / SQL을 작성해야 다음 10g에 나왔습니다 거래는합니다. ORA-00054 오라클에서 주위 방법 좀 봐 resource_busy 예외가 발생하면이 명세서를 재 - 실행 10g의.

  6. from https://stackoverflow.com/questions/3075738/ora-00054-resource-busy-and-acquire-with-nowait-specified by cc-by-sa and MIT license