티스토리 뷰

    Oracle 19c 데이터베이스를 운영하면서 Archive Log 관리는 매우 중요한 작업입니다.

Archive Log는 데이터베이스의 복구를 돕는 중요한 파일로, 잘못 관리될 경우 시스템 성능에 영향을 줄 수 있습니다.

특히, 보관 기간과 보관 정책을 적절히 설정하지 않으면 서버의 디스크 공간을 과도하게 소모할 수 있습니다.

Oracle 19c에서 Archive Log의 설정과 보관 기간을 효율적으로 관리하는 방법에 대해 알아보겠습니다.

 

1. Oracle 19c Archive Log 설정 확인하기

    먼저, Archive Log의 현재 설정을 확인하는 것이 중요합니다. 이를 통해 시스템의 상태와 보관 정책을 점검할 수 있습니다.

1.1 Archive Log 저장소 경로 확인

    Archive Log 파일이 저장되는 경로를 확인하려면 아래 명령어를 실행합니다.

         SHOW PARAMETER db_recovery_file_dest;
 

    이 명령은 데이터베이스의 Fast Recovery Area(FRA) 위치를 출력합니다.

    FRA는 백업 및 Archive Log를 포함한 복구 관련 파일들이 저장되는 공간입니다.

1.2 Fast Recovery Area(FRA) 크기 확인

    FRA 크기를 확인하려면 다음 명령을 사용합니다.

         SHOW PARAMETER db_recovery_file_dest_size;
 

    FRA의 크기를 통해 얼마나 많은 로그 파일을 보관할 수 있는지 파악할 수 있습니다.

1.3 Archive Log 모드 여부 확인

    데이터베이스가 Archive Log 모드인지 확인하려면, 아래 명령어를 실행하여 Archive Log가 활성화되어 있는지 확인합니다.

         ARCHIVE LOG LIST;

 

    이 명령어는 Archive Log 모드 상태, 현재의 로그 시퀀스 번호, 로그 파일 저장 위치 등을 제공합니다.

1.4 Archive Log 파일 위치 확인

    현재 삭제되지 않은 Archive Log 파일들을 확인하려면, 다음 쿼리를 실행합니다.

         SELECT * FROM V$ARCHIVED_LOG WHERE DELETED = 'NO';
 

    이 쿼리는 삭제되지 않은 Archive Log 파일들의 위치를 보여줍니다. 이를 통해 얼마나 많은 로그가 보관되고 있는지,

    디스크 공간을 얼마나 차지하고 있는지 확인할 수 있습니다.

 

2. Archive Log 보관 기간 설정 변경

    Oracle에서는 Archive Log의 보관 기간을 직접 설정하는 기능은 제공하지 않지만, Fast Recovery Area(FRA)의

    크기나 RMAN(Recovery Manager) 백업 정책을 통해 간접적으로 보관 기간을 관리할 수 있습니다.

2.1 FRA 크기 조정

    FRA의 크기를 조정하면, 설정한 공간이 가득 차면 Oracle이 오래된 Archive Log 파일을 자동으로 삭제합니다.

    이를 통해 공간 부족 문제를 예방할 수 있습니다.

        ALTER SYSTEM SET db_recovery_file_dest_size = 50G;
 

    위 명령은 FRA 크기를 50GB로 설정하는 예입니다.

2.2 RMAN 보관 정책 설정

    RMAN을 사용하면 Archive Log의 보관 정책을 설정할 수 있습니다.

    예를 들어, 백업 후 7일 동안만 Archive Log를 보관하도록 설정할 수 있습니다.

        rman target /
        CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
 

    이 명령어는 7일 이내의 백업된 Archive Log만 보관하며, 7일이 지난 로그는 자동으로 삭제됩니다.

2.3 보관 정책 확인 및 오래된 로그 삭제

    설정된 보관 정책을 확인하려면 아래 명령어를 실행합니다.

        SHOW RETENTION POLICY;

 

    그리고 오래된 로그를 삭제하려면, 다음 명령어를 사용합니다.

        DELETE OBSOLETE;
 

    이 명령은 설정된 보관 정책에 맞지 않는 오래된 로그를 삭제합니다.

3. Archive Log 삭제 자동화

    Archive Log를 수동으로 삭제하는 대신, 자동화된 방법을 설정할 수 있습니다. 이를 위해 Cron 등의 스케줄러를

사용하여 주기적으로 RMAN 명령어를 실행하도록 설정할 수 있습니다.

3.1 RMAN Bash Script 예시

    다음은 7일 이상 된 Archive Log를 자동으로 삭제하는 RMAN 스크립트 예시입니다.

        rman target / <<EOF
             DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
             EXIT;
        EOF
 

이 스크립트는 SYSDATE-7 이전에 완료된 모든 Archive Log를 삭제합니다.

NOPROMPT 옵션은 사용자에게 확인 메시지를 묻지 않고 자동으로 삭제 작업을 수행합니다.

3.2 스크립트 실행 스케줄링

    위 스크립트를 cron에 추가하여 매일 실행되도록 설정할 수 있습니다. 예를 들어, 매일 자정에 실행되도록 설정하려면,

    crontab -e 명령으로 cron 파일을 열고 다음과 같은 라인을 추가합니다.

       0 0 * * * /path/to/rman_script.sh

4. Archive Log 수동 삭제

    수동으로 Archive Log를 삭제할 때는, 특정 날짜 이전의 로그를 삭제하거나, 특정 SCN(System Change Number)

    이전의 로그를 삭제할 수 있습니다.

4.1 특정 날짜 이전의 로그 삭제

        DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
 

    위 명령은 7일 전의 모든 Archive Log를 삭제합니다.

4.2 특정 SCN 이전의 로그 삭제

        DELETE ARCHIVELOG UNTIL SEQUENCE <SCN_NUMBER>;
 

    특정 SCN 이전의 Archive Log를 삭제하는 명령입니다. SCN 번호는 데이터베이스의 복구 지점을 나타내며,

    특정 시점까지 로그를 보관해야 하는 경우 유용합니다.

5. Archive Log 관리 시 주의사항

  1. 정기적인 RMAN 백업 수행
    Archive Log는 데이터베이스 복구에 중요한 역할을 하므로, RMAN 백업을 정기적으로 수행해야 합니다. 또한, RMAN 백업이 완료된 후 불필요한 Archive Log는 삭제하여 디스크 공간을 확보합니다.
  2. ARCHIVELOG 모드에서의 중요한 점
    ARCHIVELOG 모드를 사용하는 경우, Archive Log가 삭제되지 않으면 데이터베이스 작업이 중단될 수 있습니다. 따라서 Archive Log 파일이 적시에 삭제될 수 있도록 보관 기간을 잘 설정해야 합니다.
  3. FRA 크기 관리
    db_recovery_file_dest_size는 DB가 차지할 수 있는 최대 디스크 공간을 제한합니다. 이 크기를 초과하면 경고 메시지가 발생하고, 과도한 Archive Log 보관으로 인해 디스크 공간 부족 문제를 방지할 수 있습니다.

 

결론: Oracle 19c에서 Archive Log 효과적으로 관리하기

 

    Oracle 19c에서 Archive Log 관리와 보관 기간 설정은 시스템의 안정성과 성능에 중요한 영향을 미칩니다.

Fast Recovery Area(FRA)와 RMAN 백업 정책을 적절히 활용하면, Archive Log의 보관 기간을 효율적으로 관리하고,

불필요한 로그 파일의 삭제를 자동화하여 디스크 공간을 최적화할 수 있습니다.

또한, 주기적인 백업과 Archive Log 삭제 작업은 데이터베이스의 안정성을 유지하고, 성능 저하를 예방하는 데 도움이 됩니다.