ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace 에러가 오늘 아침에 발생 했습니다.
기숙사에서 자고있는와중에 시스템들이 동작하지 않는다고 연락이 와서 저번처럼 업체 네트워크 문제인지 확인해달라고 하여 부랴부랴 노트북이 있는 회사로 가려하던중 같은 연락을 받으신 대리님이 " 내가 들어보니 SYS.AUD 테이블스페이스 용량 꽉 찬거 같으니까 오라클 재시작하고 truncate 쓰고와 " 라고 말씀하셨고 내려가서 확인해보니 위와 같은 사진과 함께 오라클 연결이 되지 않았습니다.
그래서 대리님이 말하신대로 truncate를 하려하던 도중 또다른 에러를 만났습니다.
ORA-00054: 리소스가 사용 중이어서 NOWAIT가 지정되었거나 시간 초과가 만료된 상태로 획득합니다.
대략 난감 했었습니다. 빠르게 구글링 해본 결과
"사용중인 테이블에LOCK이 걸린 상태에서 발생하는 오류"
"Commit" 으로 해결
누군가 작업을 하고 commit 를 안친건지 의아해 하던 도중 대리님이 " 너 오라클 서비스 안껏다켰지? " 라고 말씀하셨습니다.
네 맞습니다 저는 오라클 서비스를 재시작 하지 않고 명령어를 치고있던 중이였습니다.
사실 이 문제는 commit 한번 과 truncate table SYS.AUD$; 로 해결할수 있는 문제 였을지도 모르겠습니다.
하지만 무슨 작업을 누가 어떻게 한지 확인을 못한 상황이여서 commit 보단 오라클 서비스 재시작을 선택 한거 같습니다.
만약 commit 을 입력 했더라도 그대로 안되는거라면 다음과 같은 방법을 이용 합니다.
SELECT
S.SID,
S.SERIAL#
FROM
(
SELECT SID
FROM V$LOCK
WHERE ID1 IN (SELECT OBJECT_ID FROM DBA_OBJECTS WHERE OBJECT_NAME = 'IP_NMCBOARD_T')
) X
JOIN V$SESSION S ON X.SID = S.SID;
SID SERIAL#
--- -------
5 1
6 1
2. 다음 명령으로 SESSION들을 KILL한다.
SQL> ALTER SYSTEM KILL SESSION '5, 1';
SQL> ALTER SYSTEM KILL SESSION '6, 1';