접속
$ rman target / catalog rcuser/rcuser@rcserver  




1. RMAN 백업 종류
 
① backupset 으로 백업 수행 (default)
 : RMAN이 백업파일을 만들때 RMAN만이 알수있는 형태로 백업파일을 만드는데, 이것이 backupset 이다.
 : RMAN 백업의 장점을 모두 사용하려면 이 방법으로 백업해야 한다.
 

※ backup piece (backupset과 함께 나오는 용어)
 : backupset의 용량이 너무 크면 분할해서 여러개의 파일로 백업받을수 있는데, 분할되는 하나의 백업파일을 backup piece라고 한다.
 
 
 
② Image copy 로 백업 수행
 : OS 명령어로 begin backup 하는 것과 가장 유사한 방법
   RMAN의 장점인 '사용중인 블록만 백업' 이나 '증분백업' 기능 등을 사용할 수 없다.
 
 
RMAN> copy
2> datafile '/app/oracle/oradata/testdb/users01.dbf'
3> to '/data/backup/rman/users01.dbf';

 
Starting backup at 22-FEB-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/app/oracle/oradata/testdb/users01.dbf
output file name=/data/backup/rman/users01.dbf tag=TAG20120222T165117 RECID=3 STAMP=775932679
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 22-FEB-12
 
 
  


2. RMAN 백업 가능 대상 및 백업이 안되는 사항들
 
① 백업 가능 대상
- database (all datafile 과 현재 control file)
- tablespace
- datafile (current 또는 image copy)
- archived redo log
- control file (current 또는 image copy)
 

 
② 백업 불가능 대상
- online redo log file
- init.ora
- password file
- listener.ora
- tnsnames.ora
 

 
 
 
3. RMAN 백업 제한 사항
- open 상태에서 백업을 받으려면 DB가 archive log mode 로 운영되어야 한다.
- DB가 MOUNT 또는 OPEN 되어 있어야 한다.
- 온라인 리두로그는 백업 불가능
- 노 아카이브모드 에ㅓ는 Clean 백업만 사용 가능
  즉, 오프라인 테이블스페이스나 읽기 전용 테이블스페이스 백업 사용 가능
- 해당 테이블스페이스느 백업모드 이어서는 안된다.
 
▶ RMAN = Begin backup 수행과 동일
 
 
 
 
 
4. RMAN 으로 백업 수행하기
 
① 독립형 명령(stand alone) 으로 백업받기
 : RMAN> prompt 에 1개의 명령어
 
Cf. 둘다 같음
RMAN> backup tablespace users;
 
RMAN> backup
2> tablespace
3> users;

 
 
 
② 작업형 명령으로 백업받기
 : 프로그램의 스크립트처럼 여러개의 명령어를 한꺼번에 사용가능
   RMAN> run { 명령1; 명령2; ... }
 
RMAN> run {
2> allocate channel c1 type disk maxpiecesize 100M;
3> backup tablespace system
4> format '/data/backup/rman/%U_%T';
5> }

 


- users tablespace 와 example tablespace 를 다른 channel을 할당해서 다른 경로로 백업받는 방법

RMAN> run {
2> allocate channel c1 type disk maxpiecesize 10M;
3> allocate channel c1 type disk maxpiecesize 50M;
4> backup
5> tablespace users channel c1
6> format '/data/backup/close/%U_%T'
7> tablespace example channel c2
8> format '/data/backup/rman/%U_%T';
9> }

 
 
 
 
 
 
 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 실습 시작
문제 1: 전체 데이터베이스 백업 (독립형, 작업형 각각 수행)
 
RMAN> run {
2> allocate channel c1 device type disk
3> format '/data/backup/rman/%U_%T';
4> backup database;
5> }

 
 

문제 2: Channel 3개를 할당해서 Example, users, system,control file 만 백업
 
 
RMAN> run {
2> allocate channel c1 device type disk
3> allocate channel c2 device type disk
4> allocate channel c3 device type disk
5> backup
6> tablespace example, users, system
7> include current controlfile;
8> }

 

 
문제 3: Data file로 백업 (tablespace 이름이 아닌 data file 명으로)
 
RMAN> report schema;   ← SQL> 상태에서 쿼리 날려서 DATAFILE 상황 볼 필요없이 RMAN에서 바로 확인가능
 
Report of database schema for database with db_unique_name TESTDB
 
List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    700      SYSTEM               YES     /app/oracle/oradata/testdb/system01.dbf
2    520      SYSAUX               NO      /app/oracle/oradata/testdb/sysaux01.dbf
3    95       UNDOTBS1             YES     /app/oracle/oradata/testdb/undotbs01.dbf
4    12       USERS                NO      /app/oracle/oradata/testdb/users01.dbf
5    345      EXAMPLE              NO      /app/oracle/oradata/testdb/example01.dbf
 
List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    29       TEMP                 32767       /app/oracle/oradata/testdb/temp01.dbf
 
 
RMAN> run {
2> allocate chanel c1 type disk;
3> backup datafile 1,2,3,4,5;
4> }

 

 
 
문제 4: 현재 Control file 만 백업
 
RMAN> run {
2> allocate channel c1 type disk;
3> backup current controlfile;
4> }

 
 
 


문제 5: 아래 조건으로 RMAN 백업
* RMAN 을 사용하여 sysaux, example, system 테이블 스페이스를 한번에 백업받기
* 백업경로
sysaux → /data/backup/open/
example → /data/backup/rman/
system → /data/backup/close/
* 작업형 명령어로 한번에 백업
* Channel 은 3개로 병렬작업 (채널이름은 각자 알아서..)
* 각 Channel은 백업 파일 하나의 크기가 최대 10M를 넘지 않도록 설정
 
 
RMAN> run {
2> allocate channel c1 type disk maxpiecesize 10M;
3> allocate channel c2 type disk maxpiecesize 10M;
4> allocate channel c3 type disk maxpiecesize 10M;
5> backup
6> tablespace example channel c1
7>  format '/data/backup/rman/%U_%T'
8> tablespace example channel c2
9>  format '/data/backup/close/%U_%T'
10> tablespace example channel c3
11>  format '/data/backup/open/%U_%T';
12> }

 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 실습 끝
Posted by 딩구르
,