Database초보우낙

6. system data file 을 삭제하고 복구하기 본문

백업과 복구/완전복구

6. system data file 을 삭제하고 복구하기

오운학 2024. 4. 10. 22:57
✨system data file이란?
오라클을 운영하기 위한 데이터가 들어있는파일

 

✨ system data file의 종류
system tablespace, sysaux tablespace , undotbs tablespace
system data file들은 DB올리고 복구를 할 수 없다
항상 mount 상태에서 복구해야한다

 

 

실습

#1. 다시한번 coldbackup 수행하는데 /home/oracle밑에 coldbackup2라는 폴더를 만들고 수행합니다

shutdown immediate

<sqlplus의 sys 계정에서 진행>
shutdown immediate

 

<os에서 진행>
cd
mkdir coldbackup2

cp /u01/app/oracle/oradata/Ouh/* /home/oracle/coldbackup2/
<SQL plus의 sys에서 진행>
startup

select * from v$backup;

 

--테이블 스페이스를 복구하는 구문을 쉽게 구현하기 위해서 실행
select 'alter tablespace ' || tablespace_name || ' begin backup;'
from dba_data_files;

 

위에서 실행한 구문의 결과값!! 이걸 그대로 복사해서 실행!!
alter tablespace TS01 begin backup;
alter tablespace EXAMPLE begin backup;
alter tablespace USERS begin backup;
alter tablespace UNDOTBS1 begin backup;
alter tablespace SYSAUX begin backup;
alter tablespace SYSTEM begin backup;
alter tablespace TS02 begin backup;
alter tablespace TS03 begin backup;
alter tablespace CUPPANG01 begin backup;
alter tablespace CUPPANG02 begin backup;
alter tablespace CUPPANG03 begin backup;

#2.  다시한번hotbackup 수행하는데 /home/oracle밑에 hotbackup3라는 폴더를 만들고 수행합니다

cd
mkdir hotbackup3
select 'cp ' || file_name || ' /home/oracle/hotbackup3/' 
from dba_data_files;


select 'alter tablespace '|| tablespace_name ||' end backup;' from dba_data_files;

#3. /u01/app/oracle/oradata/Ouh/system01.dbf 삭제

rm /u01/app/oracle/oradata/Ouh/system01.dbf

 

#4. db startup force

 

#5. mount에서 멈추게 되면 복구해야할 파일이 뭔지 확인을 합니다

 

alter database datafile 1 offline immediate;

 

alter database datafile 1 offline drop;   ---강제로 offline으로 만들지만 안하는게 좋다

 

select * from v$recover_file;

cd /u01/app/oracle/diag/rdbms/ouh/Ouh/trace

vi alert*
startup

system01.dbf파일이 없어서 startup이 안되는 상황이다

 

#6. 백업 system01.dbf 복원

cd
cp /home/oracle/hotbackup3/system01.dbf /u01/app/oracle/oradata/Ouh/system01.dbf

 

#7. 복원한 파일을 복구

recover datafile 1;

 

#8.db를 open시킨다 

alter database open;

 

 

 


 

문제1. 백업은 위에서 받은 상태

바로 data file 삭제

os 나가서 sysaux01.dbf 삭제하고 복구하세요

 

@datafile

<os>
rm /u01/app/oracle/oradata/Ouh/sysaux01.dbf
<sys>
startup force

cp /home/oracle/hotbackup3/sysaux01.dbf /u01/app/oracle/oradata/Ouh/sysaux01.dbf

 

recover datafile 2;

alter database open;