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 34026 게시물 읽기
No. 34026
catalog.sql 과 catproc.sql 을 실행한 후 오류
작성자
쌍코피
작성일
2008-07-03 18:25
조회수
25,716

안녕하세요?
항상 눈팅만 하고 정보만 얻어가는 허접 DB 관리자입니다.
이번에 사내에서 사용하는 DB 에 문제가 생겼습니다.

원인은 디스크 인식장애로 DB를 내린 후에 발생했는데요.
DB는 immediate 로 shutdown 시켰습니다.
노아카이브 상태였구요.

디스크에 문제가 있는것으로 보여(인식이 됐다 안됐다 함)
급한 마음에 일단 다른 디스크를 붙여서 전체를 복사해왔습니다.
그리고 복사해 온 디스크를 새로 설치한 DBMS 에 붙였고요.
원래의 DB는 9.2.0.1 이었고 redhat 7.3 에 돌렸었습니다.
하지만 새로 DB를 다운받으려고 otn 가니 9.2.0.1 은 아무리 봐도 리눅스용이 없고
9.2.0.4가 유일한 선택이었죠.
그래서 새로 깐 DB는 9.2.0.4 가 됐고 os와 경로는 동일합니다.

순서는 9.2.0.4를 설치한 후
복사해온 DBF파일이 들어있는걸 몽창 복사해 와서
startup 을 하니 mount 후 open 까지 에러없이 붙더군요.

그 상태로 약 2주를 사용했습니다.

DB 올라간 시점에서 exp 로 백업을 떠 놓으려고 했는데
exp 시 오류가 발생하여 exp가 되질 않더군요.
여기저기 자료를 찾아본 결과 다음을 수행했습니다.
catexp.sql -> 몇 개가 오류가 나왔습니다.
catalog.sql -> 몇 개가 오류가 나왔습니다.

두번째 catalog.sql 은 왜 돌렸는지 모르겠습니다. 새벽에 정신이 몽롱해서 그랬는지도요...
암튼 catalog.sql 을 돌린후로(sys로 돌렸습니다.) DB가 이상해졌습니다.

startup mount 까지는 잘 되는데 open 을 시도하면 에러가 나오면서 open 이 됩니다.
ORA-00604: error occurred at recursive SQL level 1
ORA-04045: errors during recompilation/revalidation of XDB.DBMS_XDBZ0
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2

그리고 로그인을 포함한 대부분의 시스템영역에 대한 쿼리가 아래와 같이 나옵니다.
예를 들어 select count(*) from dba_objects  where STATUS = 'INVALID'; 를 실행해도
요런 에러가 나고 실행되지 않습니다.
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of SYS.DBA_OBJECTS
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2

기타 사용자 테이블스페이스에 있는 테이블이나 데이터는 조회가 됩니다만
internal 에서밖에 접속이 안되니
사내 사용DB를 전혀 사용하지 못하고 있습니다.

또한 utlrp.sql 을 여러번 돌려도 매번 같은 증상입니다.
너무 길어 일부만 뽑아보면

create or replace public synonym v$system_cursor_cache
*
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of
SYS.CDC_CREATE_CTABLE_BEFORE
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2

 

Grant succeeded.

  select * from v$sess_io
                *
ERROR at line 2:
ORA-04045: errors during recompilation/revalidation of
SYS.CDC_CREATE_CTABLE_BEFORE
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2


create or replace public synonym v$sess_io for v_$sess_io
*
ERROR at line 1:
ORA-04045: errors during recompilation/revalidation of
SYS.CDC_CREATE_CTABLE_BEFORE
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2
ORA-06508: PL/SQL: could not find program unit being called
ORA-06512: at line 2


해당 오브젝트가 없거나 접근을 못하거나 그런건지 잘 모르겠네요.
어떻게 하면 정상으로 만들 수 있을까요?

또는 전체를 못 살린다고 해도 중요한 3개의 사용자 테이블스페이스가 있는데
이것만이라도 살리고 싶어요..새로 DB를 설치해서 옮긴다거나 하는 방법도 괜찮습니다.
dbf 파일은 정상으로 생각됩니다.

지금 뭘 해야할지 막막해서 일단 도움을 요청 드립니다.
감사합니다.

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

시간이 좀 지났는데 해결이 되셨는지 궁금합니다.

만약 해결하지 못하셨다면 다음 방법으로 한번 진행해 보심이...
(검증되지 않은 작업이기에 하시기 전에 반드시 DB shutdown 하시고 full backup 받아두시기 바랍니다.)

$ cd $ORACLE_HOME/rdbms/admin

$ sqlplus "/as sysdba"

SQL> startup migrate   -->> open이 되지 않는데 이 명령이 먹힐지는 사실 의문입니다.
SQL> spo catpatch.log
SQL> @catpatch.sql
SQL> spo off

SQL> shutdown immediate

SQL> startup
SQL> @utlrp.sql


catalog.sql는 catpatch.sql이 실행될 때 호출됩니다. 아마도 9204에서만 사용되는 object들이 없어서 에러가 발생한듯 합니다.
catpatch.sql을 실행하면 버전에 맞는 object들이 생성될 테니 문제해결이 될 수 있을거 같네요.

그럼 수고하세요...


ps. 메타링크 접속 가능하시면 261075.1 도 한번 확인해 보세요... 약간 상황이 비슷한거 같습니다.

,님이 2008-07-04 14:09에 작성한 댓글입니다.
이 댓글은 2008-07-04 14:25에 마지막으로 수정되었습니다. Edit

올아클님께서도 동일한 내용을 전화로 알려주셨네요.

그래서 지금 catpatch.sql 을 돌리고 있는데

30분이 넘어가네요.

그런데 중간중간 에러가 나는것이 간간이 나옵니다...

다 끝나봐야 알겠지요.

답변 감사합니다.

쌍코피님이 2008-07-04 16:11에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
34029쿼리문좀 부탁 드립니다. [3]
김종태
2008-07-04
1535
34028PROC/C에서 CONTEXT 사용시 문의입니다.
오라초보
2008-07-04
1353
34027대용량에서는 외래키 안쓴다... [10]
김흥수
2008-07-03
6790
34026catalog.sql 과 catproc.sql 을 실행한 후 오류 [2]
쌍코피
2008-07-03
25716
34023startup restrict 상태에서 export 시 권한 오류 [1]
crop
2008-07-03
4354
34022동시에 여러값 입력시 최대값만 입력방법 문의드립니다. [1]
왕궁금
2008-07-03
1769
340211500만건에서 1만건 카운트 해오는데 10초이상이 걸립니다. [2]
초보
2008-07-03
2164
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다