#) data file 상태 확인
select name, status from v$datafile;
# DB 정상적인 종료
SQL> shutdown immediate
# 장애 유발 #
SQL> ! rm /u01/app/oracle/oradata/ora11g/users01.dbf
SQL> ! rm /u01/app/oracle/oradata/ora11g/example01.dbf
SQL> ! ls /u01/app/oracle/oradata/ora11g/
SQL> ! ls /u01/app/oracle/oradata/ora11g/
# DB 올리기
SQL> startup
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/u01/app/oracle/oradata/ora11g/users01.dbf'
# recover file 확인
select * from v$recover_file;
# 복구 방법 #
1 offline 변경
SQL> alter database datafile 4 offline;
SQL> alter database datafile 5 offline;
2. offline 모드인지 확인해보기
select * from v$recover_file;
select name, status from v$datafile;
3. DB 올리기
=> 완전 복구 될거라는 생각하고 DB open !
SQL> alter database open;
4. file을 restore 하기
- 가장 최근에 백업 파일을 문제되는 파일 위치에 복구(restore)
tip) copy 할 때, 하나씩 하는 것을 추천! 그래야 꼬이지 않는다.
#) hot backup 에 있는 data file을 원위치 해주기
SQL> ! cp -av /home/oracle1/backup/arch/hot_20240112/users01.dbf /u01/app/oracle/oradata/ora11g/
SQL> ! cp -av /home/oracle1/backup/arch/hot_20240112/example01.dbf /u01/app/oracle/oradata/ora11g/
5. 백업 이후에 변경된 redo 정보를 적용
#) recover를 삭제된 tablespace를 하기.
SQL> recover tablespace users;
SQL> recover tablespace example;
cf) 만일에 위에 같이 Media recovery comlepte. 되지 않고 오류발생되었다면!
=> 겁내지 말고 achrive log mode 이니 해당 파일로 열겠다는 의미이다.
오류번호 : ORA-00289 , ORA-00280
=> 입력창에는 'AUTO'
(아래와 같이 진행하면 된다!)
6. online 모드로 변경
SQL> alter tablespace users online;
SQL> alter tablespace example online;
7. online 확인
select name, status from v$datafile;
select * from v$recover_file;
8. 복구 완료!
'Backup > Archive Log Mode' 카테고리의 다른 글
tablespace 에 속한 여러 데이터 파일들 중에 특정한 파일이 손상되었을 경우 (1) | 2024.01.15 |
---|---|
기존 위치가 아닌 새로운 위치로 복구 (0) | 2024.01.15 |
백업 받지 않은 tablespace에 데이터 파일 손상 받았을 경우 (1) | 2024.01.15 |
ARCHIVE LOG MODE 변경하는 방법 (0) | 2024.01.12 |
DB가 종료된 후 데이터 파일이 삭제 시키고 DB 올릴 경우 (0) | 2024.01.12 |