Backup/Noarchive Log Mode

특정한 데이터 파일이 손상. (백업 이후에 redo 정보가 있을 경우)

잇꼬 2024. 1. 9. 16:54
728x90
반응형
SMALL

0. DB 내리기

shutdown immediate

[oracle1@oracle ~]$ pwd
/home/oracle1
 
1. 백업본의 딕셔너리 생성 
[oracle1@oracle ~]$ mkdir -p backup/noarch/
[oracle1@oracle ~]$ cd backup/noarch/

[oracle1@oracle noarch]$ pwd
/home/oracle1/backup/noarch
 
2. 백업할 파일들의 위치로 이동
[oracle1@oracle noarch]$ cd /u01/app/oracle/oradata/ora11g
[oracle1@oracle ora11g]$ pwd
/u01/app/oracle/oradata/ora11g
[oracle1@oracle ora11g]$ ls


3. 복사 모든속성 모든파일 경로
cp(복사) -av(보여주기) *.*(모든속성) /home/oracle1/backup/noarch(복사할 경로)
[oracle1@oracle ora11g]$ cp -av *.* /home/oracle1/backup/noarch

tip) 백업할 date 같이 해주는게 좋다!
[oracle1@oracle ora11g]$ date
Mon Jan  8 20:30:54 EST 2024

4. 복사한 파일 확인
[oracle1@oracle ora11g]$ cd /home/oracle1/backup/noarch
[oracle1@oracle noarch]$ ls

[oracle1@oracle noarch]$ ls -l

 
5. SQL sys 접속후 startup 
[oracle1@oracle noarch]$ sqlplus / as sysdba

startup


#) current, sequence 번호 확인

select * from v$log;


6. 백업 이후에 유저가 table 생성 후 data 로드, commit 작업
<HR SESSION>

show user
create table new (id number) tablespace example;
insert into new (id) values(1);
commit;


<SYS SESSION>

select f.file_name
from dba_extents e, dba_data_files f
where e.file_id = f.file_id
and e.segment_name = 'NEW'
and e.owner = 'HR';

 
#) 정상적인 종료 후 OS로 나오기

shutdown immediate

# 장애 유발 #
[oralce1@oralce ~]$ rm /u01/app/oracle/oradata/ora11g/example01.dbf
[oralce1@oralce ~]$ ls /u01/app/oracle/oradata/ora11g/example01.dbf

 

#) DB startup

startup

ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/u01/app/oracle/oradata/ora11g/example01.dbf'
 
7. DB mount 단계에서 나오기 
#) 없어진 파일 확인했을 경우, 확인 불가.
[oracle1@oracle ~]$ ls /u01/app/oracle/oradata/ora11g/example01.dbf


8. 백업 파일 restore(복구) : 백업본 위치(/home/oracle/backup/noarch)로 이동해서 copy 하기
[oracle1@oracle noarch]$ cp -av example01.dbf /u01/app/oracle/oradata/ora11g/example01.dbf
[oracle1@oracle noarch]$ ls /u01/app/oracle/oradata/ora11g/example01.dbf


9. 오라클로 접속
[oracle1@oracle noarch]$ exit
exit
# 복구 작업

recover tablespace example;
-- 또는
recover database;
--Media recovery complete. → redo 적용

#) DB open

alter database open;

 

#) data file 확인

select name, checkpoint_change# from v$datafile;


10. redo 있었기에 복구 가능함

conn hr/hr
select * from hr.new;

#) CURRENT_SCN 번호 확인

select current_scn from v$database;

#) data file 확인

select name, checkpoint_change# from v$datafile;


#) redo log 정보 확인

select * from v$log;

 
11. 복구 완료

728x90
반응형
LIST