RMAN

BUMSOO·2024년 9월 11일

Backup & Recovery

목록 보기
10/18

RMAN(Recovery Manager)

  • RMAN은 오라클 데이터베이스에서 백업, 복원(restore), 복구 작업을 관리하는데 사용하는 오라클 유틸리티이다.
  • 운영체제에 독립적인 명령 언어를 사용한다.
  • 오라클 8 이상 릴리즈의 데이터베이스에서 사용된다.

백업대상

  • 디스크
  • Media Management library(테이프 장치)
  • Flash Recovery Area(Fast Recovery Area)
    • 백업과 복구, flashback database 목적으로 마련된 디스크 영역
    • 파일은 필요에 따라 자동으로 보관, 삭제 된다.
    • 위치, 크기
    • select * from v$flash_recovery_area_usage;

archive log mode → noarchive log mode 변경

  • 현재 데이터베이스의 모드 확인
  • DB 정상 종료 후 MOUNT 단계에서 noarchivelog 모드로 변경 후 DB를 OPEN 해준다.

  • RMAN을 이용한 백업파일 위치 확인
    show parameter db_recovery_file_dest

  • RMAN 접속
    rman target /
    / 의 의미는 이미 os의 oracle이라는 계정이 검증되었기 때문에 따로 인증체크가 필요없다.

  • RMAN을 통해 백업받은 정보
    list backup;

  • RMAN 설정 확인
    show all;
    - CONFIGURE CONTROLFILE AUTOBACKUP ON; : control file 백업이 자동으로 된다.

  • control file이 가지고 있는 data file 과 temp file 정보 확인
    report schema;

  • 백업 삭제
    delete backup;

rman에서 백업의 기본위치

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default -- 기본값 데이터파일 백업위치
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default -- 컨트롤파일을 자동으로 백업
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default -- 컨트롤파일 백업위치, 위치설정이 안되어있으면 기본값 백업위치로 백업된다

  • 기본값 백업위치
    show parameter db_recovery_file_dest
  • 데이터파일 백업의 위치 수정
    configure channel device type disk format '/home/oracle/backup/rman/%U_%T';

  • 컨트롤파일 오토백업 위치 수정
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/home/oracle/backup/rman/%F';

  • 위치 수정후 백업 수행

  • 백업 컨트롤파일 피스
    Piece Name: /home/oracle/backup/rman/c-1228797102-20240920-0a

    • %F의 의미 : c-DBID-YYYYMMDD-QQ (QQ : 00으로 시작하고 최대값을 FF인 16진수 시퀀스값)
  • 백업 데이터파일 피스
    Piece Name: /home/oracle/backup/rman/0l35ghml_1_1_20240920

    • %U의 의미 : %u_%p_%c의 조합
      1) %u : 백업셋 번호와 백업셋이 생성된 시간을 조합한 8자리 번호
      2) %p : 백업셋내의 백업 피스 번호. 1 부터 시작하고 백업 피스가 만들어 질때마다 1씩 증가
      3) %c : 중복된 백업 피스셋 내에서의 백업피스의 복제번호

    • %T의 의미 : YYYYMMDD

  • 특정 backupset 번호의 백업 파일만 삭제
    delete backupset 번호;

  • 데이터파일 백업을 기본값으로 원복
    configure channel device type disk CLEAR;

  • 컨트롤파일 오토백업 기본값으로 원복
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;

  • 압축을 이용해서 백업
    backup as compressed backupset database;

    • 압축 후 용량 비교
  • 백업위치 기본값은 그대로 유지한채 일시적으로 백업 위치를 변경할때
    - %d : 데이터베이스 이름
    - include current controlfile : control file이 autobackup on이 안되어있다면 해당 키워드로 control file도 같이 백업 받을 수 있다.
    backup as compressed backupset format '/home/oracle/backup/rman/%d_%U_%T' database include current controlfile;

  • 수동으로 채널을 설정 후 백업받는 방법(9i 이전까지의 방법, 고인물 방법)

run {
allocate channel c1 type disk format '/home/oracle/backup/rman/%d_%U_%T';
backup as compressed backupset database include current controlfile;}

autobackup controlfile off

  • controlfile를 자동 백업 중지
    CONFIGURE CONTROLFILE AUTOBACKUP OFF;

RMAN의 백업피스를 물리적으로만 삭제한 경우

  • 컨트롤파일이 가지고 있는 백업정보하고 실제 물리적인 백업정보를 체크
    crosscheck backup;

  • expired 된 백업정보 확인
    list expired backup;

  • expired된 백업 삭제
    delete expired backup;

advise failure

  1. DB 정상 종료 후 example 데이터파일 삭제로 장애유발

  2. DB STARTUP 하지만 데이터파일이 없기 때문에 오류발생(MOUNT 단계)

  3. RMAN으로 접속 후 오류 확인
    list failure;

  4. 오류에 대한 adviser 요청
    advise failure;

  5. repair 하는 스크립트를 preview로 확인
    repair failure preview;

  6. RMAN이 자동으로 repair 하도록 요청
    repair failure;
    - DB OPEN 까지 도와준다.

RMAN PARAMETER

  • rman의 전체 파라미터 확인
    show all;

  • 특정 파라미터 확인
    show maxsetsize;

maxsetsize

  • backup set의 크기를 제한하는 파라미터

  • maxsetsize를 변경
    configure maxsetsize to 600m;

- maxsetsize를 변경후 backup database 해보면 오류가 나는걸 확인할 수 있는데 사유는 데이터파일들 중 600m 보다 큰 크기의 데이터파일이 있기 때문이다.
report schema;

- 다시 maxsetsize 값을 900m으로 변경 후 백업셋을 받아보면 정상적으로 백업이 된다.

- 백업은 되었지만 백업셋이 나뉘어져서 만들어진걸 확인할 수 있다.

  • maxsetsize 값 초기화
    configure maxsetsize clear;

backup piece size 조절

configure channel device type disk maxpiecesize 100m;

  • piecesize 값을 조절 후 백업을 받으면 piece 값이 제한적이기 때문에 이전에는 1개의 piece에 들어있던 데이터들이 여러 piece에 분산되어있다.

  • 특정 테이블스페이스가 어떤 피스에 있는지 확인
    list backup of tablespace system;

  • maxpiecesize 값 초기화
    configure channel device type disk clear;

  • 전체 환경은 변경하지 않은채 특정채널로 파라미터 변경

run {
	allocate channel c1 device type disk maxpiecesize 100m;
    backup as compressed backupset database;}

0개의 댓글