RMAN 복구 방법은 이때까지 해왔던 방법이랑 다른점 없음
1. 사용 안함 설정 -> offline, shutdown
2. 백업 복원 -> restore
3. 복구 -> recover
4. 사용함 -> online, open
필요없는 것은 offline 시키고
임시경로를 통해서 복구
대신 이 과정들을 수동으로 직접 수행하는 것이 아니라 RMAN 한테 명령어로 시키면 알아서 수행함
※
Restore - 백업 파일로부터의 복원
Recover - Redo Log/Archive Log 적용시켜 복구
1. offline 가능한 data file 삭제 복구작업
예) users tablespace datafile 삭제됨
독립형 명령어
RMAN> sql 'alter tablespace users offline immediate' ;
RMAN> restore tablespace users ;
RMAN> recover tablespace users ;
RMAN> sql 'alter tablespace users online' ;
작업형 명령어
RMAN> run {
2> sql 'alter tablespace users offline immediate' ;
3> restore tablespace users ;
4> recover tablespace users ;
5> sql 'alter tablespace users online' ;
6> }
--> 명령어 한꺼번에 적어주면서 RMAN이 순서대로 알아서 수행하기 때문에 작업형 명령어로 작업하기
[실습]
※
offline -> 그냥 offline
offline temporary -> 하나의 테이블스페이스에 두개의 데이터파일이 있다고 가정하에 그중 데이터파일 하나가 장애났을때
복구하기 위해서 다른 데이터파일 그냥 offline 하면 안됨, offline temporary 해야지 offline 된다.
offline immediate -> 누군가가 쓰고 있어도 무조건 offline
2. offline 불가능 한 data file 삭제 복구작업
예) offline 불가능한 system tablespace datafile 삭제됨
RMAN> run {
2> startup mount ;
3> restore database ;
4> recover database ;
5> alter database open ;
6> }
[실습]
3. 임시 경로에서 복구
복원 경로를 다른 위치로 지정하는 명령어
> set new name for datafile 번호또는경로 to 새위치경로및파일명
restore 하기전에 경로를 먼저 지정해줘야 한다
복원 후 반드시 control file의 내용을 바꿔주기 위해
> swich datafile 파일번호
작업해주기 -> alter database rename 작업과 동일한 작업이다.
예) users tablespace datafile 삭제
RMAN> run {
2> sql 'alter tablespace users offline immediate' ;
3> set newname for datafile '/data2/vol1/users01.dbf'
4> to '/data/temp/users01.dbf' ;
5> restore tablespace users ;
6> switch datafile 4 ;
7> recover tablespace users ;
8> sql 'alter tablespace users online' ;
9> }
나중에 datafile 목록들 살펴보면
알아서 users tablespace는 복구된 파일로 임시경로로 되어있는 것을 볼수 있음
[실습]
4. 필요한 datafile 만 복원 후 복구
모든 데이터 파일을 복원하지 않고
반드시 복구에 필요한 데이터 파일만 복원 후 복구 (system, sysaux, undotbs, 해당데이터가들어있는 datafile)
복구에 필요없는 파일은 RMAN에서 offline 처리 후
restore, recover 과정에서 skip 옵션을 사용해 복원, 복구 하지 않도록 설정
순서
control file이랑 redo log file 최근에 쓰던 것을 임시 경로로 복사
파라미터파일에서 controlfile 경로 변경
alter database rename을 통해 redo log file 경로 변경
복원 경로를 다른 위치로 지정
필요없는 데이터파일 drop
백업파일 없는 데이터파일 생성
필요없는 데이터파일 restore skip 해주기
alter database open ;
single quotation, double quotation 실수하지 않고 잘 쓰기!
alter 명령어는 " " double 로 묶어줘야 함
RMAN> run {
2> sql "alter database rename file ''/data2/vol3/redo01_a.log''
3> to ''/data/temp/redo01_a.log''" ;
4> sql "alter database rename file ''/data2/vol3/redo02_a.log''
5> to ''/data/temp/redo02_a.log''" ;
6> sql "alter database rename file ''/data2/vol3/redo03_a.log''
7> to ''/data/temp/redo03_a.log''" ;
8> sql "alter database rename file ''/data2/vol5/redo01_c.log''
9> to ''/data/temp/redo01_c.log''" ;
10> sql "alter database rename file ''/data2/vol5/redo02_c.log''
11> to ''/data/temp/redo02_c.log''" ;
12> sql "alter database rename file ''/data2/vol5/redo03_c.log''
13> to ''/data/temp/redo03_c.log''" ;
14> set newname for datafile 1 to '/data/temp/system01.dbf' ;
15> set newname for datafile 2 to '/data/temp/sysaux01.dbf' ;
16> set newname for datafile 3 to '/data/temp/undotbs01.dbf' ;
17> sql "alter database datafile ''/data2/vol1/example01.dbf'' offline drop" ;
18> sql "alter database datafile ''/data/temp/users01.dbf'' offline drop" ;
19> sql "alter database create datafile ''/data2/vol2/test01.dbf''
20> as ''/data/temp/test01.dbf''" ;
21> restore database skip tablespace 'users','example' ;
22> switch datafile all ;
23> recover database skip tablespace 'users','example' ;
24> alter database open ;
25> }
[실습]
※ 백업 명령어가 안될때 ※
RMAN-03014: implicit resync of recovery catalog failed
RMAN-06004: ORACLE error from recovery catalog database: RMAN-20035: invalid high RECID
이런 에러가 뜨는데
report schema 내용이랑 target server에서의 datafile 정보랑 달라서 생기는 에러
자동적으로 resync를 수행하지 못하고 있는 것을 볼 수 있다.
RMAN> unregister database noprompt ;
RMAN> register database ;
하면 정보가 동기화됨
'오라클 백업/복구' 카테고리의 다른 글
RMAN - Block Corruption Recovery + 11g New Features (0) | 2013.02.20 |
---|---|
RMAN - 복구 (불완전 복구) (0) | 2013.02.19 |
RMAN - 백업 (0) | 2013.02.19 |
RMAN - Recovery Catalog와 Channel (0) | 2013.02.18 |
Flashback 3 - Database Level (0) | 2013.02.17 |