본문 바로가기

Database

[HANA] Log Area Backup

Log Management

 

  • Log는 Memory 내 log buffer에 쓰여짐
  • log buffer가 full 되거나 commit entry가 쓰여되면 log buffer가 할당된 log volume에 쓰여짐
    • Log는 log segment (multiple log buffer가 합쳐짐)에 쓰여짐
    • Log volume의 log segment(1G)로 많은 로그파일을 찾을 수 있음
  • Log segments
    • 파라미터 'Log segment status' 각 log segment의 size 정의
    • log segment가 full이 되면 새로운 segment가 생성되거나 reuse 하게 됨 (log_mode에 따라서)

log_segment_size_mb

Status Description
Formatting The log segment is being formatted and not yet used.
Preallocated The log segment has been preallocated, but never used.
Writing

The log segment is currently being written.
-> 하나의 log segment는 무조건 active (writing 상태) 임

Closed The log segment is closed, not backed up and is still required for restart.
Truncated The log segment is not required for restart, but has not been backed up.
BackedUp The log segment has been backed up, but is still required for restart.
Free The log segment has been backed up, it is not required for restart and can be reused.

 

Log Mode

 

  • 시스템은 Log volume에서 차지하는 공간을 Log segment 별로 재사용할 수 있음
  • 파라미터 'log_mode'는 log segment의 재검색 방법을 control함
    • log_mode = overwrite
      • Log segment는 Savepoint에 의해 free되며 log backup은 수행되지 않음
      • Production system에서는 권고하지 않음
      • Point-in-time recovery는 불가 (Data backup만 가능)
    • log_mode = normal
      • Backup 전까지 log segment는 유지됨
      • 자동 log backup이 유효함 (time-based 또는 segment full인 경우)
      • 파라미터 'basepath_logbackup'은 log backup directory 설정
      • Backup catalog maintenance
      • 마지막으로 commit된 상태까지 log replay로 가능한 데이터 백업의 복구
      • log replay 없이 가능한 백업의 복구

 

Log Area Backup

 

  • Production system에서는 normal log mode를 사용
    • normal log mode에서는 시스템은 자동으로 로그 백업을 생성하고 복구시에 data backup과 함께 사용됨
    • 로그 백업을 위한 추가적인 백업 공간이 필요  
    • 따라서 데이터 및 로그 백업 관리를 위한 운영 개념과 정책 수립이 필요함
    • Log mode 변경 시 restart 와 full backup 생성이 필요함
  • Log Segment 백업
    • Log segment의 재사용을 허용하기 위해서 시스템은 정기적인 로그 백업을 수행할 수 있음
      • 로그백업 중에 log segment의 payload가 log area에서 서비스별 로그백업 파일로 복사됨
    • Log segment 백업 상황
      • Log segment가 full인 경우
      • Log segment가 설정된 시간 임계를 넘어서 closed 된 경우
      • Database가 start 되는 경우
    • 로그백업 파일을 외부로 옮기지 않으면 파일시스템이 full 될 위험이 있음
    • Log segment는 백업된 이후에 overwrite 가능해짐
  • 로그백업 설정
    • 파일 type의 로그백업 위치 설정
      • global.ini [persistence] -> 'basepath_logbackup' 
      • Default 값 = $(DIR_INSTANCE)/backup/log
      • file-based backup으로 변경 가능하며 변경은 파라미터 변경 즉시 반영됨
      • Third-party tool을 사용하는 경우 
        /usr/sap/<SID>/SYS/global/hdb/backint
    • Automatic log backup 설정
      • enable_auto_log_backup = YES (Default)
    • Log backup timeout (Log backup 생성 주기)
      • log_backup_timeout_s = 900 (default, 15분)
      • 0 = log segment가 full인 경우 및 restart인 경우에만 써짐
  • 백업시간을 줄이기 위한 옵션
    • Service consolidation
      • 각 서비스들이 동시에 백업이 가능한지 체크하여 수행
        • 하나의 package로 묶어서 수행
        • 하나의 backup activity
      • 이전 HANA release를 위해서 log segment size는 segment 별 4G 까지 증가 가능
    • Log backup interval mode
      • Log segment가 끝나는 evnet 기반의 주기대신 15분주기로 주기를 줄일 수 있음
      • log_backup_interval_mode
        • immediate (Default) = event driven 수행
        • service - wait the next service (15분 interval)