데이터베이스 일관성 스냅샷을 위한 향상된 사전-사후 스크립트

Azure Backup 서비스는 Azure Backup을 사용하여 Linux VM에서 애플리케이션 일관성을 달성하기 위해 이미 사전-사후 스크립트 프레임워크를 제공합니다. 여기에는 디스크 스냅샷을 만들기 전에 사전 스크립트(애플리케이션 정지)를 호출하고 스냅샷이 완료된 후 사후 스크립트(애플리케이션 정지 해제 명령)를 호출하여 애플리케이션을 정상 모드로 되돌리는 작업이 포함됩니다.

전자 사전/사후 스크립트의 제작, 디버깅 및 유지 관리는 어려울 수 있습니다. 이러한 복잡성을 제거하기 위해 Azure Backup은 가장 중요한 데이터베이스에 대한 간소화된 사전/사후 스크립트 환경을 제공하여 최소한의 오버헤드로 애플리케이션 일관된 스냅샷을 얻습니다.

Diagram showing Linux application-consistent snapshot by Azure Backup.

새로운 향상된 사전-사후 스크립트 프레임워크에는 다음과 같은 주요 이점이 있습니다.

  • 이러한 사전-사후 스크립트는 백업 확장과 함께 Azure VM에 직접 설치됩니다. 이렇게 하면 제작을 제거하고 외부 위치에서 다운로드하는 데 도움이 됩니다.
  • GitHub에서 사전-사후 스크립트의 정의와 콘텐츠를 보고 제안 및 변경 내용을 제출할 수도 있습니다. GitHub를 통해 제안 및 변경 내용을 제출할 수도 있으며, 이는 더 넓은 커뮤니티에 도움이 되도록 분류 및 추가됩니다.
  • GitHub를 통해 다른 데이터베이스에 대한 새로운 사전-사후 스크립트를 추가할 수도 있습니다. 이 스크립트는 더 넓은 커뮤니티에 도움이 되도록 분류 및 처리됩니다.
  • 강력한 프레임워크는 사전 스크립트 실행 실패 또는 충돌과 같은 시나리오를 처리하는 데 효율적입니다. 어쨌든 사후 스크립트는 사전 스크립트에서 수행된 모든 변경 내용을 롤백하기 위해 자동으로 실행됩니다.
  • 또한 프레임워크는 외부 도구가 업데이트를 가져오고 모든 메시지/이벤트에 대한 자체 실행 계획을 준비할 수 있는 메시지 채널을 제공합니다.

솔루션 흐름

Diagram showing the solution flow.

지원 매트릭스

다음 데이터베이스 목록은 향상된 프레임워크에서 다룹니다.

필수 조건

연결 세부 정보를 제공하려면 /etc/azure에서 구성 파일인 workload.conf만 수정하면 됩니다. 이를 통해 Azure Backup은 관련 애플리케이션에 연결하고 사전 및 사후 스크립트를 실행할 수 있습니다. 구성 파일에는 다음 매개 변수가 있습니다.

[workload]
# valid values are mysql, oracle
workload_name =
command_path = 
linux_user =
credString = 
ipc_folder = 
timeout =

다음 표는 매개 변수를 설명합니다.

매개 변수 필수 설명
workload_name 여기에는 애플리케이션 일관성 백업이 필요한 데이터베이스의 이름이 포함됩니다. 현재 지원되는 값은 oracle 또는 mysql입니다.
command_path/configuration_path 여기에는 워크로드 바이너리에 대한 경로가 포함됩니다. 워크로드 바이너리가 경로 변수로 설정된 경우 필수 필드가 아닙니다.
linux_user 여기에는 데이터베이스 사용자 로그인에 대한 액세스 권한이 있는 Linux 사용자의 사용자 이름이 포함됩니다. 이 값이 설정되지 않으면 루트가 기본 사용자로 간주됩니다.
credString 데이터베이스에 연결하기 위한 자격 증명 문자열을 나타냅니다. 여기에는 전체 로그인 문자열이 포함됩니다.
ipc_folder 워크로드는 특정 파일 시스템 경로에만 쓸 수 있습니다. 사전 스크립트가 이 폴더 경로에 상태를 쓸 수 있도록 여기에 이 폴더 경로를 제공해야 합니다.
시간 제한 데이터베이스가 정지 상태가 되는 최대 시간 제한입니다. 기본값은 90초입니다. 60초 미만의 값을 설정하지 않는 것이 좋습니다.

참고 항목

JSON 정의는 Azure Backup 서비스가 특정 데이터베이스에 맞게 수정할 수 있는 템플릿입니다. 각 데이터베이스의 구성 파일을 이해하려면 각 데이터베이스의 설명서를 참조하세요.

향상된 사전-사후 스크립트 프레임워크를 사용하기 위한 전반적인 환경은 다음과 같습니다.

  • 데이터베이스 환경 준비
  • 구성 파일 편집
  • VM 백업 트리거
  • 필요에 따라 애플리케이션 일관성 복구 지점에서 VM 또는 디스크/파일을 복원합니다.

데이터베이스 백업 전략 구축

스트리밍 대신 스냅샷 사용

일반적으로 스트리밍 백업(예: 전체, 차등 또는 증분) 및 로그는 데이터베이스 관리자가 백업 전략에서 사용합니다. 다음은 디자인의 핵심 사항 중 일부입니다.

  • 성능 및 비용: 일일 전체 + 로그는 복원 중에 가장 빠르지만 상당한 비용이 듭니다. 차등/증분 스트리밍 백업 유형을 포함하면 비용이 절감되지만 복원 성능에 영향을 미칠 수 있습니다. 그러나 스냅샷은 성능과 비용의 최상의 조합을 제공합니다. 스냅샷은 본질적으로 증분식이므로 백업 시 성능에 미치는 영향이 가장 적고 빠르게 복원되며 비용도 절감됩니다.
  • 데이터베이스/인프라에 미치는 영향: 스트리밍 백업의 성능은 기본 스토리지 IOPS와 스트림이 원격 위치를 대상으로 할 때 사용 가능한 네트워크 대역폭에 따라 다릅니다. 스냅샷에는 이러한 종속성이 없으며 IOPS 및 네트워크 대역폭에 대한 요구가 크게 줄어듭니다.
  • 재사용성: 다양한 스트리밍 백업 유형을 트리거하는 명령은 데이터베이스마다 다릅니다. 따라서 스크립트는 쉽게 재사용할 수 없습니다. 또한 다른 백업 유형을 사용하는 경우 종속성 체인을 평가하여 수명 주기를 유지해야 합니다. 스냅샷의 경우 종속성 체인이 없으므로 스크립트를 작성하기 쉽습니다.
  • 장기 보관: 전체 백업은 독립적으로 이동 및 복구할 수 있으므로 장기 보존에 항상 유용합니다. 그러나 단기 보존이 있는 운영 백업의 경우 스냅샷이 유리합니다.

따라서 장기 보존을 위해 가끔 전체 백업을 포함하는 일일 스냅샷 + 로그가 데이터베이스에 대한 최상의 백업 정책입니다.

로그 백업 전략

향상된 사전-사후 스크립트 프레임워크는 하루에 한 번 백업을 예약하는 Azure VM 백업을 기반으로 합니다. 따라서 RPO가 24시간인 데이터 손실 창은 프로덕션 데이터베이스에 적합하지 않습니다. 이 솔루션은 로그 백업이 명시적으로 스트리밍되는 로그 백업 전략으로 보완됩니다.

Blob의 NFSAFS의 NFS(미리 보기)는 데이터베이스 VM에 직접 볼륨을 쉽게 탑재하고 데이터베이스 클라이언트를 사용하여 로그 백업을 전송하는 데 도움이 됩니다. 데이터 손실 창, 즉 RPO는 로그 백업 빈도에 해당합니다. 또한 데이터베이스 일관성 스냅샷이 있는 후 운영 백업을 위해 정기적인 스트리밍(전체 및 증분)을 트리거할 필요가 없을 수 있으므로 NFS 대상은 고성능일 필요가 없습니다.

참고 항목

향상된 사전 스크립트는 일반적으로 스냅샷을 찍기 위해 데이터베이스를 정지하기 전에 로그 백업 대상으로 전송되는 모든 로그 트랜잭션을 플러시합니다. 따라서 스냅샷은 데이터베이스 일관성이 있고 복구 중에 신뢰할 수 있습니다.

복구 전략

데이터베이스 일관된 스냅샷이 생성되고 로그 백업이 NFS 볼륨으로 스트리밍되면 데이터베이스의 복구 전략에서 Azure VM 백업의 복구 기능을 사용할 수 있습니다. 로그 백업 기능은 데이터베이스 클라이언트를 사용하여 추가로 적용됩니다. 다음은 복구 전략의 몇 가지 옵션입니다.

  • 데이터베이스 일관성 복구 지점에서 새 VM을 만듭니다. VM에는 이미 연결된 로그 탑재 지점이 있어야 합니다. 데이터베이스 클라이언트를 사용하여 지정 시간 복구를 위한 복구 명령을 실행합니다.
  • 데이터베이스 일관성 복구 지점에서 디스크를 만들고 다른 대상 VM에 연결합니다. 그런 다음 로그 대상을 탑재하고 데이터베이스 클라이언트를 사용하여 지정 시간 복구를 위한 복구 명령을 실행합니다.
  • 파일 복구 옵션을 사용하고 스크립트를 생성합니다. 대상 VM에서 스크립트를 실행하고 복구 지점을 iSCSI 디스크로 연결합니다. 그런 다음 데이터베이스 클라이언트를 사용하여 연결된 디스크에서 데이터베이스별 유효성 검사 기능을 실행하고 백업 데이터의 유효성을 검사합니다. 또한 전체 데이터베이스를 복구하는 대신 데이터베이스 클라이언트를 사용하여 몇 개의 테이블/파일을 내보내거나 복구합니다.
  • 교차 지역 복원 기능을 사용하여 지역 재해 중에 보조 쌍을 이루는 지역에서 위의 작업을 수행합니다.

요약

데이터베이스 일관성 스냅샷 + 사용자 지정 솔루션을 사용하여 백업된 로그를 사용하면 Azure VM 백업의 이점을 활용하고 데이터베이스 클라이언트의 기능을 재사용하는 성능과 비용 효율적인 데이터베이스 백업 솔루션을 구축할 수 있습니다.