일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스 여행경로
- SQL SERVER 장비교체
- 다리 만들기 파이썬
- 다중 컬럼 NOT IN
- 프로그래머스 순위 파이썬
- 백준 1167 트리의 지름 파이썬
- 백준 2352 반도체 설계 파이썬
- 백준 2146 다리 만들기
- 게임 개발 파이썬
- SWEA
- 가장 긴 팰린드롬 파이썬
- 백준 1516 게임 개발
- 가장 긴 바이토닉 부분 수열 파이썬
- 반도체 설계 파이썬
- 프로그래머스 가장 긴 팰린드롬
- 프로그래머스 순위
- 백준 1238 파티 파이썬
- 백준 1043 거짓말 파이썬
- 백준 1034 램프 파이썬
- 램프 파이썬
- 트리의 지름 파이썬
- 순위 파이썬
- SQL SERVER MIGRATION
- 역사 파이썬
- 프로그래머스 등굣길
- 백준 11054.가장 긴 바이토닉 부분 수열
- 백준 1613 역사
- 베스트앨범 파이썬
- 등굣길 파이썬
- 프로그래머스 베스트앨범
Archives
- Today
- Total
공부, 기록
[SQL Server] 임시 테이블을 사용한 트랜잭션 롤백 실패 본문
새벽에 일어나는 작업 중 임시 테이블을 생성하고 해당 테이블과 서비스 테이블을 조인하여 Seq (Identitiy 값인 PK)를 조건으로 데이터를 삭제하는 내용이 있었다.
어떠한 사유로 해당 작업이 새벽에 진행 중 STOP이 되었고 이를 오전 중 다시 실행하고자 하였다.
삭제 중 Key 기반으로 Lock이 잡혔어야 할 데이터가 Lock 에스컬레이션이 발생하였는지 테이블에 Lock 이 걸렸고 일단 서비스 데이터가 인입되어야 하는 테이블이므로 삭제 작업을 중지하도록 하였다.
롤백이 어느정도 진행되고 금방 중단이 될 것으로 판단했으나 시간이 꽤 지나도 롤백이 완료가 되지 않았고
KILL SESSIONID WITH STATUSONLY 를 통하여 확인하였으나 롤백 진행이 0%에 멈춰있었다. 해당 세션을 죽이기 위해서 여러 엮여있는 세션 동시 KILL, 해당 배치가 실행하는 SP RENAME 및 DROP 을 통한 상태 변경, 사용하는 TEMP 테이블을 찾아 TABLE DROP 시도 등등 하였으나 세션은 죽지 않았다.
해당 세션이 CPU, DISKIO 지표는 증가하지만 결과적으로 임시 테이블을 사용하는 과정에서 생기는 롤백 미처리 현상으로 파악하고 서버 재실행을 하면 TEMPDB의 경우 비워지기 때문에 롤백을 하지 않을 것으로 판단하여 서버 재실행을 시도. 정상적으로 서버는 올라왔고 해당 세션은 죽어있는 것 확인. 해당 내용의 경우 DB 버그로 판단되며 서비스팩 업데이트를 통하여 해결 할 수 있다는 구글링 결과가 있지만 업데이트 이후에도 해당 버그가 발견된다는 글 또한 확인이 됨.
'공부 > DATABASE' 카테고리의 다른 글
[MVCC] SQL Server, MySQL 차이점 (0) | 2023.02.24 |
---|---|
컬럼기반 DBMS (0) | 2023.02.24 |
[SQL Server] 운영 서비스 DML 개선 방안 (0) | 2023.02.05 |
[ClickHouse] 빠른 분석을 위한 컬럼기반 DBMS, Spark, Spring Boot 연동 (0) | 2023.02.05 |
[SQL Server] 최근 튜닝 일지 (0) | 2023.02.05 |