본문 바로가기

IT관련

오라클 에러 정보 (ORA-48181) - 로그파일 기록에 실패하는 경우 발생하는

Alertlog 파일에 로그정보를 기록(Write)하던 중 Fail 이 난 경우 발생합니다.

Alertlog 파일이 위치한 로컬 디스크 공간이 부족한 경우이거나, Alertlog 에 과도하게 Writing 이 발생하는 경우 이런 에러가 날 수 있습니다.

 

Alertlog 파일이 위치한 디렉토리에 가서 다음과같이 Free 공간을 체크해봅니다.


$ df -h .

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc1       118G   50G   63G  45% /u01

 

현재 디렉토리가 포함된 파일시스템의 free 공간을 GB 단위로 확인할 수 있습니다. Avail 공간이 없다면 공간부족이 원인입니다.

 

TroubleShooting 을 위해 일시적으로 SQL*Net Trace 기능을 On 해둔 경우에도 발생할 수 있기 때문에, TroubleShooting 이 끝난 후에는 반드시 Off 해줘야 합니다. 

이건 sqlnet.ora 파일에 TRACE_LEVEL_SERVER=ADMIN 이라고 되어 있는 항목이 있는지 체크하면 됩니다.

있다면, TRACE_LEVEL_SERVER=OFF 로 바꿔주고, 리스너를 재기동합니다.

 


그밖에도 12c 부터는 리스너관련 에러 로그를 디폴트로 Alertlog 파일에 기록하도록 하는 기능이 세팅되어 있습니다.

이로인해 이전버전에서는 볼 수 없었던 아래와 같은 에러가 Alertlog 에 마구 생기는 것을 경험하게 됩니다.

 

 

위와 같은 모양으로 쌓이고 TNS-12545 대신에 TNS-12535 에러가 찍히는 경우도 있습니다.

 

이 로그를 이전버전처럼 listener.log 파일에 쌓이도록 수정할 수 있습니다.

 


      1. Sqlnet.ora 파일
         > DIAG_ADR_ENABLED = OFF (sqlnet.ora 파일이 경로에 없을 시 생성해서 저장해주시면 됨)
      2. Listener.ora 파일
         > DIAG_ADR_ENABLED_[리스너명] = OFF
      3. 리스너 재기동 또는 (lsnrctl reload 리스너명)으로 리스너 환경 리로드