3. BACKUP 개념도
3
DB
Backup image 생성
Table1 Table2 Table3 Table4 Table5
date1 date1 date1 date1 date1
date2 date2 date2 date2 date2
날짜 기반의 Backup 대상
date3 date3 date3 date3 date3
date2 date2 date2 date2 date2
Restore 복구 data
Backup file
Table1 Table2
Table3 Table4 Table5
InfiniFlux 저장장치
(local disk/NFS/Cloud)
date2 date2
date2 date2 date2
BACKUP
RESTORE
MOUNT
시간 기반 데이터베이스 전체 이미지를 파일로 저장
Backup된 이미지를 이용하여 깨진 DBMS를 원래 이미지로 복구
backup된 이미지를 이용하여 read only view를 생성
:
:
:
4. BACKUP 명령어
4
iFlux> BACKUP DATABASE
FROM TO_DATE(‘2015-09-21 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’)
TO TO_DATE(‘2015-09-21 23:59:59 999:999:999’, ‘YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn’)
INTO DISK = ‘2015-09-21’;
• 특정 날짜 전체 백업
iFlux> BACKUP DATABASE
FROM TO_DATE(‘2015-09-21 00:00:00’, ‘YYYY-MM-DD HH24:MI:SS’)
TO TO_DATE(‘2015-09-21 23:59:59 999:999:999’, ‘YYYY-MM-DD HH24:MI:SS mmm:uuu:nnn’)
INTO IBFILE = ‘2015-09-21_backup.ibf’;
• 특정 날짜 전체 단일 파일 백업
=> $IFLUX_HOME/dbs/2015-09-21 디렉토리 내에 백업 파일들이 생성됨
=> $IFLUX_HOME/dbs/2015-09-21_backup.ibf 파일명의 백업 파일이 생성됨
• BACKUP DATABASE [FROM start_time TO end_time] INTO [DISK | IBFILE] = ‘backup_file_path'
• ifluxsql상에서 지정된 시간 범위의 DB에 대하여 지정 경로($IFLUX_HOME/dbs)에 백업을 수행
• 절대 path를 사용하면 해당 path로 백업됨.
• 전체 DB에 대하여 백업이 수행
• 디렉토리 또는 단일 파일로 백업 가능
5. RESTORE 명령어
5
$ ifluxadmin –k; /* database 종료 */
$ ifluxadmin –d; /* database 삭제 */
$ ifluxadmin –r ‘2015-09-21’;
• 특정 날짜 백업 이미지로 restore
$ ifluxadmin –w ‘2015-09-21_backup.ibf’;
• 단일 백업 파일 정보 조회
=> 반드시 inifiniflux를 종료하고, database를 삭제한 다음에 수행해야 한다.
=> 백업 이미지를 이용하여 database를 새로 생성한다.
=> ifluxadmin –w 명령으로 단일 백업 파일의 정보를 조회할 수 있다.
=> 백업 파일명, 생성일자, 백업 시작 시점/종료시점, DB 버전 정보가 표시된다.
• ifluxadmin –r ‘ backup_file_path’
• Backup image와 겹치는 영역의 data를 database image로 update함
• Database에 해당 테이블이 존재하지 않으면 자동으로 생성함
6. MOUNT 명령어
6
iFlux> MOUNT DATABASE ‘2015-09-21’;
iFlux> UNMOUNT DATABASE ‘2015-09-21’;
• 특정 날짜의 백업 이미지 mount / unmount
$ ifluxadmin –x ‘2015-09-21_backup.ibf’ ‘2015-09-21_extract’
iFlux> MOUNT DATABASE ‘2015-09-21_extract’;
iFlux> UNMOUNT DATABASE ‘2015-0-21_extract’;
• 특정 날짜의 단일 파일 백업 이미지 mount / unmount
=> $IFLUX_HOME/dbs/2015-09-21 백업 디렉토리 이미지를 mount하고 unmount함
=> 단일 파일 백업의 경우 디렉토리로 파일을 압축 해제한 다음에 mount를 수행해야 함
• [MOUNT | UNMOUNT] DATABASE ‘backup_file_path‘
• Backup image에 존재하는 table을 현재 DB에 read only view로 생성함.
• 수 초 이내 mount/unmount 명령어를 통해 백업 파일을 즉시 활용 가능함.
7. MOUNT 명령어(cont’)
7
컬럼명 설명
NAME Mount된 database 이름
PATH Mount된 database 위치
BACKUP_TBSID Backup tablespace ID
BACKUP_SCN Backup 고유 ID
DB_BEGIN_TIME Backup Database의 시작 시간
DB_END_TIME Backup Database의 종료 시간
BACKUP_BEGIN_TIME Backup을 시작한 시간
BACKUP_END_TIME Backup을 종료한 시간
FLAG 속성 Flag
• V$STORAGE_MOUNT_DATABASES 가상 테이블을 통해 mount된 정보를 조회할 수 있음
iFlux> SELECT * FROM V$STORAGE_MOUNT_DATABASES;
• Mount된 정보 조회
8. DELETE 명령어
8
• 가장 오래된 마지막 100건을 삭제하는 경우
DELETE FROM TableName [ OLDEST | EXCEPT ] Number [Time Duration] ROWS;
DELETE FROM TableName BEFORE datetime_expression;
레코드 임의의 위치에 있는 데이터는 삭제할 수 없으며, 연속적인 레코드를 삭제할 수 있다.
한번 삭제하면 복구 할 수 없으므로 주의해서 사용해야 한다.
iFlux> DELETE FROM t1 OLDEST 100 ROWS;
• 최근 100건을 제외하고 모두 삭제하는 경우
iFlux> DELETE FROM t1 EXCEPT 100 ROWS;
• 지금부터 100일치를 남기고 모두 삭제하는 경우
iFlux> DELETE FROM t1 EXCEPT 100 DAY;
• 2015년 9월 22일 이전의 데이터를 모두 삭제하는 경우
iFlux> DELETE FROM t1 BEFORE TO_DATE(‘2015-09-22’, ‘YYYY-MM-DD’);
9. 시나리오 예제
9
• 일별 백업 및 활용 예제
• 2015.09.21 데이터를 입력한다.
• 2015.09.21 database를 백업한다.
• 2015.09.21 포함 이전 데이터는 전부 삭제한다.
• 2015.09.21 백업된 이미지를 mount하여 데이터를 조회한다.
• 2015.09.21 이미지를 unmount한다.
• 2015.09.22 데이터를 입력한다
• 2015.09.22 database를 백업한다.
• 2015.09.22 포함 이전 데이터는 전부 삭제한다.
• 2015.09.22 백업된 이미지를 mount하여 데이터를 조회한다.
• 2015.09.21 백업된 이미지를 mount하여 데이터를 조회한다.
• 2015.09.22 이미지를 unmount한다.
• 2015.09.21 이미지를 unmount한다.
• $IFLUX_HOME/dbs 디렉토리에 백업된 파일을 확인한다.
10. The World's Fastest
Time Series DBMS
for IoT and BigData
www.infiniflux.com
info@infiniflux.com
InfiniFlux