현상
SESSION KILL 등의 이유로 V$SESSION을 조회했을 때, SERIAL# 값이 음수로 표시되는 경우가 있습니다.
아래는 현상에 대한 예제입니다.
SQL> select sid, serial# from v$session;
SID SERIAL#
---- -----------
130 -2138093902
SQL
복사
원인
SERIAL# 값이 내부적으로는 unsigned int으로 관리되지만, _vt_session 테이블에 값을 저장하는 과정에서 int으로 변환되도록 구현되어 있습니다. 이로 인해 unsigned int 값이 INT_MAX(2,147,483,647)를 초과할 경우, int로 변환 과정에서 음수로 출력되는 현상이 발생합니다.
해결
패치 FS07_227758a를 적용함으로써, SERIAL# 값이 정상적으로 출력되도록 수정되었습니다.
주의
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
참고
음수로 표시된 SERIAL# 값에 4294967296을 더하여 정상 값으로 변환하여 우회할 수 있습니다.
SQL > alter system session kill (130, 2156873394);
System altered.
SQL
복사