RMAN : Recovery Manager
; 8i때부터 생긴 유틸리티이고, 10g부터 대폭 개선이 된 기능입니다.
주요장점
1. 증분블럭백업가능 ; 과거에 백업받은 자료를 비교해서 그 이후에 추가된 자료만 백업(저장공간 대폭감소)
2. 백업시 자료가 있는 블록만 백업
(datafile들의 합이 모두 5G라도 사용하는 블럭만 추려서 백업합니다.(백업하면 5G보다는 당연히 적게 되겠죠?)
3. DB가 File System말고, ASM으로 운영될 시 백업은 무조건 RMAN으로밖에 하지 못함
RMAN 구성도
RMAN Memory구조 : 기본적으로 PGA사용하고, 부족하면 SGA(Large Pool, Shared Pool)를 사용합니다.
--> 위와같은 방식으로 백업파일이 저장이 되기때문에 Control file이나 Catalog안에 들어있는 정보들이 필수로 필요합니다.
Recovery Catalog (복구카탈로그)
; RMAN에서 작업한 내역을 저장하는 공간입니다. user를 하나 생성해서 catalog를 사용하는 tablespace를 할당하고, RMAN으로 해당 유저에 접속해서 작업을 하게되면, 해당 user에 자동으로 view나 table들이 생성되어 백업내역이나, RMAN관련정보들을 조회해볼 수 있습니다.
보통은 catalog를 사용하지 않고, 자신의 DB내에 RMAN정보를 저장(control file에)합니다.
Recovery Catalog 구성 및 catalog를 이용한 rman접속 : http://dinggur.tistory.com/178 보세요 ^^;
RMAN 사용하기 : rman target / (해당 명령어로 접속시 catalog사용하지 않습니다)
RMAN Default값들 보기 : show all;
현재 DB의 상태보기(어떤 Datafile, Tablespace가 있는지)
report schema;
전체 데이터베이스 백업
RMAN> backup database;
전체 데이터베이스 압축해서 백업
(as compressed backupset은 하나의 옵션으로 다른 백업에도 다 사용가능합니다.)
RMAN> backup as compressed backupset database;
tablespace 단위 백업
RMAN> backup tablespace 'KOO', 'TEST';
datafile 단위 백업(숫자는 위 report schema; 화면에서 datafile 번호입니다.)
RMAN> backup datafile 6,7;
control file 백업
RMAN> backup current controlfile;
(전체 데이터베이스 압축시나 configure controlfile autobackup on; 되어있으면 따로 백업 받지 않아도
아무 백업이나 수행하면 자동으로 백업받습니다.)
백업된 파일들의 list와 정보보기
RMAN> list backupset;
(특정 tbs의 백업정보를 보고 싶으면 of tablespace 'KOO', 'TEST';
control file의 백업정보를 보고 싶으면 of controlfile;
을 추가하면 됩니다.)
백업set지우기
전체 backupset 과 target 서버에 저장된 backupset의 정보 비교하기
RMAN> crosscheck backupset;
위의 EXPIRED(실제파일은 없지만 control file에는 저장된 RMAN정보)된 정보 삭제해주기
RMAN> delete expired backupset;
수동으로 백업받은 파일을 RMAN에 등록하기(rman에서 관리하기 위해서)
RMAN> catalog datafilecopy '/backup/example01.dbf';
(RMAN에서 정보삭제하고 싶으면
change datafilecopy '/backup/example01.dbf' uncatalog; )
; 8i때부터 생긴 유틸리티이고, 10g부터 대폭 개선이 된 기능입니다.
주요장점
1. 증분블럭백업가능 ; 과거에 백업받은 자료를 비교해서 그 이후에 추가된 자료만 백업(저장공간 대폭감소)
2. 백업시 자료가 있는 블록만 백업
(datafile들의 합이 모두 5G라도 사용하는 블럭만 추려서 백업합니다.(백업하면 5G보다는 당연히 적게 되겠죠?)
3. DB가 File System말고, ASM으로 운영될 시 백업은 무조건 RMAN으로밖에 하지 못함
RMAN 구성도
RMAN Memory구조 : 기본적으로 PGA사용하고, 부족하면 SGA(Large Pool, Shared Pool)를 사용합니다.
--> 위와같은 방식으로 백업파일이 저장이 되기때문에 Control file이나 Catalog안에 들어있는 정보들이 필수로 필요합니다.
Recovery Catalog (복구카탈로그)
; RMAN에서 작업한 내역을 저장하는 공간입니다. user를 하나 생성해서 catalog를 사용하는 tablespace를 할당하고, RMAN으로 해당 유저에 접속해서 작업을 하게되면, 해당 user에 자동으로 view나 table들이 생성되어 백업내역이나, RMAN관련정보들을 조회해볼 수 있습니다.
보통은 catalog를 사용하지 않고, 자신의 DB내에 RMAN정보를 저장(control file에)합니다.
Recovery Catalog 구성 및 catalog를 이용한 rman접속 : http://dinggur.tistory.com/178 보세요 ^^;
RMAN 사용하기 : rman target / (해당 명령어로 접속시 catalog사용하지 않습니다)
RMAN Default값들 보기 : show all;
RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name TESTDB are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default << 백업시 몇개의 채널을 할당할지 정합니다. CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/app/rman/%U_%T.rman'; << 백업시 어떤 형태로 저장할지 지정합니다. CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/app/oracle/product/11g/dbs/snapcf_testdb.f'; # default
현재 DB의 상태보기(어떤 Datafile, Tablespace가 있는지)
report schema;
RMAN> report schema; Report of database schema for database with db_unique_name TESTDB List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 710 SYSTEM *** /app/oracle/oradata/testdb/system01.dbf 2 520 SYSAUX *** /app/oracle/oradata/testdb/sysaux01.dbf 3 100 UNDOTBS1 *** /app/oracle/oradata/testdb/undotbs01.dbf 4 12 USERS *** /app/oracle/oradata/testdb/users01.dbf 5 343 EXAMPLE *** /app/oracle/oradata/testdb/example01.dbf 6 10 KOO *** /app/oracle/oradata/testdb/koo01.dbf 7 5 TEST *** /app/oracle/oradata/testdb/test01.dbf 8 10 FBDA *** /app/oracle/oradata/testdb/fbda01.dbf 9 10 KOO *** /app/oracle/oradata/testdb/koo02.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 29 TEMP 29 /app/oracle/oradata/testdb/temp01.dbf 2 10 SCOTT_TEMP 10 /app/oracle/oradata/testdb/scott_temp.dbf
전체 데이터베이스 백업
RMAN> backup database;
전체 데이터베이스 압축해서 백업
(as compressed backupset은 하나의 옵션으로 다른 백업에도 다 사용가능합니다.)
RMAN> backup as compressed backupset database;
tablespace 단위 백업
RMAN> backup tablespace 'KOO', 'TEST';
datafile 단위 백업(숫자는 위 report schema; 화면에서 datafile 번호입니다.)
RMAN> backup datafile 6,7;
control file 백업
RMAN> backup current controlfile;
(전체 데이터베이스 압축시나 configure controlfile autobackup on; 되어있으면 따로 백업 받지 않아도
아무 백업이나 수행하면 자동으로 백업받습니다.)
백업된 파일들의 list와 정보보기
RMAN> list backupset;
(특정 tbs의 백업정보를 보고 싶으면 of tablespace 'KOO', 'TEST';
control file의 백업정보를 보고 싶으면 of controlfile;
을 추가하면 됩니다.)
RMAN> list backupset; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ ------------------- 4 Incr 0 295.57M DISK 00:01:01 2012-02-24:11:37:45 BP Key: 4 Status: AVAILABLE Compressed: YES Tag: TAG20120224T113643 Piece Name: /app/rman/06n4492c_1_1_20120224.rman List of Datafiles in backup set 4 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- ------------------- ---- 1 0 Incr 878154 2012-02-24:11:36:44 /app/oracle/oradata/testdb/system01.dbf 2 0 Incr 878154 2012-02-24:11:36:44 /app/oracle/oradata/testdb/sysaux01.dbf 3 0 Incr 878154 2012-02-24:11:36:44 /app/oracle/oradata/testdb/undotbs01.dbf 4 0 Incr 878154 2012-02-24:11:36:44 /app/oracle/oradata/testdb/users01.dbf .....생략..... BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ ------------------- 9 Full 2.49M DISK 00:00:00 2012-02-26:11:03:34 BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20120226T110334 Piece Name: /app/rman/0bn49fs6_1_1_20120226.rman List of Datafiles in backup set 9 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- ------------------- ---- 6 Full 921697 2012-02-26:11:03:34 /app/oracle/oradata/testdb/koo01.dbf 7 Full 921697 2012-02-26:11:03:34 /app/oracle/oradata/testdb/test01.dbf
백업set지우기
RMAN> delete backupset 9;
(숫자는 list backupset;해서 BS Key번호입니다., 숫자를 쓰지 않으면 모든 백업set를 지웁니다.)
전체 backupset 과 target 서버에 저장된 backupset의 정보 비교하기
RMAN> crosscheck backupset;
RMAN> crosscheck backupset; using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=71 device type=DISK crosschecked backup piece: found to be 'AVAILABLE' backup piece handle=/app/rman/06n4492c_1_1_20120224.rman RECID=4 STAMP=776086604 crosschecked backup piece: found to be 'AVAILABLE' backup piece handle=/app/rman/07n4494d_1_1_20120224.rman RECID=5 STAMP=776086670 crosschecked backup piece: found to be 'AVAILABLE' backup piece handle=/app/rman/08n49fea_1_1_20120226.rman RECID=6 STAMP=776256971 crosschecked backup piece: found to be 'AVAILABLE' backup piece handle=/app/rman/09n49fn6_1_1_20120226.rman RECID=7 STAMP=776257255 crosschecked backup piece: found to be 'EXPIRED' backup piece handle=/app/rman/0an49fr9_1_1_20120226.rman RECID=8 STAMP=776257386 Crosschecked 5 objects
위의 EXPIRED(실제파일은 없지만 control file에는 저장된 RMAN정보)된 정보 삭제해주기
RMAN> delete expired backupset;
RMAN> delete expired backupset; using channel ORA_DISK_1 List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name ------- ------- --- --- ----------- ----------- ---------- 8 8 1 1 EXPIRED DISK /app/rman/0an49fr9_1_1_20120226.rman Do you really want to delete the above objects (enter YES or NO)? yes deleted backup piece backup piece handle=/app/rman/0an49fr9_1_1_20120226.rman RECID=8 STAMP=776257386 Deleted 1 EXPIRED objects
수동으로 백업받은 파일을 RMAN에 등록하기(rman에서 관리하기 위해서)
RMAN> catalog datafilecopy '/backup/example01.dbf';
(RMAN에서 정보삭제하고 싶으면
change datafilecopy '/backup/example01.dbf' uncatalog; )
'Oracle > RMAN' 카테고리의 다른 글
RMAN으로 drop tablespace복구하기 ; 과거의 controlfile을 가져와서 복구해야하는 경우 (0) | 2012.02.26 |
---|---|
백업&복구 18번째 RMAN ; sql문 실행, 데이터파일들의 경로변경하기, Recover(물리적, 논리적복구 예시들) (0) | 2012.02.26 |
백업&복구 17번째 RMAN ; RMAN 환경설정, 증분백업, 백업과 관련된 여러가지 내용 (0) | 2012.02.26 |
rman 명령어 (0) | 2012.02.23 |
RMAN 복구 중 RMAN-20005: target database name is ambiguous 에러해결 (2) | 2012.02.21 |