수고하십니다.
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'
아~~~ 도와 주세요 ㅡ..ㅡ
|