종류

  • COLD/ HOT / RMAN (유틸리티)  

대상

  • 필수 : data files,redo log files, control files
  • 선택 : parameter file, password file

상세

cold Backup

  • 유의사항
    • 모든파일은 checkpoint SCN 동일
    • 비정상 중지/시작은 일관성이 깨짐
    • 테이블스페이스 offline 백업도 cold backup
  • 방법
    • shutdown -> File copy -> startup

hot backup

  • 유의사항
    • 테이블스페이스 단위 백업 (전체 데이터베이스 백업 X)
    • data file, control file 가능 / redo log file 불가능
    • Archive log mod에서만 가능
    • 백업간 redo/archive log 양 증가 (block단위 저장)
    • 백업간 shutdown/ 테이블스페이스 offline 불가
    • 데이터파일 일관성 유지 방법
      • begin backup시, 
        • checkpoint -> 최종 SCN이 데이터파일과 컨트롤파일에 기록
        • 데이터파일 헤더 Hot-backup-in-progress 플래그
      •  end backup시,
        • 최종 SCN이후 변경사항을 redo log에서 데이터파일로 반영
  •  방법
    • alter tablespace begin backup -> copy -> alter tablespace end backup

RMAN (Recovery MANager)

  • 설명
    • 백업/복구를 관리자를 대신하여 대상 서버의 서버 프로세스에게 백업을 수행
    • 백업/복구 관련 정보는 Recovery catalog server가 있을경우 recovery catalog에
      없을 경우 백업서버의 controlfile에 저장
    • 백업 불가 대상
      • online redologfile, init.ora, password file, listener.ora, tnsnames.ora
    • 서버세션 : RMAN에 의해 호출된 서버 프로세스/스레드는 대상 데이터베이스에 접속되어 백업/복구 수행
    • 채널 : 백업/복구 작업을 수행 및 기록하기위해 필요한 대상 데이터베이스 링크

예시(Hot/Cold Backup )

주요 스크립트

Hot backup 여부 체크

select a.file#,a.name,b.status,to_char(b.time,'YYYY-MM-DD:HH24:MI:SS') as time
from v$datafile a, v$backup b
where a.file#=b.file#;

Cold backup

더보기

SQL> shutdown immediate;

       Database closed.
       Database dismounted.
       ORACLE instance shut down.
SQL> !
[localhost.localdomain:/app/oracle]cp -av /oradata/EHR/*.dbf /data/backup/close;
       `/oradata/EHR/sysaux01.dbf' -> `/data/backup/close/sysaux01.dbf'
       `/oradata/EHR/system01.dbf' -> `/data/backup/close/system01.dbf'
       `/oradata/EHR/temp02.dbf' -> `/data/backup/close/temp02.dbf'
       `/oradata/EHR/undo01.dbf' -> `/data/backup/close/undo01.dbf'
       `/oradata/EHR/undotbs01.dbf' -> `/data/backup/close/undotbs01.dbf'
       `/oradata/EHR/users01.dbf' -> `/data/backup/close/users01.dbf'
[localhost.localdomain:/app/oracle]cp -av /oradata/EHR/*.log /data/backup/close;
       `/oradata/EHR/redo01_a.log' -> `/data/backup/close/redo01_a.log'
       `/oradata/EHR/redo01_b.log' -> `/data/backup/close/redo01_b.log'
       `/oradata/EHR/redo02_a.log' -> `/data/backup/close/redo02_a.log'
       `/oradata/EHR/redo02_b.log' -> `/data/backup/close/redo02_b.log'
       `/oradata/EHR/redo03_a.log' -> `/data/backup/close/redo03_a.log'
       `/oradata/EHR/redo03_b.log' -> `/data/backup/close/redo03_b.log'
[localhost.localdomain:/app/oracle]cp -av /oradata/EHR/*.ctl /data/backup/close;
       `/oradata/EHR/control01.ctl' -> `/data/backup/close/control01.ctl'
       `/oradata/EHR/control02.ctl' -> `/data/backup/close/control02.ctl'
       `/oradata/EHR/control03.ctl' -> `/data/backup/close/control03.ctl'
[localhost.localdomain:/app/oracle]exit
       exit
 
SQL> startup
       ORACLE instance started.

Hot backup

더보기

SQL>! vi /orascript/open_backup.sql

       conn / as sysdba;
 
       alter tablespace users begin backup;
       !cp -av /oradata/EHR/users01.dbf /data/backup/open/
       alter tablespace users end backup;
 
       alter tablespace sysaux begin backup;
       !cp -av /oradata/EHR/sysaux01.dbf /data/backup/open/
       alter tablespace sysaux end backup;
 
       alter tablespace undotbs1 begin backup;
       !cp -av /oradata/EHR/undotbs01.dbf /data/backup/open/
       alter tablespace undotbs1 end backup;
 
       alter tablespace system begin backup;
       !cp -av /oradata/EHR/system01.dbf /data/backup/open/
       alter tablespace system end backup;
 
       alter database backup controlfile to '/data/backup/open/control01.ctl';
:wq!
 
SQL>@/orascript/open_backup.sql
       Connected.
       Tablespace altered.
       `/oradata/EHR/users01.dbf' -> `/data/backup/open/users01.dbf'
       Tablespace altered.
       Tablespace altered.
       `/oradata/EHR/sysaux01.dbf' -> `/data/backup/open/sysaux01.dbf'
       Tablespace altered.
       Tablespace altered.
       `/oradata/EHR/undotbs01.dbf' -> `/data/backup/open/undotbs01.dbf'
       Tablespace altered.
       Tablespace altered.
       `/oradata/EHR/system01.dbf' -> `/data/backup/open/system01.dbf'
       Tablespace altered.
       Database altered.

+ Recent posts