오늘은 데이터파일을 백업해보겠습니다.

 

1. 일단 RMAN접속한후 데이터백업을 시작합니다.

백업에는 IMAGE COPY라는 방식과 BACUP SET이라는 방식이 있습니다.

COPY는 현재파일을 그대로 1:1로 그대로 백업하는 것이고 BACKUP SET은 빈블록을 뺴고 모아서 저장하는 형태입니다.

일단 저는 BACKUP SET으로 저장해보겠습니다. (IMAGE COPY인 경우에 BACKUP AS COPY~로 시작하여 저장하고 아래와 같이 저장하면 BACKUP SET으로 백업하게 됩니다.)

 $ rman target /
RMAN> RUN {
ALLOCATE CHANNEL ch00 TYPE disk;
BACKUP
  FILESPERSET 2
  FORMAT '/home/oracle/data_backup_%s_%p_%t'
  DATABASE;
RELEASE CHANNEL ch00;
}

%s : backup set number

%p : backup piece number

%t : backup set time stamp

참조 : http://docs.oracle.com/database/121/RCMRF/rcmsubcl012.htm#BABHCHAG

 

2. 백업이 저장된 걸 확인해봅니다.

RMAN과 관련된 다양한 catalog view들이 있는데요.

아래 테이블을 조회하면 모든 백업파일정보가 다 저장되어 있어서 조건만 주면 원하는데로 조회해서 보실수 있습니다.

RMAN> select BACKUP_TYPE,FILE_TYPE,STATUS,FNAME,DEVICE_TYPE,BYTES,BS_KEY,BS_COUNT,BS_STATUS,DF_TABLESPACE from v$backup_files;
BACKUP_TYPE FILE_TYPE STATUS FNAME DEVICE_TYPE BYTES BS_KEY BS_COUNT BS_STATUS DF_TABLESPACE
BACKUP SET CONTROLFILE      
17956864
19 19 AVAILABLE  
BACKUP SET PIECE AVAILABLE /home2/controlfile/backup/c-123-789 DISK 18006016 19 19 AVAILABLE  
BACKUP SET DATAFILE  
+DATA/ORCL12/DATAFILE/sysaux.279.912335241
  942153728 18 18 AVAILABLE SYSAUX
BACKUP SET DATAFILE   +DATA/ORCL12/DATAFILE/users.284.912335257   1990656 18 18 AVAILABLE USERS
BACKUP SET PIECE AVAILABLE /home/oracle/data_backup_18_1_916074657 DISK 944168960 18 18 AVAILABLE  
BACKUP SET DATAFILE   +DATA/ORCL12/DATAFILE/system.277.912335237   719912960 17 17 AVAILABLE SYSTEM
BACKUP SET DATAFILE   +DATA/ORCL12/DATAFILE/undotbs1.281.912335243   3260416 17 17 AVAILABLE UNDOTAB
BACKUP SET PIECE AVAILABLE /home/oracle/data_backup_17_1_916074649 DISK 723197952 17 17 AVAILABLE  

 

제가 백업시 backupset 마다 파일을 2개씩 넣으라고 설정(FILESPERSET 2)해서 데이터파일당 하나의 piece가 생성되었네요. 보니 backup set의 count가 동일하네요.

그리고 자세히 보시면 제가 저장하라고 지정하지 않은 control file도 백업된걸 볼수있습니다. (AUTOBACKUP이 ON되어있음을 알수있습니다.)

 

3. 그럼 이제 일자별로 BACKUP SET으로 백업된 데이터파일 개수를 세어 현재 데이터파일의 개수와 비교하면 백업이 잘 되고있는지 아닌지 빠진건 없는지 확인할 수있습니다.

SQL> select to_char(BS_COMPLETION_TIME,'YYYYMMDD') "Backup_Date", count(distinct fname) CNT
from v$backup_files
where FILE_TYPE='DATAFILE'
and BS_STATUS='AVAILABLE'
group by to_char(BS_COMPLETION_TIME,'YYYYMMDD');

 

아래는 recovery catalog view에 대한 오라클 매뉴얼링크입니다. 테이블 조회도 해보고 매뉴얼도 같이 보면 더욱 좋습니다.

http://docs.oracle.com/database/121/RCMRF/rcviews.htm#RCMRF003