Akashic Records

아카이브 로그 백업(RMAN) 본문

Database Learning Guide

아카이브 로그 백업(RMAN)

Andrew's Akashic Records 2023. 5. 23. 16:28
728x90

아카이브 로그는 Oracle 데이터베이스에서 매우 중요한 역할을 하는데, 그 이유는 아카이브 로그를 사용하여 데이터베이스를 특정 시점으로 복구하거나, 데이터베이스의 일관성을 유지하는 데 도움이 되기 때문입니다. 따라서 아카이브 로그의 안전한 백업은 데이터베이스 관리의 중요한 부분입니다.

 

Oracle의 RMAN(Recovery Manager)을 사용하여 아카이브 로그를 백업할 수 있습니다. RMAN은 Oracle 데이터베이스 백업 및 복구 작업을 자동화하고 최적화하는 도구입니다.

 

다음은 RMAN을 사용하여 아카이브 로그를 백업하는 방법입니다:

 

Oracle의 RMAN(Recovery Manager)을 사용하여 아카이브 로그 백업 위치를 지정하려면 다음 단계를 수행해야 합니다.

  1. 먼저, 아카이브 로그 백업을 저장하려는 디렉토리가 있는지 확인하십시오. 해당 디렉토리가 없다면 생성하십시오.
  2. RMAN에 로그인합니다.
    rman target /

  3. RMAN에서 아래와 같이 CONFIGURE 명령을 사용하여 백업 위치를 설정할 수 있습니다.위의 명령은 아카이브 로그 백업 파일을 '/your/directory/' 디렉토리에 저장하도록 RMAN을 구성합니다. %U는 고유한 이름을 나타냅니다.
    CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/your/directory/%U';

  4. 이제 아카이브 로그 백업을 실행할 수 있습니다.
    BACKUP ARCHIVELOG ALL;

이 명령은 아카이브 로그를 백업합니다. all 키워드는 모든 아카이브 로그를 백업하라는 의미입니다.

 

위의 과정은 아카이브 로그의 백업 위치를 설정하는 기본적인 방법입니다. 실제 구성은 시스템의 요구 사항에 따라 달라질 수 있으니, Oracle 문서를 참조하거나 DBA에게 문의하시기 바랍니다.

 

만약 아카이브 로그를 백업한 후 원본 아카이브 로그를 삭제하려면, 다음 명령을 사용할 수 있습니다:

backup as compressed backupset archivelog all delete input;

위의 명령은 아카이브 로그를 백업하고 백업이 완료되면 원본 아카이브 로그를 삭제합니다. 이렇게 하면 디스크 공간을 절약할 수 있습니다.

 

아카이브 로그의 백업은 주기적으로 수행되어야 하며, 이 작업은 일반적으로 데이터베이스 관리자(DBA)가 관리합니다. 또한, 백업된 아카이브 로그는 안전한 장소에 보관되어야 하며, 필요할 때 즉시 사용할 수 있어야 합니다.

 

예시문장: BACKUP DEVICE TYPE DISK TAG '%TAG' ARCHIVELOG ALL NOT BACKED UP 2 TIMES;

 

Oracle RMAN에서 사용하는 이 백업 명령어는 아카이브 로그 파일을 백업하는 역할을 합니다. 각 부분의 의미는 다음과 같습니다:

  • BACKUP: RMAN 백업 작업을 시작하는 명령어입니다.
  • DEVICE TYPE DISK: 백업 대상 장치를 디스크로 설정합니다.
  • TAG '%TAG': 백업 세트나 이미지 복사본에 할당하는 사용자 정의 태그를 설정합니다. 이 태그는 백업 복구 작업을 좀 더 쉽게 관리하는 데 사용됩니다. %TAG는 실제 태그 이름으로 대체되어야 합니다.
  • ARCHIVELOG ALL: 모든 아카이브 로그를 백업합니다.
  • NOT BACKED UP 2 TIMES: 아직 두 번 백업되지 않은 아카이브 로그만 백업합니다. 다시 말해, 각 아카이브 로그는 최소 두 번 백업되어야 합니다. 이 옵션은 아카이브 로그에 대한 추가 백업 복사본을 생성하여 더 높은 데이터 가용성을 보장하는 데 유용합니다.

따라서, 이 명령은 아직 두 번 백업되지 않은 모든 아카이브 로그를 디스크에 백업하고, 각 백업에 사용자 정의 태그를 할당하는 작업을 수행합니다.

 

예시문장: BACKUP DEVICE TYPE DISK TAG '%TAG' ARCHIVELOG ALL NOT BACKED UP DELETE ALL INPUT;

 

Oracle RMAN에서 사용하는 이 백업 명령어도 아카이브 로그 파일을 백업하는 역할을 합니다. 하지만 추가적인 DELETE ALL INPUT 구문이 포함되어 있습니다. 각 부분의 의미는 다음과 같습니다:

  • BACKUP: RMAN 백업 작업을 시작하는 명령어입니다.
  • DEVICE TYPE DISK: 백업 대상 장치를 디스크로 설정합니다.
  • TAG '%TAG': 백업 세트나 이미지 복사본에 할당하는 사용자 정의 태그를 설정합니다. 이 태그는 백업 복구 작업을 좀 더 쉽게 관리하는 데 사용됩니다. %TAG는 실제 태그 이름으로 대체되어야 합니다.
  • ARCHIVELOG ALL: 모든 아카이브 로그를 백업합니다.
  • NOT BACKED UP: 아직 백업되지 않은 아카이브 로그만 백업합니다.
  • DELETE ALL INPUT: 백업 후 모든 입력 아카이브 로그 파일을 삭제합니다. 이 명령은 아카이브 로그를 디스크에서 삭제하여 공간을 확보하는 데 사용됩니다.

따라서, 이 명령은 아직 백업되지 않은 모든 아카이브 로그를 디스크에 백업하고, 각 백업에 사용자 정의 태그를 할당한 다음, 백업이 완료된 후 해당 아카이브 로그를 디스크에서 삭제하는 작업을 수행합니다. 이는 디스크 공간을 효율적으로 관리하면서 데이터를 안전하게 보관하는 데 도움이 됩니다.

 

Oracle RMAN을 사용하여 아카이브 로그 백업을 수행하는 bash shell 스크립트를 작성하는 방법은 다음과 같습니다:

먼저, bash shell 스크립트 파일을 만듭니다. 예를 들어, "archive_log_backup.sh"라는 이름으로 파일을 생성하십시오. 아래의 내용을 해당 파일에 입력하십시오:

#!/bin/bash

# Oracle 환경 설정
export ORACLE_HOME=/your/oracle/home
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=your_oracle_sid

rman target / <<EOF
RUN {
    CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/your/backup/directory/%U';
    BACKUP DEVICE TYPE DISK TAG '%TAG' ARCHIVELOG ALL NOT BACKED UP DELETE ALL INPUT;
}
EXIT;
EOF

여기서 다음 항목을 귀하의 환경에 맞게 대체해야 합니다:

  • /your/oracle/home: Oracle 홈 디렉토리의 경로입니다.
  • your_oracle_sid: Oracle 인스턴스의 SID입니다.
  • /your/backup/directory/: 백업 파일을 저장할 디렉토리의 경로입니다.
  • %TAG: 백업에 사용될 태그입니다.

스크립트 파일에 실행 권한을 부여하려면 다음 명령을 실행하십시오:

chmod +x archive_log_backup.sh

이제 이 스크립트를 실행하여 아카이브 로그 백업을 수행할 수 있습니다.

./archive_log_backup.sh

이 스크립트는 Oracle RMAN을 사용하여 아카이브 로그 백업을 수행하고, 백업이 완료된 후 해당 아카이브 로그를 삭제합니다.

 

스크립트는 귀하의 환경에 따라 맞춤화되어야 하며, 실제 운영 환경에서는 주기적으로 실행되도록 cron job 등으로 스케줄링되어야 합니다.

 

태그 사용법

RMAN(Recovery Manager) 백업에 추가 정보를 제공하는 데 사용되는 문자열입니다. 태그는 백업 세트나 이미지 복사본에 부여될 수 있으며, 백업 및 복구 작업을 관리하는 데 도움이 됩니다.

태그를 사용하는 방법은 아래와 같습니다:

1. 백업 중 태그 지정: 백업 작업 중에 태그를 지정할 수 있습니다. 이 태그는 추후 백업을 찾거나 관리하는 데 사용할 수 있습니다. 예를 들어,

    BACKUP DATABASE TAG 'WEEKLY_FULL_BACKUP';

    이 명령은 데이터베이스의 전체 백업을 만들고, 'WEEKLY_FULL_BACKUP'라는 태그를 이 백업에 부여합니다.

2. 태그를 사용하여 백업 검색: 만약 특정 태그가 부여된 백업을 찾으려면, `LIST` 또는 `REPORT` 명령을 사용하면 됩니다. 예를 들어,

    LIST BACKUP TAG 'WEEKLY_FULL_BACKUP';

    이 명령은 'WEEKLY_FULL_BACKUP' 태그가 부여된 모든 백업을 나열합니다.

3.태그를 사용하여 백업 복구: 태그는 복구 작업 중에 특정 백업 세트를 지정하는 데도 사용할 수 있습니다. 예를 들어,

    RESTORE DATABASE FROM TAG 'WEEKLY_FULL_BACKUP';

이 명령은 'WEEKLY_FULL_BACKUP' 태그가 부여된 백업으로부터 데이터베이스를 복구합니다.

위의 예시에서 `%TAG`는 사용자가 지정한 실제 태그로 대체되어야 합니다. 태그를 지정하는 것은 선택 사항이지만, 백업 작업을 구조화하고 관리하는 데 도움이 됩니다.

728x90

'Database Learning Guide' 카테고리의 다른 글

인덱스(Index)란 무엇인가?  (0) 2023.09.19
데이터베이스 마이그레이션(Database Migration)  (0) 2023.06.27
SQL CASE 문장  (0) 2023.05.23
Database 그룹함수  (0) 2023.05.18
DataBase Join의 종류와 그 구조  (0) 2023.05.18
Comments