RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일,...
Transcript of RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일,...
![Page 1: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/1.jpg)
RMAN 의 특징 및 기능에 대한 내부 기술자료
발표일: 2004 년 9 월 3 일
작성자 : LG 카드 중형서버운영파트 민연홍
작성일 : 2004 년 9 월 3 일
업데이트 : 2006 년 2 월 23 일
목 차
1. rman 의 특징 .................................................................................................................................................................................................................. 2
2. rman catalog..................................................................................................................................................................................................................... 2
3. 컨트롤 파일을 사용한 rman repository ................................................................................................................................................................... 2
4. CHANNEL 할당............................................................................................................................................................................................................. 2
5. 수동으로 디스크 IO 채널할당하기............................................................................................................................................................................ 3
6. 자동으로 채널할당하는 설정을 해주자 .................................................................................................................................................................... 3
7. rman에서 datafile의 정보를 얻기 .............................................................................................................................................................................. 4
8. show 명령 ........................................................................................................................................................................................................................ 5
9. list 명령 ............................................................................................................................................................................................................................ 6
10. report 명령..................................................................................................................................................................................................................... 6
11. 백업................................................................................................................................................................................................................................. 7
12. backup 상황을 알 수 있는 동적view .................................................................................................................................................................. 7
13. fuz 컬럼은 백업모드 인지 보여줌 ........................................................................................................................................................................... 8
14. rman 백업 설명 ......................................................................................................................................................................................................... 9
15.backup set 아래와 같이 백업셋을 지정해줄 수 있다. .......................................................................................................................................... 9
16. backup piece ................................................................................................................................................................................................................ 10
17. rman backup option ................................................................................................................................................................................................ 11
18. 채널을 분산시켜서 빠른 백업이 가능하게 한다. ............................................................................................................................................... 13
19. archive log file까지 백업가능하다. .......................................................................................................................................................................... 13
20. copy 명령을 통한 백업( backup 명령이 아닌 이러한 명령도 가능하다) ..................................................................................................... 14
21. 병렬식 이미지 백업(copy) ....................................................................................................................................................................................... 14
22 incremental backup ..................................................................................................................................................................................................... 15
23. rman을 이용해서 tablespace 복구 하는 방법 ..................................................................................................................................................... 17
24. 새로운 이름을 데이터파일을 RESTORE 하고 RECOVER 하기..................................................................................................................... 17
25. RMAN을 통해서 불완전 복구하기 ........................................................................................................................................................................ 18
26. cross check 해서 sync를 맞추기 ............................................................................................................................................................................. 19
27. delete 명령 ................................................................................................................................................................................................................... 20
28. catalog DB 에서(RMANDB DB) RMAN catalog를 생성하고, catalog 를 이용해서 접속한 후 database를 등록하기 ......................... 20
![Page 2: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/2.jpg)
1. rman 의 특징
rman 은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능
백업 복구의 자동으로 수행
incremental 블록 백업 수행
unused block 를 넘어감
backup 의 제한을 걸어놓고 사용가능(예를들어 초당 3 메가씩 등등)
2. rman catalog
만약에 백업된 것이 날라간다면? control file 이 날라가면 rman 작업도 날라간다. 그러므로 백업된 것까지
catalog 를 다른 원격지 컴에 만들어야 한다. (원격지의 repository 에 recovery catalog 를 만들어야..)
$ rman target sys/oracle@mydb catalog raser/raser@catalog
-> mydb 라는 호스트 데이터베이스에 백업을 하면서 카탈로그로 catalog 호스트에 백업을 하는 것으로
접속하기
3. 컨트롤 파일을 사용한 rman repository
rman repository 는 target database 와 복구에 대한 메타데이터이다.
rman repository 는 항상 target database 의 컨트롤 파일에 저장된다.
CONTROL_FILLE_RECORD_KEEP_TIME 은 DEFAULT 값이 7 일이다. 즉 7 일 이후엔 백업한 내역이
사라지게 된다. 지정할 경우 그 날짜가 지나면 백업 내역이 지워진다.
4. CHANNEL 할당
disk 의 io 가 일어나면 channel 을 할당해줘야 한다.
![Page 3: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/3.jpg)
5. 수동으로 디스크 IO 채널할당하기
6. 자동으로 채널할당하는 설정을 해주자
- configure defautl device type to sbt; 에서 sbt 는 tape 장치를 의미한다. 즉 기본적인 default
백업장치를 지정해주는 것이다.
- configure device type disk parallelism 3; 에서 디바이스로 디스크를 쓸 경우 병렬식으로 3 개의 채널을
할당해서 쓰겠다는 설정명령이다.
- configure channel device type disk format = '/backup/rman/%U'; 에서 디스크에 채널을 할당하면서
포멧을 지정하겠다는 설정명령이다.
- configure channel device type disk maxpiecessize 2G; 디스크에 채널을 할 당시 piece 를 지정하는데
![Page 4: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/4.jpg)
하나의 백업본당 2G 의 크기를 준다는 설정명령이다. 즉 2G 가 넘어가면 2G 씩 백업된다.
백업그룹과 piece 의 관계는.. 뒤에서 알아보자
7. rman에서 datafile의 정보를 얻기
rman> report schema;
- configure channel device type disk format '/db01/backup/%U'; 포멧을 지정해준다. 자동채널 할당
참고 %d : db name , %s : backup set , %p : backup piece, %c : backup copy
- configure retention policy to recovery window of 7 days; 복구를 위한 백업을 유지해주는 기간 설정
- configure retention policy to redundancy 2; default 는 1 이다.
- configure retention policy clear ; retention policy 정보를 clear
![Page 5: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/5.jpg)
- configure datafile backup copies form device type disk to 2;
백업의 복사본을 2 개로 만들겠다는 설정명령. Format 에서 %c 가 있어야 중복되지 않으므로
에러가 발생하지 않는다.
- configure backup optimization on ; backup 시 optimize 시킴
- configure retention policy clear; retention policy 를 clear (backup 유지기간 설정을 clear)
- configure channel device type sbt clear ; configure
8. show 명령
: show all 명령을 하면 모두 보인다. 아래는 특정한 것만 볼 경우 사용
![Page 6: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/6.jpg)
9. list 명령
- list backup of database; 데이터베이스 백업 정보를 출력한다.
- list backup of datafile ~ : 데이터파일 백업 정보를 출력한다.
- List copy of tablespace “ system” : system tablespace 가 copy 명령으로 백업되었는지 확인한다.
10. report 명령
- report need backup incremental 3 ; incremental level 3 일 경우 백업이 필요한지 report
참고> backup database incremental level 0 이면 전체백업
incremental level 1 이면 level 0 으로 백업 후 변경된 데이터만을 백업
incremental level 2 이면 level 1 으로 백업 후 변경된 데이터만을 백업하거나
level 0 으로 백업되어 있다면 0 으로 백업한 이후의 데이터를 백업
- report need backup days 3 ;
3 일이 지났을 경우 백업이 필요한 것을 report ;
만약 retention policy 에 의해서 backup 한 것이 기간이 지났을 경우,
여기에 report 됨.
![Page 7: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/7.jpg)
11. 백업
- online redolog file 은 rman 백업의 대상이 아니다. rman 에서는 redolog file 은 백업대상이 아니며
그룹이 삭제되었을 경우에는 복구를 수행해야 한다.
- 백업은 datafile , tablespace , database 전체 백업이 있다. 컨트롤 파일의 경우엔 따로
backup 시에 include current controlfile 옵션을 주어야 한다.
12. backup 상황을 알 수 있는 동적 view
![Page 8: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/8.jpg)
13. fuz 컬럼은 백업모드 인지 보여줌
- alter tablespace end backup dmf 명령을 하면 fuz 컬럼이 변경
![Page 9: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/9.jpg)
14. rman 백업 설명
- recovery manager 를 통해서
1) datafile, controlfile, archive logfile 의 image copy
2) backup set 을 통한 datafile 의 backup 이 가능하다. ( unused block 은 무시해버린다.)
15.backup set 아래와 같이 백업셋을 지정해줄 수 있다.
백업셋은 한번 백업하여 생성된 집합을 말한다.
예를들어 1>RMAN> backup tablespace users, tools ;
2>RMAN> backup database ;
명령을 했을 경우 1>RMAN 명령으로 backup set 이 하나가 생성되고, 2>RMAN 명령으로
다른 하나의 backup set 이 생성된다.
![Page 10: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/10.jpg)
16. backup piece
Backup piece 는 backupset 을 특정 크기로 파일을 나눈다. 단 이 파일은 데이터파일과는 상관이 없으며,
데이터파일과는 상관없이 RMAN 에서 독립적으로 나누는 백업파일이다.
Backup piece 의 크기를 조절해서 백업 디바이스에 나누어서 들어갈 수 있도록 설정할 수 있다.
fileperset 에서 하나의 백업셋당 테이터파일이 얼만큼 들어갈 수 있는지 지정할 수 있다.
![Page 11: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/11.jpg)
17. rman backup option
![Page 12: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/12.jpg)
- backup piece size 를 정해서 나누어주는 역할을 해준다.
![Page 13: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/13.jpg)
18. 채널을 분산시켜서 빠른 백업이 가능하게 한다.
19. archive log file까지 백업가능하다.
![Page 14: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/14.jpg)
20. copy 명령을 통한 백업( backup 명령이 아닌 이러한 명령도 가능하다)
21. 병렬식 이미지 백업(copy)
![Page 15: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/15.jpg)
22 incremental backup
- incremental backup을 하면 기존의 백업에서 추가된 데이터만 백업을 받을 수 있다.
Incremental level 은 0부터 4까지이다. Level 0은 전체 database backup을 의미하며
숫자가 높아질수록 백업 데이터량이 적어진다. (순위가 낮아짐)
- 실행하고자 하는 backup level보다, 이전에 실시했던 backup level이 작으면
그 이후의 데이터에 대해서만 백업을 한다. 만약 이전에 실시했던 backup level이 크면
무시하고 더 이전의 백업을 찾아서 자신의 backup level보다 작은 것을 찾아서 찾게 되면
그 이후의 데이터에 대해서만 백업을 진행한다. 만약 level 0 (=full backup)이 없다면
자신의 level이 0이 아닐 지라도 level 0 처럼 full backup을 받는다.
실행하고자 하는 backup level 이 이전의 backup level과 같을 경우, 이전의 backup을 찾는
![Page 16: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/16.jpg)
것이 아니라, 같은 backup level 의 백업 이후 늘어난 데이터에 대해서만 백업을 한다.
- 위 그림에서 일요일에는 level 0 으로 backup을 받았으며
월요일에는 level 2 으로 backup을 하므로 lelel 0 이후의 백업을 받게 된다.
화요일에는 level 2 으로 backup을 하였으며 level이 같은 경우엔 같은 lelve l으로
백업한 이후의 늘어난 데이터를 추가로 다운로드 받게 된다.
수요일에는 level1으로 backup을 하였으며 level1 은 level2보다 크고, level0 보다
작으므로 level0이후 늘어난 데이터에 대해서 백업을 받는다.
목요일은 level2로 backup을 하였으며, 수요일에 level 0으로 백업을 받았으므로
수요일 level0 이후의 데이터에 대해서 백업을 한다.
예>
. Full Backup with catalog
1) incremental Base Backup 을 위한 stored script 를 작성한다. (inc0back)
RMAN> create script inc0back
{ backup incremental level 0 database; }
2) inc0back 를 실행한다.
RMAN> run { execute script inc0back; }
3) DB 에 변경작업을 한다.
sql> conn hr/hr
sql> update employees set salary=salary*1.1;
sql> commit;
4) Level 1 incremental backup script 를 작성한다.(inc1back)
RMAN> create script inc1back
{ backup incremental level 1 database; }
5) inc1back 을 실행한다.
RMAN> run { execute script inc0back; }
## rman 을 이용한 완전복구
![Page 17: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/17.jpg)
23. rman을 이용해서 tablespace 복구 하는 방법
24. 새로운 이름을 데이터파일을 RESTORE 하고 RECOVER 하기
디스크 FAILURE로 인해서 다른 위치에 데이터파일을 위치시켰을 경우
![Page 18: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/18.jpg)
25. RMAN을 통해서 불완전 복구하기
1) until time 시간단위 복구
2) sequence number까지 복구하기
![Page 19: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/19.jpg)
26. cross check 해서 sync를 맞추기
(실재로 예전에 백업했던 것이 존재하는가? 없지는 않는가?)
예>
RMAN> crosscheck backupset;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=9 devtype=DISK
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/data/DBMS/oradata/sbackupmin/02g16m6o_1_1 recid=1 stamp=538138840
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/data/DBMS/oradata/sbackupmin/03g16uos_1_1 recid=1 stamp=538147612
Crosschecked 2 objects
expire되었다. 즉 실재로 데이터가 없다.
RMAN> delete expired backupset;
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
13 12 1 1 EXPIRED DISK /data/DBMS/oradata/sbackupmin/02g16m6o_1_1
![Page 20: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/20.jpg)
79 78 1 1 EXPIRED DISK /data/DBMS/oradata/sbackupmin/03g16uos_1_1
Do you really want to delete the above objects (enter YES or NO)? y
deleted backup piece
backup piece handle=/data/DBMS/oradata/sbackupmin/02g16m6o_1_1 recid=1 stamp=538138840
deleted backup piece
backup piece handle=/data/DBMS/oradata/sbackupmin/03g16uos_1_1 recid=1 stamp=538147612
Deleted 2 EXPIRED objects
RMAN>
27. delete 명령
( 백업된 것을 지우거나, 정책에 쓸모 없는 것을 지우기)
28. catalog DB 에서(RMANDB DB) RMAN catalog를 생성하고, catalog 를 이용해서
접속한 후 database를 등록하기
(아래에서 MIN db가 target DB, RMANDB DB가 catalog DB)
‘MIN DB $ rman target system/oracel ‘ 명령을 통해서 rman에 접속해서 사용할 경우 , backup data는
백업할 대상의 컨트롤 파일에 저장된다. 만약 컨트롤 파일이 날라갔을 경우엔 backup 된 정보가 하나도 없으므로
복구가 불가능해진다. 그래서 backup 에 대해서 외부 다른 DB(RMANDB DB)에 catalog를 생성하고
MIN DB $ rman target system/oracle catalog urman/urman@RMANDB
으로 catalog를 통해서 rman에 접속 한 후 backup을 하게 되면 외부의 다른 DB (RMANDB DB)에 MIN db의
백업된 정보가 저장이 된다. 즉 MIN DB의 컨트롤파일이 깨질지라도 CATALOG db에는 백업된 정보가
있으므로 복구가 가능해진다.
예>
(RMANDB DB)
SQL> create tablespace rcat datafile '/opt/oracle/oradata/RMANDB/Disk6/rcat.dbf' size 50M;
![Page 21: RMAN 스터디자료 공개용 060223rman은 database , tablespace, datafile, 컨트롤 파일, archive log 를 백업가능 백업 복구의 자동으로 수행 incremental 블록](https://reader034.fdocuments.net/reader034/viewer/2022050107/5f457ae998c515767b7fab26/html5/thumbnails/21.jpg)
SQL> create user urman identified by urman
default tablespace rcat
temporary tablespace temp;
SQL> grant connect, resource, recovery_catalog_owner to rman;
RMANDB@~~$ rman catalog rman/rman@RMANDB
RMAN> create catalog tablespace rcat;
RMAN> exit
(MIN DB)
MIN@~ $ rman target \'sys/change_on_install as sysdba\' catalog rman/rman@RMANDB
RMAN> register database;