ORA-00022 invalid session ID 는?

ORA-00022 에러는 Oracle 데이터베이스에서 세션 ID가 유효하지 않을 때 발생하는 오류입니다. 주로 DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION, ALTER SYSTEM KILL SESSION, DBMS_SESSION 패키지 등을 사용할 때 존재하지 않거나 이미 종료된 세션 ID를 참조하면 발생합니다. 실무에서는 DBA가 특정 세션을 강제 종료하거나 트레이스를 활성화하는 과정에서 세션 정보가 변경되었음에도 불구하고 오래된 SID 값을 그대로 사용할 경우 빈번하게 발생합니다.

주요 발생 원인

1. 이미 종료된 세션에 대한 KILL SESSION 시도

가장 흔한 원인으로, DBA가 V$SESSION을 조회하여 SID와 SERIAL# 값을 확인한 후 세션을 종료하려는 사이에 해당 세션이 이미 스스로 종료된 경우입니다. 특히 쿼리 조회 시점과 ALTER SYSTEM KILL SESSION 명령 실행 시점 사이에 시간 차이가 발생하면 세션 정보가 무효화되어 이 에러가 트리거됩니다. 배치 작업이나 짧은 수명의 커넥션 풀 세션에서 특히 자주 발생합니다.