ORA-00604 ORA-01653 ORA-02002 해결방법

2017. 12. 12. 13:21etc/error

 

ORA-00604 ORA-01653 ORA-02002 해결방법

 

잘 되던 DB가 어느날 갑자기 다음과 같은 오류를 내면서 접속이 안될 경우가 있다.

 

로컬에서 sqlplus로 접속해도 안되고 토드나 다른 접속 툴도 마찬가지로 접근이 안된다.

 

오류 메시지는 다음과 같다.

 

 

오류 메시지

 

ORA-00604 : error occurred at recursive SQL level 1

ORA-01653 : unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM

ORA-02002 : error while writing to audit trail

ORA-00604 : error occurred at recursive SQL level 1

ORA-01653 : unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM

 

 

 

메시지를 보니 SYS.AUD$ 테이블을 tablespace에서 확장할 수 없다는 메시지 이다.

 

더 자세한 원인을 파악하기 위해서 구글링해 보았다.

 



 

원인은 다음과 같다.

SYS.AUD$ 테이블의 테이블 스페이스가 가득 차서 확장하려 했더니 확장이 안되어 발생하는 오류

tip : SYS.AUD$ 테이블은 SYSTEM TableSpace에 생성되는 Audit Trail이 쌓이는 테이블이다.

 

 

tablespace 를 확장하거나 SYS.AUD$ 테이블을 비워주어야 한다.

 

아래 방법은 SYS.AUD$ 테이블을 비워줌으로써 정상적으로 DB에 접근할 수 있도록 하는 해결방법이다.

 



 

해결방법 (리눅스 기준으로 설명)

이럴 경우 토드나 다른 접속 툴로 접근이 불가능하여 서버에 접속하여 해결해야 한다.

 

DB서버에 접속(putty 등을 사용, root 접속)해서 아래 명령어 실행

 

su - oracle

sqlplus /nolog

connect /as sysdba

truncate table SYS.AUD$;

 

 

 

요약 : DB 서버에서 oracle user로 sqlplus sys계정으로 로그인, SYS.AUD$ 테이블을 truncate 함