개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.04 21:58

오라클 트랜잭션 롤백에 대한 질문

  • Haskell연구가 12일 전 2025.03.04 21:58
  • 4
    1
제가 오라클 DB에 트랜잭션을 수행하고 rollback을 수행했을 때, rollback이 자동으로 적용되지 않는 현상이 발생하고 있습니다.

rollback을 수행한 후에도 DB의 변경된 데이터가 이전 상태로 복원되지 않습니다.
이러한 현상은 트랜잭션의 isolation level과 관련이 있을까요?
혹시 rollback을 수행한 후에 commit을 수행해야 하는지 궁금합니다.
혹시 rollback을 수행한 후에도 데이터가 이전 상태로 복원되지 않는 이유를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  12일 전



    오라클 DB에서 트랜잭션 롤백이 자동으로 적용되지 않는 이유는 다음과 같습니다.

    1. 트랜잭션의 isolation level: 오라클 DB에서는 트랜잭션의 isolation level이 AUTO COMMIT로 설정되어 있으면, 트랜잭션 롤백이 자동으로 적용되지 않습니다. 이 경우, 롤백을 수행한 후에 commit을 수행해야 합니다.
    2. 트랜잭션의 상태: 트랜잭션의 상태가 ACTIVE 또는 IN-DATA가 아닌 경우, 롤백이 자동으로 적용되지 않습니다. 이 경우, 롤백을 수행한 후에 commit을 수행해야 합니다.
    3. 트랜잭션의 LOCK: 트랜잭션의 LOCK이 걸려 있는 경우, 롤백이 자동으로 적용되지 않습니다. 이 경우, 롤백을 수행한 후에 commit을 수행해야 합니다.
    4. DB의 버전: 오라클 DB의 버전이 12c 이상인 경우, 롤백이 자동으로 적용되지 않습니다. 이 경우, 롤백을 수행한 후에 commit을 수행해야 합니다.

    롤백을 수행한 후에도 데이터가 이전 상태로 복원되지 않는 이유는 다음과 같습니다.

    1. 트랜잭션의 isolation level: 오라클 DB에서는 트랜잭션의 isolation level이 AUTO COMMIT로 설정되어 있으면, 트랜잭션 롤백이 자동으로 적용되지 않습니다. 이 경우, 롤백을 수행한 후에 commit을 수행해야 합니다.
    2. 트랜잭션의 상태: 트랜잭션의 상태가 ACTIVE 또는 IN-DATA가 아닌 경우, 롤백이 자동으로 적용되지 않습니다. 이 경우, 롤백을 수행한 후에 commit을 수행해야 합니다.
    3. 트랜잭션의 LOCK: 트랜잭션의 LOCK이 걸려 있는 경우, 롤백이 자동으로 적용되지 않습니다. 이 경우, 롤백을 수행한 후에 commit을 수행해야 합니다.

    롤백을 수행한 후에 commit을 수행해야 하는 이유는 다음과 같습니다.

    1. 트랜잭션의 일관성: 트랜잭션의 일관성을 유지하기 위해 commit을 수행해야 합니다.
    2. 데이터의 정합성: 데이터의 정합성을 유지하기 위해 commit을 수행해야 합니다.
    3. 트랜잭션의 완료: 트랜잭션의 완료를 위해 commit을 수행해야 합니다.

    2025-03-04 21:59

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 3,953건 / 220 페이지

검색

게시물 검색