ORACLE 흔 한 오류 코드 분석 및 해결 2

3916 단어 ORRAACCLLE항상
보고 있 는 ORACLE 튜 토리 얼 은 ORACLE 에서 흔히 볼 수 있 는 오류 코드 에 대한 분석 과 해결 2 입 니 다.  -------------------------------------------------------------------------------- p align="JUSTIFY">ORA-01578:Oracle data block corrupted(file # num,block # num)발생 원인:ORACLE 가 데이터 블록 에 접근 할 때 1.하드웨어 의 I/O 오류 로 인해 발생 합 니 다.2.운영 체제 의 I/O 오류 나 버퍼 문제;3.메모리 또는 paging 문제;4.ORACLE 가 포맷 되 지 않 은 시스템 블록 에 접근 하려 고 시도 하 는 데 실 패 했 습 니 다.5.데이터 파일 부분 이 넘 치 는 등 상기 몇 가지 상황 중 하 나 는 논리 적 인 나 쁜 블록 이나 물리 적 인 나 쁜 블록 을 일 으 켰 는데 이때 ORA-01578 의 오 류 를 보고 할 것 이다.해결 방법:ORACLE 는 문제 가 있 는 데이터 파일 에 접근 할 때 만 오 류 를 보고 하기 때문에 오 류 를 보고 하 는 시간 이 실제 오류 보다 늦 을 수 있 습 니 다.만약 에 ORA-01578 오류 정보 알림 데이터 나 쁜 블록 이 사용자 자신의 데이터 파일 을 가리 키 면 아래 방법 으로 해결 합 니 다.만약 에 아래 SQL 문 구 를 통 해 찾 아 낸 나 쁜 블록 에 색인 이 있 으 면색인 을 다시 만 들 면 됩 니 다.  SQL$#@62;Select owner,segment_name,segment_type from dba_extents where file_id=$#@60;F$#@62; and $#@60;B$#@62; between block_id and block_id+blocks-1;($#@60;F$#@62;$\#@60;B$#@62;각각 ORA-01578 에서 보 고 된 나 쁜 블록 에 나타 난 파일 번호 와 블록 번호)나 쁜 블록 이 표 에 나타 나 면 다음 과 같은 문구 로 영구적 인 나 쁜 블록 인지 분석 합 니 다(한두 번 더 실행 하 는 것 을 권장 합 니 다.데이터 나 쁜 블록 이 영구적 인(하 드 디스크 의 물리 적 나 쁜 블록)인지 무 작위 적 인(메모리 나 하드웨어 오류 로 인 한)인지 감별 하 는 데 도움 이 됩 니 다.  SQL$#@62;Analyze table $#@60;table_name$#@62; validate structure cascade; 이 명령 을 실행 하면 다음 과 같은 결과 가 나 올 수 있 습 니 다.ORA-01578:원래 오류 정보 와 같은 매개 변 수 를 가지 고 영구적 인 물리 적 또는 논리 적 나 쁜 블록 입 니 다.원래 오류 정보 와 다른 인자 가 있 습 니 다.메모리,page 와 같 을 수 있 습 니 다. space 는 I/O 장치 와 관계 가 있다.사용자 가 이 표 의 최신 백업 이 있다 면 이 백업 으로 이 표를 복원 하거나 이벤트 를 사용 하 는 것 이 좋 습 니 다. 10231 나 쁜 블록 이외 의 데 이 터 를 꺼 냅 니 다:$\#60;1$#@62;.먼저 데이터 베 이 스 를 닫 습 니 다$\#60;2$#@62;.init$\#@60 편집 하기;sid$#@62;.ora 파일,가입:이벤트="10231 trace name context forever,level 10” $#@60;3$#@62;.startup restrict $#@60;4$#@62;.임시 테이블 만 들 기:SQL$\#62;create table errortemp as select * from error;(error 는 나 쁜 시계 이름)$\#60 #@62;.이 벤트 를 init$\#60;sid$#@62;.ora 파일 에서 데이터 베 이 스 를 삭제 하고 다시 시작 합 니 다$\#60;6$#@62;.rename 나 쁜 시계,임시 시 계 를 나 쁜 시계 로 바 꾸 는 시계 이름$\#60;7$#@62;.표 에 있 는 INDEX 등 을 만 들 때 ORA-01578 오류 정보 알림 데이터 나 쁜 블록 이 데이터 사전 이나 스크롤 백 을 가리 키 는 것 이 라면 즉시 ORACLE 회사 와 연락 하여 좋 은 해결 방법 을 상의 해 야 합 니 다.여기 서 말 하 는 해결 방법 은 비교적 흔히 볼 수 있 는 것 일 뿐이다.좀 더 구체 적 인 해결 방법 은 ORACLE 의 고장 해결 매 뉴 얼 을 살 펴 볼 수 있다.그 안에 나 쁜 블록 이외 의 데 이 터 를 추출 하 는 방법 이 있 는데 여기 서 소개 하지 않 는 다.해당 영 어 는 다음 과 같다.Cause:The given data block was corrupted,probably due to program errors Action:Try to restore the segment containing the given data block,This may involve dropping the segment and recreating it,If there is a trace file,report the messages recorded in it to customer support. ORA-01628:max # of extents num reached for rollback segment num 발생 원인:이러한 오 류 는 보통 스크롤 백 세그먼트 와 표 공간 이 MAXEXTENTS 매개 변수 설정 의 한계 에 이 르 렀 습 니 다.주의해 야 할 것 은 이 MAXEXTENTS 는 스크롤 백 이나 테이블 공간의 하드웨어 한계 가 아 닙 니 다.하드웨어 한 계 는 데이터베이스 생 성 시 init.ora 파일 에서 지정 한 DB 에 달 려 있 습 니 다.BLOCK_SIZE 매개 변수의 값 입 니 다.해결 방법:SQL 명령 ALTER 사용 하기 TABLESPACE…STORAGE(MAXEXTENTS XXXX)를 추가 합 니 다 MAXEXTENTS,그 중에서"XXXX"값 은 오류 정보 에서 가리 키 는 수치 보다 커 야 하지만 LARGEST 보다 크 면 안 됩 니 다. MAXEXTENT 의 값 이 LARGEST 에 도달 했다 면 MAXEXTENT VALUE,해결 방법 은 비교적 큰 범위 의 사 이 즈 를 다시 만 드 는 것 입 니 다.옵션 이 있 는 COMPRESS=Y 의 Export 도구 내 보 내기 표를 사용 합 니 다.표 공간 에 사용 가능 한 공간 이 있 으 면 먼저 표 에 백업 을 하고 alter 를 사용 합 니 다. tablespace tablespace_이름 을 바 꾸 고 데이터 베 이 스 를 불 러 옵 니 다.오류 가 발생 한 곳 을 살 펴 보고 스크롤 백 이나 색인 에 나타 나 면 삭제 하고 재 구축 해 야 합 니 다.임시 표 공간 에 나타 나 면 임시 표 공간의 저장 필드 를 수정 하면 이 문 제 를 해결 할 수 있 습 니 다.오류 예 는 다음 과 같다.ORA-1628:max # extents 50 reached for rollback segment RBS_1 해당 영 어 는 다음 과 같다.Cause: An attempt was made to extend a rollback segment that already has reached its maximum size or space could not be allocated in the data dictionary to contain the definition of the object. Action:If possible,increase the value of either the MAXEXTENTS or PCTINCREASE initialization parameters or find the data dictionary table lacking space and alter the storage parameters,as described in the Oracle8 Server Administrator's Guide.

좋은 웹페이지 즐겨찾기