오라클 LOCK 걸린 개체 확인 및 LOCK 해제

    1. LOCK 걸린 개체 확인

    SELECT OBJECT_ID
         , SESSION_ID
         , ORACLE_USERNAME
         , OS_USER_NAME
    FROM V$LOCKED_OBJECT;

    2. 해당 SESSION_ID와 SERIAL 번호로 락걸린 개체 확인

    SELECT A.SID 
         , A.SERIAL#
         , OBJECT_NAME
         , A.SID || ', ' || A.SERIAL# AS KILL_TASK
    FROM V$SESSION A
    INNER JOIN V$LOCK B ON A.SID = B.SID
    INNER JOIN DBA_OBJECTS C ON B.ID1 = C.OBJECT_ID
    WHERE B.TYPE  = 'TM'

    3. 락 발생 사용자 및 OBJECT 조회 + 어떤 SQL를 실행중인지 확인

    Lock을 해제하기전에 Lock을 유발시킨 SQL이 어떤것인지를 확인하여 실행되고 있는지 아니면 정말로 Lock 인지를 확인해야 함.

    SELECT DISTINCT T1.SESSION_ID
         , T2.SERIAL#
         , T4.OBJECT_NAME
         , T2.MACHINE
         , T2.TERMINAL
         , T2.PROGRAM
         , T3.ADDRESS
         , T3.PIECE
         , T3.SQL_TEXT
    FROM V$LOCKED_OBJECT T1
         , V$SESSION T2
         , V$SQLTEXT T3
         , DBA_OBJECTS T4
    WHERE T1.SESSION_ID = T2.SID
      AND T1.OBJECT_ID = T4.OBJECT_ID
      AND T2.SQL_ADDRESS = T3.ADDRESS
    ORDER BY T3.ADDRESS, T3.PIECE;

    4. SID와 시리얼 번호로 세션 해제

    ALTER SYSTEM KILL SESSION ${2번에서 KILL_TASK로 조회한 결과값};

    참고사이트

    오라클 LOCK 걸린 개체 확인 및 LOCK 해제

      Git Remote Repository Change

      내가 생성한 Repository의 원격 저장소를 변경하거나,
      다른 RepositoryFork해서 작업하던 Repository를 최신화 해 줄때 사용한다.

      Old Repository 최신화

      저장소를 최신화하기 위해서는 먼저 저장소를 코드를 Pull(=Update) 하여 갱신을 하고, 내 로컬에서 작업하고 있는 코드를 모두 Push(=CheckOut) 해준다.

      $ git pull
      $ git add .
      $ git commit -m "Local code commit all."
      $ git push

      Old Repository의 Remote 정보 확인

      저장소에 연결되어 있는 Remote Repository의 정보를 확인 할 수 있다.

      $ git remote -v

      Old Repository Remote 제거

      저장소에 연결되어 있는 Remote Repository를 제거한다.
      Remote Repositoryorigin이라는 별칭으로 등록되어 있기에 해당 별칭을 사용하여 제거

      $ git remote remove origin

      New Repository Reomote 추가

      origin이라는 별칭으로 사용하던 Remote Repository를 삭제 하고 난 후,
      다시 origin이라는 별칭으로 Remote Repository를 새로 등록해 준다.

      $ git remote add origin ${신규 저장소 주소 : https://github.com/계정/리포지토리.git}

      새로운 Remote Repository를 연결했다면 Pull하여 최신화된 코드로 갱신하여 사용한다.