Database초보우낙

8. 1개의 control file이 삭제되었을 경우 본문

백업과 복구/완전복구

8. 1개의 control file이 삭제되었을 경우

오운학 2024. 4. 12. 00:03

data base를 구성하는 파일 3가지?

data file
 ➡️system data와 사용자 data가 들어있다

control file
➡️db의 구조와 상태정보가 들어있는 파일

redo log file
➡️db의 변경사항에 대한 이력 데이터가 들어있는 파일

 

 

실습

 

#1. controlfile binary 형태로 백업

-- binary(0,1 구성) 형태로 백업

alter database backup controlfile to '/home/oracle/hot_20240304/control01.bak';

 

#2. controlfile text 형태로 백업

alter database backup controlfile to trace as '/home/oracle/hot_20240304/create_controlfile.sql';

 

 

--vi 편집기로 create_controlfile.sql 열기

-- : set nu 번호생성해두기

62~63 지워주기

밑과 위에 부분 지워주기

--완성

 

#3. shutdown abort 인스턴스를 내린다

 

--컨트롤파일위치확인
select name from v$controlfile;

 

위와 같이 controlfile 1개로만 유지해서 운영하면 위험하다.

1 깨지는 순간 전부 깨지는 것이다

최소 3개는 유지해서 운영해야한다

오후에 controlfile 3개로 multiplexing 하겠다.

--서버내리기
shutdown abort

 

#4. con trolfile   1개를 삭제

 

cd /u01/app/oracle/oradata/Ouh/

rm control01.ctl

 

#5. 서버올리기 startup

 

startup
@/home/oracle/i.sql  --DB 상태 확인

--컨트롤 파일이 없기에 nomount 단계에서 멈췄다

 

 

#6. 백업받아둔 controlfile 생성스크립트를 가지고 생성 db 올린다

@/home/oracle/hot_20240304/create_controlfile.sql

@/home/oracle/i.sql  --DB 상태 확인

 

 

#7. controlfile 만들어졌는지 확인

 

select name from v$controlfile;

cd /u01/app/oracle/oradata/Ouh/
ls -l control01.ctl

현재 시간 11 56

방금 생성된 있다

 

 


문제1. 다시 해보기

alter database backup controlfile to '/home/oracle/hot_20240304/control02.bak';
alter database backup controlfile to trace as '/home/oracle/hot_20240304/create_controlfile2.sql';

 

cd /home/oracle/hot_20240304/
vi create_controlfile2.sql

 

@/home/oracle/hot_20240304/create_controlfile2.sql
select name from v$controlfile;

 

cd /u01/app/oracle/oradata/Ouh/

ls -l control01.ctl