Microsoft Azure에 대한 SQL Server 관리되는 백업

적용 대상:SQL Server - Windows 전용

Microsoft Azure에 대한 SQL Server Managed Backup은 Microsoft Azure Blob Storage에 대한 SQL Server 백업을 관리하고 자동화합니다. SQL Server가 데이터베이스의 트랜잭션 워크로드에 따라 백업 일정을 결정하도록 허용할 수 있습니다. 또는 고급 옵션을 사용하여 일정을 정의할 수 있습니다. 보존 설정은 백업이 Azure Blob Storage에 저장되는 기간을 결정합니다. Microsoft Azure에 대한 SQL Server Managed Backup은 지정된 보존 기간에 대한 특정 시점 복원을 지원합니다.

SQL Server 2016(13.x)부터 Microsoft Azure에 대한 SQL Server Managed Backup의 절차 및 기본 동작이 변경되었습니다. 자세한 내용은 SQL Server 2014 관리되는 백업 설정을 SQL Server 2016으로 마이그레이션을 참조하세요.

Microsoft Azure 가상 머신에서 실행되는 SQL Server 인스턴스에는 Microsoft Azure에 대한 SQL Server Managed Backup을 사용하는 것이 좋습니다.

이점

현재 여러 데이터베이스에 대한 백업을 자동화하려면 백업 전략을 개발하고, 사용자 지정 코드를 작성하고, 백업을 예약해야 합니다. Microsoft Azure에 SQL Server Managed Backup을 사용하면 보존 기간 및 스토리지 위치만 지정하여 백업 계획을 만들 수 있습니다. 고급 설정을 사용할 수 있지만 필수는 아닙니다. Microsoft Azure에 대한 SQL Server 관리되는 백업은 백업을 예약, 수행 및 유지 관리합니다.

Microsoft Azure에 대한 SQL Server Managed Backup은 데이터베이스 수준 또는 SQL Server 인스턴스 수준에서 구성할 수 있습니다. 인스턴스 수준에서 구성할 때 새 데이터베이스도 자동으로 백업됩니다. 데이터베이스 수준의 설정을 사용하여 개별 사례의 인스턴스 수준 기본값을 재정의할 수 있습니다.

또한, 추가 보안에 대한 백업을 암호화하고, 사용자 지정 일정을 설정하여 백업 실행 시기를 관리할 수 있습니다. SQL Server 백업에 Microsoft Azure Blob Storage를 사용하는 이점에 대한 자세한 내용은 Microsoft Azure Blob Storage를 사용한 SQL Server 백업 및 복원을 참조 하세요.

전제 조건

Microsoft Azure Storage는 SQL Server Managed Backup에서 Microsoft Azure로 백업 파일을 저장하는 데 사용됩니다. 필요한 필수 구성 요소는 다음과 같습니다.

필수 요소 설명
Microsoft Azure 계정 구매 옵션을 탐색하기 전에 평가판으로 Azure를 시작할 수 있습니다.
Azure Storage Account 백업은 Azure Storage 계정과 연결된 Azure Blob Storage에 저장됩니다. 스토리지 계정을 만드는 단계별 지침은 Azure Storage 계정 정보(About Azure Storage Accounts)를 참조 하세요.
Blob 컨테이너 Blob은 컨테이너로 구성됩니다. 백업 파일의 대상 컨테이너를 지정합니다. Azure 관리 포털에서 컨테이너를 만들거나 New-AzureStorageContainerAzure PowerShell 명령을 사용할 수 있습니다.
SAS(공유 액세스 서명) 대상 컨테이너에 대한 액세스는 SAS(공유 액세스 서명)에 의해 제어됩니다. SAS에 대한 개요는 공유 액세스 서명, 1부: SAS 모델 이해를 참조하세요. 코드 또는 New-AzureStorageContainerSASToken PowerShell 명령으로 SAS 토큰을 만들 수 있습니다. 이 프로세스를 간소화하는 PowerShell 스크립트는 PowerShell을 사용하여 Azure Storage에서 SAS(공유 액세스 서명) 토큰을 사용하여 SQL 자격 증명 만들기 간소화를 참조하세요. SAS 토큰은 Microsoft Azure에 대한 SQL Server Managed Backup과 함께 사용하기 위해 SQL 자격 증명 에 저장할 수 있습니다.
SQL Server 에이전트 SQL Server 에이전트는 Microsoft Azure에 대한 SQL Server Managed Backup이 작동하려면 실행 중이어야 합니다. 시작 옵션을 자동으로 설정하는 것이 좋습니다.

구성 요소

Transact-SQL은 Microsoft Azure에 대한 SQL Server Managed Backup과 상호 작용하는 기본 인터페이스입니다. 시스템 저장 프로시저는 Microsoft Azure에 대한 SQL Server Managed Backup을 사용하도록 설정, 구성 및 모니터링하는 데 사용됩니다. 시스템 함수는 기존 구성 설정, 매개 변수 값 및 백업 파일 정보를 검색하는 데 사용됩니다. 확장 이벤트는 오류 및 경고를 노출하는 데 사용됩니다. 경고 메커니즘은 SQL 에이전트 작업 및 SQL Server 정책 기반 관리를 통해 사용하도록 설정됩니다. 다음은 Microsoft Azure에 대한 SQL Server Managed Backup과 관련된 개체 목록 및 해당 기능에 대한 설명입니다.

PowerShell cmdlet을 사용하여 Microsoft Azure에 대한 SQL Server Managed Backup을 구성할 수도 있습니다. SQL Server Management Studio는 데이터베이스 복원 작업을 사용하여 SQL Server Managed Backup에서 만든 백업을 Microsoft Azure로 복원하도록 지원합니다.

시스템 개체 설명
MSDB SQL Server Managed Backup에서 만든 모든 백업에 대한 메타데이터, 백업 기록을 Microsoft Azure에 저장합니다.
managed_backup.sp_backup_config_basic(Transact-SQL) Microsoft Azure에 SQL Server Managed Backup을 사용하도록 설정합니다.
managed_backup.sp_backup_config_advanced(Transact-SQL) 암호화와 같은 Microsoft Azure에 대한 SQL Server Managed Backup에 대한 고급 설정을 구성합니다.
managed_backup.sp_backup_config_schedule(Transact-SQL) Microsoft Azure에 대한 SQL Server Managed Backup에 대한 사용자 지정 일정을 만듭니다.
managed_backup.sp_ backup_master_switch(Transact-SQL) SQL Server Managed Backup을 일시 중지하고 Microsoft Azure로 다시 시작합니다.
managed_backup.sp_set_parameter(Transact-SQL) Microsoft Azure에 대한 SQL Server Managed Backup에 대한 모니터링을 사용하도록 설정하고 구성합니다. 예: 확장 이벤트 사용, 알림에 대한 메일 설정
managed_backup.sp_backup_on_demand(Transact-SQL) 로그 체인을 중단하지 않고 Microsoft Azure에 SQL Server Managed Backup을 사용하도록 설정된 데이터베이스에 대한 임시 백업을 수행합니다.
managed_backup.fn_backup_db_config(Transact-SQL) 현재 SQL Server Managed Backup을 Microsoft Azure 상태 및 데이터베이스 또는 인스턴스의 모든 데이터베이스에 대한 구성 값으로 반환합니다.
managed_backup.fn_is_master_switch_on(Transact-SQL) 마스터 스위치의 상태를 반환합니다.
managed_backup.sp_get_backup_diagnostics(Transact-SQL) 확장 이벤트에 기록된 이벤트를 반환합니다.
managed_backup.fn_get_parameter(Transact-SQL) 경고에 대한 모니터링 및 메일 설정과 같은 백업 시스템 설정의 현재 값을 반환합니다.
managed_backup.fn_available_backups(Transact-SQL) 지정된 데이터베이스 또는 인스턴스의 모든 데이터베이스에 대해 사용 가능한 백업을 검색합니다.
managed_backup.fn_get_current_xevent_settings(Transact-SQL) 현재 확장 이벤트 설정을 반환합니다.
managed_backup.fn_get_health_status(Transact-SQL) 지정된 기간 동안 확장 이벤트에서 기록된 오류의 집계된 수를 반환합니다.

백업 전략

백업 일정 예약

시스템 저장 프로시저 managed_backup.sp_backup_config_schedule(Transact-SQL)을 사용하여 사용자 지정 백업 일정을 지정할 수 있습니다. 사용자 지정 일정을 지정하지 않으면 예약된 백업 유형과 백업 빈도는 데이터베이스의 워크로드에 따라 결정됩니다. 보존 기간 설정은 백업 파일을 스토리지에 보존해야 하는 기간과 보존 기간 내의 특정 시점으로 데이터베이스를 복구하는 기능을 결정하는 데 사용됩니다.

백업 파일 명명 규칙

Microsoft Azure에 대한 SQL Server Managed Backup은 사용자가 지정한 컨테이너를 사용하므로 컨테이너의 이름을 제어할 수 있습니다. 백업 파일의 경우 가용성이 없는 데이터베이스의 이름은 데이터베이스 이름의 처음 40자, '-'가 없는 데이터베이스 GUID 및 타임스탬프를 사용하여 만들어집니다. 밑줄 문자는 구분 기호로 세그먼트 사이에 삽입됩니다. .bak 파일 확장명은 전체 백업 및 로그 백업에 .log에 사용됩니다. 가용성 그룹 데이터베이스의 경우 위에서 설명한 파일 명명 규칙 외에도 가용성 그룹 데이터베이스 GUID는 데이터베이스 이름의 40자 다음에 추가됩니다. 가용성 그룹 데이터베이스 GUID 값은 sys.databases의 group_database_id 값입니다.

전체 데이터베이스 백업

Microsoft Azure에 대한 SQL Server 관리되는 백업 에이전트는 다음 중 어느 것이라도 해당하는 경우 전체 데이터베이스 백업을 예약합니다.

  • 데이터베이스는 처음으로 사용하도록 설정된 Microsoft Azure에 대한 SQL Server Managed Backup이거나, 인스턴스 수준에서 기본 설정으로 Microsoft Azure에 대한 SQL Server Managed Backup을 사용하도록 설정된 경우입니다.

  • 마지막 전체 데이터베이스 백업 이후의 로그 증가는 1GB보다 크거나 같습니다.

  • 마지막 전체 데이터베이스 백업 이후 1주일의 최대 시간 간격이 지났습니다.

  • 로그 체인이 끊어졌습니다. Microsoft Azure에 대한 SQL Server Managed Backup은 백업 파일의 첫 번째 및 마지막 LSN을 비교하여 로그 체인이 그대로 유지되는지 주기적으로 확인합니다. 어떤 이유로든 로그 체인에 중단이 있는 경우 Microsoft Azure에 대한 SQL Server Managed Backup은 전체 데이터베이스 백업을 예약합니다. 로그 체인 중단의 가장 일반적인 이유는 Transact-SQL을 사용하거나 SQL Server Management Studio의 Backup 작업을 통해 실행된 백업 명령일 수 있습니다. 그 외에 실수로 백업 로그 파일을 삭제하거나 백업을 덮어쓰는 경우가 있을 수 있습니다.

트랜잭션 로그 백업

다음 중 어느 것이라도 해당하는 경우 Microsoft Azure에 대한 SQL Server Managed Backup은 로그 백업을 예약합니다.

  • 찾을 수 있는 로그 백업 기록이 없습니다. 이는 일반적으로 Microsoft Azure에 대한 SQL Server 관리형 백업을 처음으로 사용하도록 설정한 경우에 적용됩니다.

  • 사용된 트랜잭션 로그 공간이 5MB 이상인 경우

  • 마지막 로그 백업에 도달한 후 2시간의 최대 시간 간격입니다.

  • 트랜잭션 로그 백업이 전체 데이터베이스 백업보다 뒤쳐지는 경우 목표는 전체 백업보다 먼저 로그 체인을 유지하는 것입니다.

보존 기간 설정

백업을 사용하도록 설정하는 경우 보존 기간을 일 단위로 설정해야 합니다. 최소 기간은 1일이고 최대 기간은 90일입니다.

보존 기간 설정에 따라 Microsoft Azure에 대한 SQL Server Managed Backup은 지정된 시간에 특정 시점으로 복구하는 기능을 평가하여 유지할 백업 파일을 결정하고 삭제할 백업 파일을 식별합니다. 백업의 backup_finish_date 보존 기간 설정에 지정된 시간을 확인하고 일치시킬 때 사용됩니다.

중요 고려 사항

데이터베이스의 경우 기존 전체 데이터베이스 백업 작업이 실행 중인 경우 Microsoft Azure에 대한 SQL Server Managed Backup은 동일한 데이터베이스에 대해 다른 전체 데이터베이스 백업을 수행하기 전에 현재 작업이 완료될 때까지 기다립니다. 마찬가지로 한 번에 하나의 트랜잭션 로그 백업만 실행할 수 있습니다. 그러나 전체 데이터베이스 백업 및 트랜잭션 로그 백업은 동시에 실행할 수 있습니다. 오류는 확장 이벤트로 기록됩니다.

10개 이상의 동시 전체 데이터베이스 백업이 예약된 경우 확장 이벤트의 디버그 채널을 통해 경고가 발생합니다. 그런 다음 Microsoft Azure에 대한 SQL Server Managed Backup은 모든 백업이 예약되고 완료될 때까지 백업이 필요한 나머지 데이터베이스에 대한 우선 순위 큐를 유지 관리합니다.

참고 항목

프록시 서버에서는 SQL Server 관리형 백업이 지원되지 않습니다.

지원 가능성

다음 지원 제한 사항 및 고려 사항은 SQL Server와 관련이 있습니다.

  • 마스터, 모델msdb 시스템 데이터베이스의 백업이 지원됩니다. tempdb백업은 지원되지 않습니다.

  • 모든 복구 모델(전체, 대량 로그 및 단순)이 지원됩니다.

  • Microsoft Azure 에이전트에 대한 SQL Server Managed Backup은 데이터베이스 전체 및 로그 백업만 지원합니다. 파일 백업 자동화는 지원되지 않습니다.

  • Microsoft Azure Blob Storage는 유일하게 지원되는 백업 스토리지 옵션입니다. 디스크 또는 테이프에 대한 백업은 지원되지 않습니다.

  • Microsoft Azure에 대한 SQL Server 관리되는 백업은 Blob을 차단하는 백업 기능을 사용합니다. 블록 Blob의 최대 크기는 200GB입니다. 그러나 스트라이프를 활용하여 개별 백업의 최대 크기는 최대 12TB가 될 수 있습니다. 백업 요구 사항이 이 값을 초과하는 경우 Microsoft Azure에 SQL Server Managed Backup을 설정하기 전에 압축을 사용하고 백업 파일 크기를 테스트합니다. 로컬 디스크에 백업하거나 BACKUP TO URL Transact-SQL 문을 사용하여 Microsoft Azure Storage에 수동으로 백업하여 테스트할 수 있습니다. 자세한 내용은 URL에 대한 SQL Server Backup을 참조하세요.

  • Microsoft Azure에 대한 SQL Server Managed Backup은 백업, 고가용성 또는 재해 복구를 지원하는 다른 기술로 구성된 경우 몇 가지 제한 사항이 있을 수 있습니다.

  • 가용성 그룹의 데이터베이스 백업은 copy_only 백업이 됩니다.

참고 항목