★ 현재 DB를 No archive log mode 로 변경해야 한다.
SQL> startup mount
...생략..
SQL> archive log list
SQL> alter database noarchivelog;
SQL> archive log list;
★ 현재 no archive mode 임으로 열린백업은 받을수 없으므로 shutdown 시킨후
다시 전체백업 받음
SQL> startup
SQL> @dd
TABLESPACE MB FILE_NAME
---------- ---------- --------------------------------------------------
UNDO 10 /home/oracle/oradata/testdb/undo01.dbf
TEST 10 /home/oracle/oradata/testdb/test01.dbf
EXAMPLE 100 /home/oracle/oradata/testdb/example01.dbf
USERS 5 /home/oracle/oradata/testdb/users01.dbf
SYSAUX 250 /home/oracle/oradata/testdb/sysaux01.dbf
SYSTEM 450 /home/oracle/oradata/testdb/system01.dbf
SQL> !rm -rf /home/oracle/oradata/testdb/test01.dbf
SQL> shutdown abort;
SQL> !cp /data/backup/close/test01.dbf /home/oracle/oradata/testdb/
SQL> recover database;
Media recovery complete.
SQL> alter database open;
Database altered.
SQL> @dd
TABLESPACE MB FILE_NAME
---------- ---------- --------------------------------------------------
UNDO 10 /home/oracle/oradata/testdb/undo01.dbf
TEST 10 /home/oracle/oradata/testdb/test01.dbf
EXAMPLE 100 /home/oracle/oradata/testdb/example01.dbf
USERS 5 /home/oracle/oradata/testdb/users01.dbf
SYSAUX 250 /home/oracle/oradata/testdb/sysaux01.dbf
SYSTEM 450 /home/oracle/oradata/testdb/system01.dbf
6 rows selected.
★ 중요한점
no archive mode인데도 불구하고 recover 가 되었다.. 왜그럴까?
이유는 복구하려는 데이터가 온라인 Redo log에 있기 때문에 복구가 된것입니다.
만약에 강제로 test01 파일이 삭제가 되고 Redo log를 강제로 log switch를 일으킨다면
이야기는 달라진다
DB가 open 되기 위해서는 모든 Data file, control file, redo log file의 checkpoint SCN 정보가 같아야 하는데 Data file 중에서 /home/oracle/oradata/testdb/test01.dbf 파일 하나의 scn 정보가 다르기 때문에 open 되지 않습니다.
★ 해결하는 방법은 2가지
일단 /home/oracle/oradata/testdb/test01.dbf 파일을 복구하기 위해서는 Archive log파일이 있어야 하지만 없기 때문에 저 파일은 복구가 되지 않는다. 나머지 파일들만이라도 살려야 하는데 그 방법은 모든 파일의 SCN을 같게 만드는 것이다.
=> 모든 파일들을 (data file, control file, redo log file)을 test04.dbf가 삭제 되기전인 백업 파일들을 복원하여 복구하면 되는 것이다 하지만 test01.dbf가 삭제된 이후로의 변경된 모든 데이터도 손실 되기 때문데 결국 복구 되는 것은 아니다
=> 다른 방법은 문제가 되는 test01.dbf 만 포기하는 방법이다
이럴 경우 test01.dbf 에 있던 데이터는 모두 손실되지만 나머지 데이터들은 살릴 수 있다
12. 두번째 방법으로 test01.dbf 파일만 offline drop 옵션으로 포기하고 나머지 파일을 살리는 방법이다
=> test01.dbf만 사용하지 않도록 하였기 때문에 DB가 open 된다
SQL>alter tablespace test '/home/oracle/oradata/testdb/test01.dbf' offline drop;
'Oracle DataBase > 백업복구 실습' 카테고리의 다른 글
Offline 안되는 Tablespace 장애 복구하기 (0) | 2012.06.08 |
---|---|
Offline 되는 일반 Tablespace 장애 복구하기 (0) | 2012.06.08 |
종합 복구 문제 2 - 백업 파일이 hot backup 일 경우 (0) | 2012.06.08 |
종합 복구 문제 1 - 백업 파일이 close backup 일 경우 (0) | 2012.06.08 |
Control file 관련 장애 (2) (0) | 2012.06.08 |