백업은 SAP BC 로써 정말 중요한 자산이다.
물론 모든 시스템 관리자들에게도 적용되겠지만, 회사의 재정 상태, 현금 흐름, 입출금 등을 관리하는 SAP 시스템 에서의 백업은 특히 매우 중요하다.

그래서 평상시는 물론이고, 모든 작업 전에는 항상 백업을 필수로 체크하고 진행해야 한다.

SAP ECC 에서 S/4HANA 로 넘어오면서 사용되는 HANA DB 에서는 백업은 정말 쉬워지고, 편해지고, 빨라졌다.

따라서 이번 포스트에서는 SAP HANA DB 백업에 대해서 핵심만 간략하게 정리한다.



1. 백업 종류

SAP HANA DB 에서는 아래와 같이 크게 2가지로 나눠진다.

  1. Data Backup
  2. Log Backup

백업에 Data Snapshot 도 있지만, 해당 포스트에서는 정리하지 않고, 다른 포스트로 정리하려고 한다.



2. Data Backup

Data Backup 에서도 백업 방식에 따라 2가지로 분류된다.

  1. Complete Data Backups (Full Backup)
  2. Delta backups
    2-1. Differential Backup (차등 백업)
    2-2. Incremental Backup (증분 백업)

2-1. Complete Data Backups (Full Backup)

보통 일반적으로 이야기하는 Full Backup(전체 백업) 을 HANA DB 에서는 Complete Data Backup 이라고 표현한다.
전체 백업은 DB 의 모든 사항(models, topology, volume 등등) 을 파일형태로 복사본을 만든다.

HANA DB 서비스 구성에 따라 파일은 여러개가 될 수도 있으며, 당연히 모든 백업 파일이 있어야 복구가 가능하다.

모든 사항을 백업하기에, 전체 백업을 통해서 백업 당시의 시점으로 DB 를 완전하게 복구할 수 있다.

SAP HANA DB 는 DB 가 Online(Running) 상태일때만 백업이 가능하다.

2-2. Delta backups

델타 백업은 마지막 전체 백업이나 마지막 델타 백업 이후의 변경된 데이터만 백업의 대상이 된다.

즉, 기존에 백업된 데이터를 제외한 변경 사항에 대해서만 백업받게되므로, 백업의 크기가 줄어들고, 속도도 일반적으로 더 빠르다.

여기서 변경된 데이터라는 표현은 SAP HANA 영구 스토리지(persistent storage) 에 있는 데이터가 물리적으로 변경되는 것을 의미한다.

실제 데이터가 변경되지 않았더라도, 내부 재구성(Partitioning, Delta Merge 등) 의 이유로 데이터가 물리적으로 변경이 될 수 있다.

또한, 델타 백업을 사용한 복구는 Log 를 사용한 복구보다 일반적으로 더 빠르다는 이점이 있다.

2-2-1. Differential Backup (차등 백업)

차등 백업은 마지막 전체 백업 이후, 변경된 데이터를 백업한다.

따라서, 복구를 위해서는 마지막 전체 백업 한 개와, 복구 시점의 차등 백업 한 개, 최대 두 개의 백업이 필요하다.

2-2-2. Incremental Backup (증분 백업)

증분 백업은 마지막 전체 백업 또는 마지막 델타 백업 이후, 변경된 데이터를 백업한다.

따라서, 복구를 위해서는 마지막 전체 백업 한 개와, 전체 백업 이후 수행된 각 증분 백업 여러개가 필요하다.



3. Log Backup

Log Backup 은 DB 의 모든 변경사항을 저장하는 Log (정확히는 Log Segment) 를 파일 형태로 복사본을 만든다.
Log 에는 DB 의 모든 변경사항이 순차적으로 기록되어 있기 때문에, Full Backup + Log Backup 을 사용하여 원하는 시간대로 DB 를 복구(Time-Base Recovery) 할 수 있다.

Log Backup 은 정해진 시간 간격에 도달하거나(Default 15분), 설정된 Log Segment 크기에 도달하면, 자동적으로 Log Backup 이 수행되어 파일로 떨어진다.

Log Backup 은 Log mode 가 normal 일 때 수행된다.
Log mode 설정에 대한 자세한 내용은 아래 포스트를 참조하길 바란다.

◾ Parameter

  • Log Backup 위치
    global.ini -> [persistence] -> basepath_logbackup

  • Log Segment 크기 (설정크기)
    global.ini -> [persistence] -> log_segment_size_mb

  • Log Backup 간격 (임계시간)
    global.ini -> [persistence] -> log_backup_timeout_s



4. 백업 수행

SAP HANA DB 2.0 부터 멀티 테넌트 데이터베이스 컨테이너(MDC) 가 기본이 되면서, SYSTEM DB 와 TENANT DB 각각 백업을 받아야 한다.

SYSTEM DB 는 관리 DB 역할을 하기 때문에, 자주 받을 필요는 없지만, 그래도 일정 주기마다 백업을 받아주는 것이 좋다.

TENANT DB 는 실제 비지니스 데이터가 있기때문에 최소 하루에 한 번씩은 백업을 받아주는것이 좋다.


4-1. 백업 수행 (Tcode DB13)

🟡 기본적으로 As ABAP 시스템만 가능
🟡 기본적으로 TENANT DB 백업만 가능 (그 외에는 DBCO 연결 필요)
✅ 일회성 백업 또는 주기적 백업 스케쥴 모두 가능

As ABAP 시스템의 경우, Tcode DB13 에서 백업 수행 및 스케쥴을 할 수 있다.

Tcode DB13 에서 주기적으로 백업 스케쥴을 설정할 경우, 백업 파일 Prefix 를 설정해줘야 백업파일이 덮어씌어지지 않는다. 아래 Notes 를 참고하여 반드시 Prefix 를 설정하자

  • SAP Notes 2472627 - Daily backup of HANA DB through dbacockpit getting overwritten

단, DB13 에서의 백업은 기본적으로 SID TENANT DB 백업만 가능하다.

SYSTEM DB 의 경우 아래 Notes 의 Procedure A 처럼, DBCO 를 통한 연결 절차가 필요하다.
마찬가지로, 다른 SID 의 HANA DB 도 같은 방식으로 연결하여 스케쥴링을 관리할 수 있다.

  • SAP Notes 2164096 - Schedule backups for SAP HANA multiple-container systems with DB13

여기서는 TENANT DB 를 전체 백업 받는 시나리오로 작성한다.

Tcode DB13
-> 백업을 수행할 날짜 선택
-> 툴바의 Add 클릭

-> Action Description
-> Action : Complete Data Backup
-> Planned Start : <설정된 백업 일시>

-> Action Parameter
-> Destination Type : File
-> Backup Destination : <백업 파일 저장 경로>
-> Backup Prefix : <백업 파일 이름 및 접두사 설정>

-> Recurrence
-> Recurrence patten : <백업 스케쥴 설정>
-> Recurrence Range : <백업 스케쥴 종료 설정>


4-2. 백업 수행 (SAP HANA Studio)

✅ As ABAP, JAVA 시스템 모두 가능
✅ SYSTEM DB, TENANT DB 백업 모두 가능
🛑 일회성 백업만 가능

HANA DB 관리에 사용되는 SAP HANA Studio, SAP HANA Cockpit 툴을 사용하면 쉽게 백업/복구를 수행할 수 있다.

여기서는 SAP HANA Studio 를 기준으로, TENANT DB 를 전체 백업 받는 시나리오로 작성한다.

-> 시스템 랜드스케이프에서 백업 대상 시스템 우클릭
-> Backup and Recovery
-> Back Up Tenant Database
-> 백업 대상 TENANT DB SID 선택

-> Backup Type : Complete Data Backup
-> Destination Type : FILE
-> Backup Destination : <백업 파일 저장 경로>
-> Backup Prefix : <백업 파일의 접두사>

❗❗ Prefix 없이 그대로 받을 경우, 같은 이름의 백업파일이 있으면 덮어쓰게 되니 주의

-> Review Backup Setting 확인 후, Finish
-> 백업이 수행되며, 수행이 완료되면 Backup Excution Summary 확인


4-3. 백업 수행 (hdbsql)

✅ As ABAP, JAVA 시스템 모두 가능
✅ SYSTEM DB, TENANT DB 백업 모두 가능
✅ 일회성 백업 또는 주기적 백업 스케쥴(Crontab) 모두 가능

OS 단에서는 hdbsql 을 사용해서 백업 수행이 가능하다.
As JAVA 시스템의 경우, hdbsql 명령어 스크립트를 Crontab 에 등록하여, 주기적으로 백업받도록 설정 가능하다.

아래 포스트를 참고하여, 백업 스크립트를 작성해 crontab 에 등록하면 된다.


4-4. 백업 수행 (SAP Refer Script)

✅ As ABAP, JAVA 시스템 모두 가능
✅ SYSTEM DB, TENANT DB 백업 모두 가능
✅ 일회성 백업 또는 주기적 백업 스케쥴(Crontab) 모두 가능

  • SAP Notes 1651055 - Scheduling SAP HANA Database Backups in Linux

4-3 의 자체 개발 hdbsql 스크립트 대신에, SAP 제공 Backup 스크립트를 사용하는 방법도 있다. (해당 Notes 첨부파일 참조)

물론 해당 스크립트는 예시일 뿐이며, 적절한 구현은 본인에게 있으며, 해당 스크립트에 대한 지원은 제공되지 않는다.

동봉된 가이드와 예시 스크립트를 활용하여 백업을 스케쥴링 할 수 있다.



5. 백업에 대한 추가 정보

5-1. Backup 파일 예상 크기

Backup 이 받아지는 파일시스템의 여유공간이 충분하지 않다면, 백업 작업은 실패하게 된다.

또한 적절한 수준의 백업 파일을 로컬에 보관하기 위해서도 대략적인 백업 파일의 예상 크기를 알아둬야 한다.

이에 대한 정보는 System View M_BACKUP_SIZE_ESTIMATIONS 을 확인하여 알 수 있다.

5-2. Backup 파일 압축

SAP HANA DB 는 LZ4 압축 알고리즘을 사용하여 Data, Log Backup 을 압축할 수 있다.

5-2-1. Data Backup 압축 파라미터

Data Backup 압축은 SQL 구문으로만 가능하다.
즉, hdbsql 을 통한 Backup 수행을 할때만 압축이 가능하다.
(Log 백업처럼 파라미터로 활성화 불가능)

  • BACKUP DATA Statement 에 추가 옵션으로 COMPRESSED 추가
    BACKUP DATA USING FILE ('FULL_BACKUP') COMPRESSED

압축 설정은 파라미터로 가능하며 다음과 같다.

  • Data Backup 압축 알고리즘 설정
    global.ini -> [backup] -> data_backup_compression_algorithm : lz4

  • Log Backup 압축 레벨 설정
    global.ini -> [backup] -> data_backup_compression_level : 0 ~ 65537
    ※ 압축 레벨이 작을 수록 더 많이 압축되며, 백업 시간은 길어진다. (0이 최대 압축)

5-2-2. Log Backup 압축 파라미터

  • Log Backup 압축 활성화
    global.ini -> [backup] -> enable_log_backup_compression : true

  • Log Backup 압축 알고리즘 설정
    global.ini -> [backup] -> log_backup_compression_algorithm : lz4

  • Log Backup 압축 레벨 설정
    global.ini -> [backup] -> log_backup_compression_level : 0 ~ 65537
    ※ 압축 레벨이 작을 수록 더 많이 압축되며, 백업 시간은 길어진다. (0이 최대 압축)

5-3. Backup 파일 분할

HANA DB 사이즈가 증가함에 따라 Backup 파일의 크기가 커졌을때, Backup 파일을 분할하여 받을 수 있다.

아래 파라미터로 Backup 단일 파일의 최대 크기를 설정할 수 있다.

  • Backup 파일 최대 크기 설정
    global.ini -> [backup] -> data_backup_max_chunk_size : 최대 2048000 MB (2000GB)

5-4. Backup 파일 복구 가능 여부 점검

SAP HANA 2.0 SPS05 이상부터 가능

OS 에서 HANA DB 파이썬 스크립트를 통해, Backup 파일의 복구 가능 여부를 점검할 수 있다.

Python 스크립트 : hdbrecovercheck.py

◾ 명령어 예시 :

  1. HANA DB (SID : TST) 의 데이터 백업 TEST_FULL_BACKUP (경로 : /hana/backup/test) 파일 일치성 점검
    python python_support/hdbrecovercheck.py checkBackupConsistency -d /hana/backup/test/TEST_FULL_BACKUP --database TST
  1. HANA DB (SID : TST) 의 로컬 백업 카탈로그를 기반으로 지정한 날짜(2000.01.01 06:00:00) 로 복구가 가능한지 점검, Log Backup 경로는 /hana/backup/log)
    python python_support/hdbrecovercheck.py checkPointInTimeReachable -c /hana/backup/log/DB_TST --database TST -t "2000-01-01 06:00:00"


profile
SAP BC (2019 ~ )

0개의 댓글