Backup/Noarchive Log Mode

운영 중에 OFFLINE 되는 데이터 파일 손상되었을 경우

잇꼬 2024. 1. 12. 15:49
728x90
반응형
SMALL

# 백업 받는 시점의 scn 정보, 현재 데이터 파일의 scn 정보 
- checkpoint_change# : 현재 데이터 파일의 scn
- change# : 백업 시점 데이터 파일 scn 정보

select a.file#, a.name, a.checkpoint_change#, b.status, b.change#, b.time
from v$datafile a, v$backup b
where a.file# = b.file#;

 

# backup 받았을때의 scn 정보

select * from v$backup;


# 마지막 백업 박은 시점의 scn 번호를 기준으로 현재 scn 번호까지 redo 정보 확인 

select * from v$log;


# archive log mode 정보 

select sequence#, name, first_change#, next_change# from v$archived_log;


# 해당 위치에 있는지 확인 

! ls /home/oracle1/arch1 /home/oracle1/arch2


# test table 생성 하고 commit 까지 하기

create table hr.test1(id number) tablespace users;
insert into hr.test1(id) values(1); 
commit;


#) redo 정보 확인

select * from v$log;


# test1 tablespace 경로 확인

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

 


# 장애유발 #

! rm /u01/app/oracle/oradata/ora11g/users01.dbf
! ls /u01/app/oracle/oradata/ora11g/users01.dbf


#) test1 조회 해보기

select * from hr.test1;



#) 장애 발생!  

create table hr.test2 tablespace users as select * from hr.employees;

 

ORA-01116: error in opening database file 4 => 해당 데이터파일 없음
ORA-01110: data file 4: '/u01/app/oracle/oradata/ora11g/users01.dbf'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3



☆ 복구 진행 ☆ 
1. 대상 테이블 스페이스를 offline immediate 수행
#) offline 모드로 변경

alter tablespace users offline immediate;


#) 상태 정보 확인 

select name, status from v$datafile;


2. 가장 최근에 백업 파일을 문제되는 파일 위치에 복사,복구(restore)
#) hot backup 디렉터리에 있는 data file 원위치 해주기

! cp -av /home/oracle1/backup/arch/hot_20240112/users01.dbf /u01/app/oracle/oradata/ora11g/


3. 백업 이후에 변경된 redo 정보를 적용
#) recover 해주기. 

recover tablespace users;

4. tablespace 를 online 로 변경.
#) online 모드 변경

alter tablespace users online;

5. test1 data 확인 

select * from hr.test1;


5-1. tablespace users table 생성 해보기

create table hr.test2 tablespace users as select * from hr.employees;


6. online 확인

select name, status from v$datafile;

7. 복구완료

728x90
반응형
LIST