ORA-01115 IO error reading block from file 오류 1

by 디비디비딥 [Oracle Admin] ORA-01115 [2022.11.02 12:27:58]


안녕하세요!

특정 쿼리 돌리다가 아래 오류가 났는데요

ORA-01115 IO error reading block from file 

[ERROR] datafile 80 'TEST_34.DBS' 

몇 가지 구글링 해보니, 테이블 찾아 복구하란 내용이 있어서 하려다가 궁금한점이 있어 문의드립니다

저 80번 데이터 파일 말고 35.DBS도 새로 만들어서 온라인 상태인데 왜 갑자기 full이 찬 80 파일을 액세스 하려 하는지가 이해가 안되서요

설명 가능하실까요?

관련 직무를 수행 경험은 없으나 사정상 급히 확인을 해야 하는 상황이라 질문이 너무 초보적이고 두서 없어도 양해를 부탁드릴께요 ㅠㅠ 

 

by 포동푸우 [2022.11.02 19:19:26]

ORA-01115 은 특정 Table, Index 등을 읽고 쓰려고 할 때, 해당 정보가 저장된 물리 영역 ( ???.DBS 파일 ) 의 해당 Block 를 정상적으로 Access 못 한다는 의미 입니다. 
- OS 상에서 권한이 없거나, 해당 Block 이 논리적으로 오류 상태 이거나 (이 경우 복구 가능), 해당 Block 이 물리적으로 손상된 경우 등 이 있습니다. 

해당 DBF/DBS 파일의 사용율 ( Usage Full ? 인지 여부) 과는 상관 없이, 찾아야 하는 Table 등이 저장된 File 명으로 오류가 발생됩니다. 목록에 있는 File 명을 찾음 

지속적으로 발생되면 DB 기술지원 업체를 통해서 해결하시는 것이 좋겠습니다. 


by 디비디비딥 [2022.11.03 16:01:15]

@포동푸우님 답변 감사드립니다!
상세 메시지 공유를 드려보면, 아래와 같은데요.

ORA-01115: IO error reading block from file  (block # )
ORA-01110: data file 80: 'TEST/TEST_34.DBS'
ORA-27072: File I/O error
Linux-x86_64 Error: 5: Input/output error
Additional information: 5
Additional information: 24532
Additional information: 32929662723

 

위 오류 메시지가 가리키는 File ID와 block ID를 단서로 아래 쿼리를 사용해서 어떤 테이블이 문제인지는 찾은것 같습니다. 

SELECT segment_name , segment_type , owner , tablespace_name
FROM sys.dba_extents
WHERE file_id = 91 --&bad_file_id
AND &bad_block_id BETWEEN block_id and block_id + blocks -1;

말씀하신대로, 논리적인 오류인지 물리적인 손상인지 찾을 수 있는 방법이 있을지요?


by 포동푸우 [2022.11.03 20:58:01]

논리 Corruption 복구는, 보통 RMAN Backup 본을 이용해서 RMAN VALIDATE, RMAN repair failure 를 하게 됩니다. 
- 개념 이해 : http://www.dba-oracle.com/t_rman_repair_corrupt_blocks.htm 
물리 오류는 VALIDATE 과정에서 확인 됩니다. 백업본을 이용해서 최근 시점으로 엔지니어들이 수동복구 하는 경우가 많습니다. 

백업본이 없는 경우 사용할 수 있는 Repair 을 위한 Tool 들이 있다는데, 저는 사용해 보지 않아서 잘 모르겠습니다. 

 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입