database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 28841 게시물 읽기
No. 28841
invalid object 란 어떤 것을 말하는 건가요?
작성자
최영선(finerain73)
작성일
2006-11-24 10:52
조회수
15,037

안녕하세요.

오라클 초보라 모르는 것이 많습니다. 

다름이 아니라 저희 회사 오라클 db 정기점검 script를 보면은 invalid object를 체크하던데요.

1. invalid object란 어떤 상태의 object를 뜻하는 것인지...

2. 그리고 대표적으로 어떤 이유로 발생하는 지

3. 정기점검시에 체크하면 어떤 좋은 점이 있는지 알고 싶습니다.

간단하게라도 꼭 답변 주시면 감사하겠습니다.

아직 초보라 개념이 부족해서요. ^^

이 글에 대한 댓글이 총 4건 있습니다.

1. invalid object란 어떤 상태의 object를 뜻하는 것인지...

   =>  procedure/ function /trigger 등은 스크립트 언어지만 작성후에

  컴파일하게되어 있습니다. invalid 란 컴파일 상태가 해제된(?) 거라고 생각하시면 됩니다. 즉 실행이 안되는 스크립트지요.


2. 그리고 대표적으로 어떤 이유로 발생하는 지

=> object( table, sequence, view 등등 ) 이 alter , drop 되었을 경우

해당 object 를 사용하는 script 는 invalid 상태가 됩니다.


3. 정기점검시에 체크하면 어떤 좋은 점이 있는지 알고 싶습니다.

=> invalid 되면 실행이 안되니.. 정기적으로 체크하는게 좋겠죠?

다만 invalid 가 있는지 없는지 체크하는것도 좋지만

 $ORACLE_HOME/rdbms/admin/utlirp.sql 를 실행해서 

모든 script 를  일괄 compile 하는것도 좋은 방법이겠네요

왕만두님이 2006-11-24 12:06에 작성한 댓글입니다. Edit

왕만두님이 설명 잘해 주셨네요.
오타가 하나 있어서리...
$ORACLE_HOME/rdbms/admin/utlirp.sql -> $ORACLE_HOME/rdbms/admin/utlrp.sql
 
실행방법은 
os 상에서
cd $ORACLE_HOME/rdbms/admin
sqlplus "/as sysdba"
SQL> @utlrp
하시면 Invalid Object 를 일괄 Recompile 하실 수 있습니다.

천재재남(jnyang)님이 2006-11-24 13:23에 작성한 댓글입니다.
컬럼추가등 alter 구문을 사용하여 테이블을 변경하게되면...

LAST DDL TIME이 변하게 됩니다. 그러면 뭔가 의존관계가 깨어진 것이므로...

그 테이블에 부속된  패키지나 프로시져, 트리거들이 invalid 상태로 빠집니다. 그러나 대개는 실행시 자동으로 컴파일이 됩니다.(오류가 없는 이상, 오류가 있다면 컴파일이 안되고 에러가 나겠죠.)

그러나 프로시져등에서 DB Link등을 사용한다면 자동 컴파일이 되지 않더군요. (수동으로 다시 컴파일하여 valid 상태로 만들어주여야함.)

보통 업무적으로 아주 중요한 테이블 이를 테면 주문 같은 테이블은 엄청나게 트랜잭션도 많고 의존된 프로시져등이 많으므로 잘못 변경 작업을 하게 되면 바로 의존관계에 있는 객체들이 invalid 로 빠지게 되면서 장애의 원인을 제공하기도 합니다.  다시 컴파일이 되려면 내부적으로 lock 등으로 처리가 되므로 (수행과 컴파일은 동시에 진행되지 못함)  잘못하면 internal dead lock 상황에 빠집니다.

따라서 High Transaction 테이블의 경우 주의가 요망되고 작업시 테이블의 업무성격이나 트랜잭션 빈도, 작업을 해도 안전한 시간대 등을 검토하여야 합니다.  업무 중에는 이러한 변경작업을 하지 않는게 원칙이구요.
김주현님이 2006-11-24 17:34에 작성한 댓글입니다. Edit

답변들 정말 감사합니다.
많은 공부가 되었구요.
다음에도 또 많은 도움 부탁드립니다.

최영선(finerain73)님이 2006-11-27 09:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
28845시스템 유저 삭제
첫출발
2006-11-24
1306
28843게시판 만들기위한 디비설계 기초적인 질문
뱀무
2006-11-24
1473
28842리스너 설정이 다음과 같아도 되나요?
kevin
2006-11-24
1438
28841invalid object 란 어떤 것을 말하는 건가요? [4]
최영선
2006-11-24
15037
28840오라클에서 초 를 날짜로. [1]
이승훈
2006-11-24
2434
28839select for update 문에 NOLOGGING 적용방법 [1]
나그네
2006-11-24
6928
28838날짜형식 변환 [1]
손님
2006-11-24
3286
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2025 DSN, All rights reserved.
작업시간: 0.010초, 이곳 서비스는
	PostgreSQL v17.2로 자료를 관리합니다