오라클 invalid Object 이슈

데이터베이스에서 사용되고 있는 테이블에 대하여 컬럼을 추가 또는 수정 될 때가 있다.
이게 기존 회사에서는 큰 작업 사항으로 여겨지지 않았는데 이번에 바뀐 환경에서는 해당 작업을 굉장히 신중하게 진행 하기에 해당 부분을 찾아보았다.

invalid Object?
Object에는 프로시저, 함수, 트리거 등등이 포함된다. 테이블 컬럼의 변경으로 해당 작업들의 컴파일이 해제된 상태가 되고 진행되지 못한다. 작업 자체가 이루어 지지 않는 상황이라는 것을 알았다.

구글링해서 얻은 정보로는 일반적인 상황에서 쿼리를 통해 invalid 상태인 오브젝트 들을 검색하고 해당 작업을 재 컴파일 해주면 된다고 한다. 
현재 우리 회사에서 사용하고 있는 SQL gate 기준으로는 도구>개체 재컴파일 에서 유효하지 않은(invalid) 상태인 개체를 검색하고 해당 작업이 무엇인지 살펴봐야 한다.

왜 오라클만? 
구글에 "오라클 invalid object" 이라고 검색하면 관련된 결과가 여러가지 나오지만, "mysql invalid object" 이라고 검색하면 관련해서 나오지 않는다. 여기에 대해서는 조금 더 찾아봐야 할듯 ...

왜 이전 회사에서는 큰 이슈가 아니었을까?
오라클 요금제의 차이라고 하는데 오라클 공식에서도 관련해서 상세히 설명된 부분이 없다.
일단 현재 시스템 내에서는 아래 일련의 과정을 거쳐서 테이블 컬럼을 추가한다.
  • 개발 DB 에서 바꾸고자 하는 테이블의 컬럼을 추가한다. 
  • 도구 > 개체 재컴파일에서 유효하지 않은 상태 개체 검색
  • 해당 개체들이 운영 상 치명적인(회원, 주문, 결제 관련) 로직 이거나 재컴파일 시 시간이 과하게 오래 걸리는 부분이면 컴파일 이전 시간 진행 
  • 유효하지 않은 개체가 검출되지 않거나 해당 개체들이 치명적이지 않은 경우 서비스 운영 시간에 반영 가능 
이런 식으로 진행한다. 

댓글

이 블로그의 인기 게시물

git-receive-pack not permitted on 깃 허브 로그인 관련 문제