Backup/Noarchive Log Mode

BackUp 받지 않는 Tablespace 손상되었을 경우 ⓐ

잇꼬 2024. 1. 9. 17:51
728x90
반응형
SMALL

1. tablespace datafile 확인

select tablespace_name, file_name from dba_data_files;


2. tablespace 생성

create tablespace insa_tbs datafile '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf' size 10m;

 

3. 생성된 'insa_tbs01.dbf' 확인

select tablespace_name, file_name from dba_data_files;

 

4. current, sequence 번호 확인

select * from v$log;

 

5. data file위치, checkpoint 확인

- 새로 생성된 tablespace는 checkpoint scn 번호 다름

select name, checkpoint_change# from v$datafile;


6. 백업본 없는 tablespace 지우기 

# 장애발생(파일 손상) #
SQL> !
[oracle1@oracle noarch]$ cd
[oracle1@oracle ~]$ rm /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf  
[oracle1@oracle ~]$ exit


7. 정상적인 종료 실행 

- 오류발생 : 불안정한 종료로 확인

shutdown immediate


8. 불안전한 종료 후 나오기
=> 의미없는 종료

 shutdown abort

=> 종료가 되지 않아 한번 실행 후 OS 나오기

shutdown abort
exit

 

 

9. oracle 다시 접속 후 DB 올리기

[oracle1@oracle noarch]$ sqlplus / as sysdba

startup

- 오류 발생 : insa_tbs01.dbf 파일 손상으로 인해  mount 단계까지만 올리기.

 

#) datafile 확인

select name, status from v$datafile;

 


10. offline 변경 

=> /u01/app/oracle/oradata/ora11g/insa_tbs01.dbf  ONLINE 상태 → OFFLINE 상태로 변경 

alter database datafile '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf' offline;

- archive log mode 일 경우에는 'offline' 으로 가능하나,  noarchive log mode 일 경우에는 'offline drop' 으로 작성


# noarchive log mode 에서는 데이터파일을 'offline drop' 해야 한다.

alter database datafile '/u01/app/oracle/oradata/ora11g/insa_tbs01.dbf' offline drop;


#) insa_tbs01.dbf 상태 확인

select name, status from v$datafile;

-  RECOVER : OFFLINE 상태 이다.

 

11. DB open 하기

alter database open;

 

#) DB open이 되었는지 확인

- 다른 user의 table 을 확인해서 DB가 제대로 올라와있는지 확인해본다

select count(*) from hr.employees;


12. v$datafile 확인 후 insa_tbs 확인 : recover (복구 불가, redo file 없음)

select name, status from v$datafile;


13. insa_tbs 삭제

drop tablespace insa_tbs;


14. v$datafile 확인 후 insa_tbs 삭제확인

select name, status from v$datafile;

15. 복구 완료

728x90
반응형
LIST