본문 바로가기

Start

오라클 데이터베이스 테이블스페이스 용량 체크

반응형

갑자기 운영 중이던 사이트가 글 저장이 아무것도 안된다고 한다 ㄷㄷㄷㄷ

 

갑자기?!!

 

어제 퇴근할때까지 이상없었고 갑자기 출근하니깐 안된다고?!!!

 

어제 밤부터 안됐다고?!!

 

개발단에서 뭐 바꾼건 아무것도 없었다.

 

첫번째 의심은 필터에서 걸려서 저장이 안되는 경우

두번째는 에디터에서 태그 변환문제

 

하지만 둘다 정책도 개발단에서 바뀐건 없었다.

 

어제 올렸다던 글을 똑같이 올렸다........... 안올라간다........

이건 뭔가 문제가 있긴 있는거다...

 

데이터를 부분적으로 잘라서 한줄씩 줄여가며 넣어봤다.

 

두줄 정도만 되야 저장이 된다. 

두줄도 필터에 걸릴만한 내용이 아니다.

 

log4j를 DEBUG로 해서 로그를 봐도 모르겠다...양도 많고...

 

여러번 시도 중 Exception을 발견 UnexpectedRollbackException 이였다.

 

Jennifer 제니퍼를 켰다. 언뜻 DB관련 오류도 보여주는게 생각이 났었다.

잘은 모르지만 여러가지 막누르고 검색을 해보았다.

 

그중에 ora-01691 LOB 세그먼트를 8192(테이블스페이스에 있음)에 의해 확장할 수 없음

 

이라는 에러를 발견했다!!

 

바로 에러 구글링하고 확인 방법을 찾았다.

SELECT 
	A.TABLESPACE_NAME "테이블스페이스명"
	,A.FILE_NAME "파일경로"
	,(A.BYTES - B.FREE) "사용공간"
	,B.FREE "여유 공간"
	,A.BYTES "총크기"
	TO_CHAR( (B.FREE / A.BYTES * 100) , '999.99')||'%' "여유공간"
FROM
(
    SELECT FILE_ID
            ,TABLESPACE_NAME
            ,FILE_NAME
            ,SUBSTR(FILE_NAME,1,200) FILE_NM
            ,SUM(BYTES) BYTES
    FROM DBA_DATA_FILES
    GROUP BY FILE_ID,TABLESPACE_NAME,FILE_NAME,SUBSTR(FILE_NAME,1,200)
)A,
(
    SELECT TABLESPACE_NAME
    	   ,FILE_ID
    	   ,SUM(NVL(BYTES,0)) FREE
    FROM DBA_FREE_SPACE
    GROUP BY TABLESPACE_NAME, FILE_ID
)B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME
AND A.FILE_ID = B.FILE_ID;

 

오라클 테이블스페이스의 남은 용량을 확인한 결과 1%도 남아 있지 않았었다.

 

DB 담당 업체는 따로 있어 연락을 취했더니 동일한 이름으로 테이블스페이스를 추가 해주었다.

 

(테이블스페이스명이 같아도 된다는것도 하나 알게됨.)

 

다 찾고 나니 예전에도 비슷한 케이스가 있었는데... 역시 에러자체를 보지않으면... 힘들다.

 

이번기회에 제니퍼 같은 APM솔루션의 필요성을 느꼈다 ㅎㅎ

 

 

반응형