기본 콘텐츠로 건너뛰기

[ORACLE] ORA - 01033, 01110, 01113, 01589 오류 대처법...

SQL Developer를 사용하는 중에 장애가 발생해서 작업관리자에서 실행중인 프로그램을 죽여야 했다. 그 결과 Oracle에 접속을 하지 못하는 문제가 발생하였고, 아래와 같이 증상을 확인하면서 다시 복구를 해야 했다. ㅠㅠ

[ ORA-01033 ]

강제로 죽였기 때문에 Log 파일 또는 DB 파일 (*.DBF) 가 삭제되는 경우에 발생할 수 있다. 물론 파일은 있지만 REDOXXX.LOG 파일이 갱신되지 않아서 문제가 되는 경우가 더 많다.

> 해결 방법

SQL> sqlplus system/비밀번호 as sysdba;
SQL> shutdown
SQL> startup

상기와 같이 다시 구동했을 때 아래와 같은 문제점이 또 보일 수 있다. (거의 대부분)

ORA - 01113 : file 3 needs media recovery
ORA - 01110 : data file X: 'xxxxx.dbf'

위의 오류는 파일 3번에 복구가 필요하며, 해당 파일은 xxxx.dbf 라는 것이다.

[ ORA-01113 ]

복구 과정을 통해서 복구가 되면 해결이 된다.

> 해결 방법

SQL> recover database until cancel;
또는
SQL> recover database until time '2013/11/08: 12:00:00'

일반적으로 상기 과정을 통해서 오류가 해결이 되겠지만, 실제로 파일이 삭제되고 없는 경우는
ORA-01157 오류가 발생하게 된다. (탐색기 등에서 파일을 삭제한 경우)

이런 경우는 파일은 없는데, 파일에 대한 정보가 남아있는 것이기 때문에
SQL> alter database datafile '/oracle/oradata/xxx.TBL' offline drop;
SQL> alter database open;
SQL> drop tablespace [tablespace name] including contents;

를 통해서 관련된 정보들을 제거하고 진행하면 된다. 혹시라도 접속이 안되면
SQL> alter database open resetlogs; 를 이용하도록 한다.

그러나 만약 DataFile 가 삭제되지 않은 상태에서는 위의 처리가 제대로 수행되지 않는다.
따라서 아래와 같이 처리를 해 주어야 한다.

SQL> alter database datafile 'xxx.dbf' end backup;

위와 같은 작업을 진행했으면 데이터베이스를 열어서 확인하면 된다.
SQL> alter database open;

로그 동기화가 제대로 맞지 않은 경우는 ORA-01589 오류가 발생하게 된다.

[ ORA-01589 ]

이 오류는 불완전한 복구 상태로 인해서 data file이 다른 파일들과 로그 동기화가 맞지 않기 때문이다.
따라서 로그 정보를 재 설정하면 된다.

> 해결 방법

SQL> alter database open resetlogs;

기타 다른 상황들에 의해서 오류가 더 발생할 수 있으므로 많은 자료들을 찾아가면서 처리를 해야 한다.

댓글