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 38565 게시물 읽기
No. 38565
redolog파일이 깨졌는데, 어떻게 DB 복구 하나요?
작성자
타산지석
작성일
2011-05-23 19:06ⓒ
2011-05-23 19:08ⓜ
조회수
4,611

수고하십니다.

redolog파일이 깨졌습니다. 디스크에서 확인해보니, redo02.log  파일에 배드섹터가 발생했습니다.
redo02.log 를 복사하거나, DB를 open 하거나 등,  redo02.log를 시스템에서 읽어보려고 하면,
/oracle 디렉토리 자체가 I/O오류가 나서 /oracle 밑으로 먹통입니다.     ㅜㅡ;;
 redo02.log를 건들지만 않으면 /oracle 밑에 모든 디렉토리를 정상적으로 사용할 수 있습니다.
( 요거는 redo02.log에 베드섹터가 있는 것으로 추측됩니다.)
DB를 확인해보니 redo02.log가 CURRENT  상태 였습니다.
 

일단, DB를 open시키고 싶은데, 어떻게 해야하나요? 
손상된  redo02.log파일 없이 복구가 가능합니까?

----------------------------------------------------------------------------
db% ./sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.1.0 - Production on Wed May 18 21:28:24 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>
SQL> startup mount
ORACLE instance started.

Total System Global Area 1258291200 bytes
Fixed Size                  1978336 bytes
Variable Size             201330720 bytes
Database Buffers         1040187392 bytes
Redo Buffers               14794752 bytes
Database mounted.
SQL>
SQL> --------- 아카이브 확인 ----> 사용안함
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     2359
Current log sequence           2361
SQL>
SQL>
SQL> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ------------
         1          1       2360   52428800          1 NO  ACTIVE            71614662 15-APR-11
         3          1       2359   52428800          1 NO  INACTIVE          71585057 14-APR-11
         2          1       2361   52428800          1 NO  CURRENT           71639629 15-APR-11

SQL> select * from V$LOGFILE;
    GROUP# STATUS  TYPE      MEMBER  IS_
---------- ------- ------- --------------------------------------------------------------------------------
         3         ONLINE    /oracle/app/oracle/oradata/ORA10g/redo03.log     NO
         2         ONLINE    /oracle/app/oracle/oradata/ORA10g/redo02.log     NO
         1         ONLINE    /oracle/app/oracle/oradata/ORA10g/redo01.log     NO

SQL>
SQL> --------------  log switch 실행 --> 실패
SQL> alter system switch logfile;
alter system switch logfile
*
ERROR at line 1:
ORA-01109: database not open
SQL>
SQL>
SQL> --- 혹시나 될려나 싶어서 해봄  ㅡ,.ㅡ;;;;;;;;;
SQL> -- startup mount 상태에서 파일변경(O/S상에서 active인 redo01.log를 redo02_01.log로 cp )
SQL>alter database rename file '/oracle/app/oracle/oradata/ORA10g/redo02.log' TO '/oracle/app/oracle/oradata/ORA10g/redo02_01.log';
SQL>
SQL>
SQL> -- database open 시도 ---> 실패
SQL>alter database open;
 alter database open
*
ERROR at line 1:
ORA-00341: log 2 of thread 1, wrong log # 1 in header
ORA-00312: online log 2 thread 1:
'/oracle/app/oracle/oradata/ORA10g/redo02_01.log'
SQL>
SQL>
SQL>
SQL> ----- redolog reset ------> 실패
SQL> ALTER DATABASE OPEN RESETLOGS;
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery
SQL>
SQL>
SQL>
SQL> ------- redolog 그룹내 추가
SQL>alter database add logfile member '/oracle/app/oracle/oradata/ORA10g/redo01_02.log' to group 1;
SQL>alter database drop logfile member '/oracle/app/oracle/oradata/ORA10g/redo01_02.log';
SQL>alter database add logfile member '/oracle/app/oracle/oradata/ORA10g/redo02_02.log' to group 2;
*
ERROR at line 1:
ORA-00341: log 2 of thread 1, wrong log # 1 in header
ORA-00312: online log 2 thread 1:
'/oracle/app/oracle/oradata/ORA10g/redo02_01.log'

 

 

 

아~~~ 도와 주세요 ㅡ..ㅡ

 

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

 헐... current가 깨졌네요...

current가 아니면 그냥 drop 하면 될텐데...

 

_offline_rollback_segments , _corrupted_rollback_segments 파라미터 검색엔진에서 검색하셔서

처리하셔야 할것 같습니다.

 

/oracle 아래로 I/O에러라면   /oracle/app/oracle/oradata/ORA10g 아래 dbf파일들 있다면 

좀 골치 아프겠습니다.

 

몇번 처리해 봤는데 문제없이 잘 끝난적도 있고 ORA-600/ORA-7445계속 떨어져서 

export/import 한적도 있습니다.

 

테스트장비라면 부담없이 시도해 보시고 운영장비라면 꼭 백업받아놓으시고(I/O에러때문에가능할지 모르겠지만) 시도해 보세요..

모쪼록 잘 해결되셨으면 합니다.

 

 

,님이 2011-05-25 14:43에 작성한 댓글입니다.
이 댓글은 2011-05-25 14:49에 마지막으로 수정되었습니다. Edit

고~ 맙습니다.
,님 덕분에 일단 데이터베이스는 오픈 했습니다.
아~ 몇칠 동안 진땀뺐는데 감사합니다.

 

 

김종길(innobizard)님이 2011-05-30 20:33에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38568DB LINK를 통한 오라클 upgrade(8.x -> 10.x) [3]
매수신호
2011-05-25
4386
38567oracle SNMP 설정해보신분~.
김백중
2011-05-25
3951
38566.fmb 파일 컴파일 어떻게 하나요?
qa
2011-05-24
3451
38565redolog파일이 깨졌는데, 어떻게 DB 복구 하나요? [2]
타산지석
2011-05-23
4611
38564부탁드립니다. [1]
윤상필
2011-05-23
3744
38563이런것도 쿼리로 되는지요? [4]
김태혁
2011-05-20
3786
38562쿼리질문..한문장으로 해결방법...
한상원
2011-05-19
3410
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다