행위

오라클 rman 명령어

DB CAFE

thumb_up 추천메뉴 바로가기


RMAN 관리 명령어

1 CROSSCHECK[편집]

컨트롤 파일을 사용하는 NoCatalog Mode에서도 자주 사용되는 명령이다. 백업 파일이나 아카이브드 로그파일을 RMAN을 사용하지 않고 삭제하였을 경우인데 RMAN 세션에서 관련 메시지가 발생한다. 이와 같은 경우 CROSSCHECK 명령어를 사용하여 RMAN catalog 혹은 control file의 리스트를 현 상태와 동일하게 업데이트하게 할 수 있다. 이 명령어는 실제 V$BACKUP_SET, V$DATAFILE_COPY, RC_BACKUP_SET, RC_DATAFILE_COPY 뷰들의 Status 컬럼에 업데이트를 실행한다. 특히 주목할 부분은 V$BACKUP_PIECE의 STATUS 컬럼 값 (X, D, A) 이다.

- A(Available) : RMAN 이 판단하기에 해당 백업 파일이 존재한다는 의미

- X(Expired) : RMAN 이 판단하기에 해당 백업 파일이 존재하지 않는 의미

- D(Deleted) : 해당 파일이 삭제됨.

주의할 점은 CROSSCHECK 명령어는 백업셋 피스의 상태를 DELETE 에서 AVAILABLE 로 변경할 수 없다는 점이다. DELETE로 설정된 것은 어떠한 값으로도 변경이 불가능하다. 다음은 자주 쓰이는 CROSSCHECK 명령어들의 예다 .

RMAN> CROSSCHECK BACKUP;
RMAN> crosscheck backupset;
RMAN> crosscheck backup of datafile 1;
RMAN> crosscheck backup of tablespace users;
RMAN> crosscheck backup of controlfile;
RMAN> crosscheck backup of spfile;
RMAN> crosscheck backup tag = ‘FULL_BACKUP’;
RMAN> crosscheck backup completed after sysdate - 2’;
RMAN> crosscheck backup completed between ‘sysdate 5 ’and ‘sysdate 2 ’;
RMAN> crosscheck backup device type sbt;
RMAN> crosscheck backup device type disk;
RMAN> crosscheck archivelog all;
RMAN> crosscheck archivelog from sequence 12;
RMAN> crosscheck archivelog until sequence 2432;
RMAN> crosscheck archivelog from time to_date( ’11 - 10 -2004 ’, ‘mm - dd - yyyy ’);
RMAN> crosscheck archivelog until time to_date( 11 - 10 - 2004 ’, mm - dd -yyyy ’);
RMAN> crosscheck archivelog ‘c:\backup ’ARC003212.002 ’;
RMAN> crosscheck archivelog like ‘ARC 0001.log ’;
RMAN> crosscheck archivelog like ‘% ARC00143.002 ;
RMAN> crosscheck copy of datafile 10;
RMAN> crosscheck datafilecopy ‘c:\backup\user_tbs_copy01.dbf ’;


2 SHOW 명령어[편집]

RMAN이 사용하는 기본 설정값을 출력해 주는 명령어다. RMAN> SHOW ALL; # 모든 매개변수를 보여준다.

RMAN 구성 매개변수:

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 MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\SNCFORA10SE1.ORA'; </source>

  1. default
RMAN> SHOW CHANNEL; # 채널세팅을 보여준다.

RMAN> SHOW DEFAULT DEVICE TYPE;

RMAN> SHOW MAXSETSIZE; # Backup Sets의 최대 크기

RMAN> SHOW EXCLUDE; # 전체 DataBase 백업 시 제외된 테이블 스페이스


3 CONFIGURE 명령어[편집]

Oracle 9i부터 RMAN에서 도입된 RMAN 설정 값을 변경 명령어다.

  1. 기본채널 설정
  1.  %d : db name, %s : backup set, %p : backup piece, %c : backup copy
RMAN>CONFIGURE CHANNEL DEVICE TYPE DISK

FORMAT 'c:\backup/%U';

  1. Backup 보관 주기나 backup본의 수를 설정한다.
RMAN>CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
  1. 이미 backup된 동일한(checkpoint SCN등) datafile, archived redolog,
  1. backup set이 있다면 skip
RMAN>CONFIGURE BACKUP OPTIMIZATION OFF;
  1. default backup device를 설정한다.
RMAN>CONFIGURE DEFAULT DEVICE TYPE TO DISK;
  1. RMAN의 BACKUP이나 COPY 수행 후 자동으로 control file backup을 수행한다.
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP OFF;
  1. autobackup되는 control file의 기본 format을 설정한다.
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT

FOR DEVICE TYPE DISK TO '%F';

  1. 특정 device에 automatic channel allocation 될 때 channel의 수를 지정한다.
RMAN>CONFIGURE DEVICE TYPE DISK PARALLELISM 1;
  1. DATAFILE, CONTROL FILE의 backup set의 copy 본 수를 지정한다.
  1. 백업이 성공한 후 넘버를 초과하는 수의 백업세트를 삭제한다.
RMAN>CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
  1. ARCHIVELOG FILE의 backup set의 copy본 수를 지정한다.
RMAN>CONFIGURE ARCHIVELOG BACKUP COPIES

FOR DEVICE TYPE DISK TO 1;

  1. backupset의 maximum size를 설정한다.
RMAN>CONFIGURE MAXSETSIZE TO UNLIMITED;
  1. (10g only) flash recovery area의 archived redo log에 대한 삭제 여부를 설정
RMAN>CONFIGURE ARCHIVELOG DELETION POLICY TO NONE;
  1. RMAN은 resync시 생성되는 임시 snapshot control file의 이름을 지정한다.
RMAN>CONFIGURE SNAPSHOT CONTROLFILE NAME
TO '/opt/oracle/product/ora10g/dbs/snapcf_db10g.f';

예) RETENTION POLICY 정의

Retention policy 파라미터와 관련된 사용 가능한 파라미터는 다음의 두 가지가 있다 .

RMAN>configure retention policy to recovery window of 2 days;

RMAN>CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

windows 파라미터는 백업 수행 후 초과된 날짜 수를 나타내며 redundancy는 해당 파일에 대해 수행된 백업의 총 회수를 지칭한다. 이 파라미터의 지정된 값들을 초과하는 백업 셋들은 다음의 명령어에 의해 삭제될 수 있다 .

RMAN> delete obsolete;

RMAN> delete expired;

하지만 RMAN 의 기본 설정과는 관련 없이 따로 보존하고 싶은 백업의 생성 시에는 다음과 같이 실행하면 된다 .

RMAN> backup database keep forever;

RMAN> backup database keep until time

“ to_date( ’2011-03-01’, ‘yyyy-mm-dd’);

RMAN> backup database keep 5 days;

4 LIST 명령어[편집]

백업 완료된 RMAN Repository 정보를 참조할 때 사용하는 명령어다.


  1. 백업된 모든 데이터베이스 파일을 표시한다.
RMAN>list backup of database;

RMAN>list backup summary;

RMAN>list backup by file;

RMAN>list backupset;

RMAN>list expired backup;

RMAN>list incarnation;

RMAN>list backup of tablespace users;

RMAN>list backup of datafile 3;

RMAN>list archivelog all

RMAN>list backup of archivelog all;

RMAN>list backup of controlfile;

RMAN>list backup of spfile;

RMAN>list copy;

RMAN>list copy of database;

# system 테이블스페이스의 데이터파일 복사본을 표시 한다.

RMAN>list copy of tablespace system;

RMAN>list copy of archivelog all;

RMAN>list copy of archivelog from sequence 33;

RMAN>list copy of controlfile;


5 REPORT 명령어[편집]

RMAN Repository 정보를 참조하여 백업이 필요한 데이터 객체에 대한 분석 정보를 표시해 주는 명령어다.

RMAN>report schema; # 데이터베이스의 구조는

RMAN>report need backup; # 백업이 필요한 파일은
  1. incremental level 3 일 경우 백업이 필요한지 report
RMAN>report need backup incremental = 3;

RMAN>report need backup days = 3; # 3일이 초과되어 백업이 필요한 파일은?
  1. 3번 이상 백업되어 새로이 백업이 필요한 파일을 표시
RMAN>report need backup redundancy = 3;

RMAN>report need backup recovery window of 2 days;

RMAN>report obsolete

RMAN>report unrecoverable


6 CHANGE 명령어[편집]

이 명령어는 특정 백업 셋의 STATUS 정보를 변경한다. 예를 들어 백업 미디어 장치가 임시적으로 사용 불가능할 경우 change 명령어를 사용하여 대상 미디어 장치에 속한 백업 셋을 사용하지 못하도록 설정할 수도 있다 .

RMAN> change backup of database tag = FULL_BACKUP unavailable;

RMAN> change backup of database like ‘% FULL% ’ unavailable;

RMAN> change backupset unavailable;

RMAN> change backupset 55 unavailable; #V$BACKUP_SET의 RECID 값

RMAN> change backupset 55 available;

RMAN> change archivelog ‘c:\backup\ARC001.arc’ unavailable;

RMAN> change backup of database device type disk unavailable;

RMAN> change archivelog all backed up 5 times to device type sbt unavailable;

RMAN> change backupset 221, 222 delete;

RMAN> change backuppiece 33123 delete;

RMAN> change archivelog until logseq = 553 delete;

이 명령어는 특정 백업 셋의 STATUS 정보를 변경한다. 예를 들어 백업 미디어 장치가 임시적으로 사용 불가능할 경우 change 명령어를 사용하여 대상 미디어 장치에 속한 백업 셋을 사용하지 못하도록 설정할 수도 있다 .



7 VALIDATE 명령어[편집]

데이터베이스 파일의 유효성을 확인하는데 사용함으로써 모든 데이터베이스 파일의 존재를 확인하고, 바른 위치에 있는지 확인하며, 또한 물리적 오류도 확인한다.

RMAN> REPORT SCHEMA;

RMAN> VALIDATE DATABASE;

RMAN> VALIDATE TABLESPACE users;

RMAN> VALIDATE DATAFILE 4;

RMAN> VALIDATE DATAFILE 4 BLOCK 96;

RMAN> VALIDATE DATAFILE 4 BLOCK 96,39,258;

RMAN> VALIDATE DATAFILE 4 BLOCK 10 TO 13;

RMAN> LIST BACKUPSET;

RMAN> VALIDATE BACKUPSET 98;

RMAN> VALIDATE BACKUPSET 98, 99, 100;

RMAN> BACKUP VALIDATE DATABASE ARCHIVELOG ALL;

RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;

RMAN> RESTORE DATABASE VALIDATE;

RMAN> RESTORE ARCHIVE ALL VALIDATE;



8 DELETE 명령어[편집]

DELETE 명령으로 RMAN 툴로 디스크나 테이프에 백업하였지만 쓸모없는 백업 (RMAN backups)이나 Archived Redo Logs 파일을 삭제한다. control 파일에 백업파일들의 상태를 D(Deleted)로 갱신한다. NOPROMPT 옵션을 지정하지 않으면 삭제할 때 확인한다. DELETE OBSOLETE 명령은 더 이상 필요 없는 백업이나 복사된 파일을 지울 때 사용된다. RMAN 툴에서 DELETION 명령의 수행하는 명령문은 다음과 같다.


  1. 백업파일들의 보존정책을 넘어선 백업본들을 삭제한다.
RMAN> DELETE OBSOLETE;

# 파일의 상태가 X인 것들을 지운다. (OS에서 파일 삭제 후 CROSSCHECK)
<source lang=sql>
RMAN> DELETE EXPIRED ARCHIVELOG ALL;

RMAN> DELETE BACKUPSET;

RMAN> DELETE BACKUPSET 55; # V$BACKUP_SET의 RECID 값

RMAN> DELETE BACKUP;

RMAN> DELETE NOPROMPT EXPIRED BACKUP; # 과거 백업본중 만료된 백업본 삭제.
RMAN> DELETE NOPROMPT EXPIRED COPY;

RMAN> DELETE ARCHIVELOG ALL;

RMAN> DELETE NOPROMPT ARCHIVELOG ALL;

RMAN> DELETE EXPIRED ARCHIVELOG ALL;

RMAN> DELETE NOPROMPT EXPIRED BACKUP OF TABLESPACE user_data

COMPLETED BEFORE 'SYSDATE-14';
RMAN> DELETE BACKUP OF DATABASE LIKE '/tmp%';
RMAN> DELETE ARCHIVELOG ALL BACKED UP 2 TIMES TO DEVICE TYPE sbt;
RMAN> DELETE BACKUPSET 101, 102, 103;
RMAN> DELETE CONTROLFILECOPY '/tmp/cntrlfile.copy';
RMAN> DELETE BACKUP OF SPFILE TABLESPACE users DEVICE TYPE sbt;



9 RECOVERY CATALOG 관리 명령어[편집]

  1. Register Database 명령을 수행한 후 “alter database open resetlogs" 명령어를 실행
  1. 하여 Open 한 경우 RMAN catalog에 해당 정보를 재 입력한다.
RMAN> RESET DATABASE;
  1. Target Database의 구조정보를 RMAN catalog와 동기화 시킴
RMAN> resync catalog;

모든 복구 카타로그의 resync를 시작합니다

모든 resync가 완성되었습니다

RMAN>


10 RMAN 내장 스크립트의 사용[편집]

기존의 OS 레벨에서 생성된 스크립트 실행

C:\>rman target backup_admin/manager cmdfile=my_backup.cmd

C:\>RMAN TARGET / MSGLOG 'c:\rmanlog.log' CMDFILE 'c:\backup_da.rman' RMAN> @my_backup.cmd
  1. RMAN 내장 스크립트의 생성 (RMAN catalog 필수)
RMAN> create script my_backup_script

2 (backup database plus archivelog;)

  1. RMAN 용 내장 스크립트의 삭제
RMAN> delete script my_backup_script;
  1. RMAN 용 내장 스크립트의 내용 확인
RMAN> print script my_backup_script;
  1. RMAN 용 내장 스크립트의 내용 확인
SQL> select script_name, text from rc_stored_script_line

2 order by script_name, line;

  1. RMAN 용 내장 스크립트의 실행
RMAN> run {execute script my_backup_script;}