다음을 통해 공유


Azure VM의 SQL Server를 위한 자동화된 백업

적용 대상: Azure VM 기반 SQL Server

자동화된 백업은 SQL Server 2016 이상 Standard, Enterprise 또는 Developer 에디션부터 시작하여 SQL Server on Azure VM의 모든 기존 및 새 데이터베이스에 대해 Microsoft Azure에 대한 관리형 백업을 자동으로 구성합니다. 이를 통해 지속형 Azure Blob Storage를 활용하는 일반 데이터베이스 백업을 구성할 수 있습니다.

필수 조건

Azure VM의 SQL Server에 대해 자동화된 백업을 사용하려면 다음이 필요합니다.

  • SQL IaaS 에이전트 확장으로 등록된 Azure VM의 SQL Server입니다.
  • Windows Server 2012 R2 이상.
  • SQL Server 2016 이상. SQL Server 2014의 경우, SQL Server 2014용 자동화된 백업을 참조하세요.
  • 데이터베이스 구성:
    • 대상 사용자 데이터베이스는 전체 복구 모델을 사용해야 합니다. 시스템 데이터베이스는 전체 복구 모델을 사용할 필요가 없습니다. 그러나 model 또는 msdb에 대해 로그 백업을 수행해야 할 경우 전체 복구 모델을 사용해야 합니다. 전체 복구 모델이 백업에 미치는 영향에 대한 자세한 내용은 전체 복구 모델에서의 백업을 참조하세요.
    • SQL Server VM이 SQL IaaS 에이전트 익스텐션에 등록되었으며 자동화된 백업 기능이 사용하도록 설정되었습니다. 자동화된 백업은 익스텐션에 의존하므로 기본 인스턴스 또는 단일 명명된 인스턴스의 대상 데이터베이스에서만 지원됩니다. 기본 인스턴스가 없고 명명된 인스턴스가 여러 개인 경우 SQL IaaS 에이전트 익스텐션이 실패하고 자동화된 백업이 작동하지 않습니다.
    • 보조 Always On 가용성 그룹 복제본에서 자동 백업을 실행하는 경우 백업이 성공하려면 복제본이 읽기 가능해야 합니다.

설정

다음 표에서는 자동화된 Backup에 대해 구성할 수 있는 옵션을 설명합니다. 실제 구성 단계는 Azure 포털 또는 Azure Windows PowerShell 명령 사용 여부에 따라 달라집니다. 자동화된 백업은 기본적으로 백업 압축을 사용하며 사용 중지할 수 없습니다.

기본 설정

설정 범위(기본값) 설명
자동화된 Backup 사용/사용 안 함(사용 안 함) SQL Server 2016 이상 Developer, Standard 또는 Enterprise를 실행하는 Azure VM에 대해 자동화된 백업을 사용하거나 사용하지 않도록 설정합니다.
보존 기간 1-90일(90일) 서비스에서 백업 메타데이터를 msdb에 보관하는 일 수입니다. 백업의 보존 기간이 만료된 후 msdb에서 메타데이터가 삭제되지만 스토리지 컨테이너에서는 파일이 삭제되지 않습니다. 스토리지 계정에 대한 수명 주기 관리 정책을 사용하여 비즈니스 요구 사항에 따라 백업 보존과 비용 관리의 균형을 맞출 수 있습니다.
Storage 계정 Azure Storage 계정 Cloud Shell은 Azure File Storage를 활용하여 세션 간에 파일을 유지합니다. 모든 백업 파일을 저장하려면 컨테이너를 이 위치에 만듭니다. 백업 파일 명명 규칙에는 날짜, 시간 및 데이터베이스 GUID가 포함됩니다.
암호화 사용/사용 안 함(사용 안 함) 백업 암호화를 사용하거나 사용하지 않도록 설정합니다. 백업 암호화를 사용하면 백업을 복원하는 데 사용되는 인증서가 동일한 명명 규칙을 사용하여 동일한 automaticbackup 컨테이너에 지정한 스토리지 계정에 배치됩니다. 암호가 변경되면 해당 암호를 사용하여 새 인증서가 생성되지만 이전 인증서도 이전 백업의 복원을 위해 유지됩니다.
암호 암호 텍스트 암호화 키의 암호입니다. 이 암호는 암호화를 사용하는 경우에만 필요합니다. 암호화된 백업을 복원하기 위해서는 올바른 암호 및 백업을 수행할 때 사용한 인증서가 있어야 합니다.

고급 설정

설정 범위(기본값) Description
시스템 데이터베이스 Backup 사용/사용 안 함(사용 안 함) 이 기능을 사용하도록 설정하면 시스템 데이터베이스인 master, msdbmodel도 백업합니다. msdbmodel 데이터베이스의 경우 로그 백업을 수행하려면 전체 복구 모델에 있는지 확인하십시오. 로그 백업은 master에 대해 수행되지 않으며 tempdb에 대해서는 백업이 수행되지 않습니다.
Backup 일정 수동/자동(자동) 기본적으로 백업 일정은 로그 증가에 따라 자동으로 결정됩니다. 수동 백업 일정을 사용하면 백업에 대한 기간을 지정할 수 있습니다. 이 경우 백업은 지정된 빈도로, 지정된 날의 지정된 기간 동안에만 수행됩니다.
전체 백업 빈도 매일/매주 전체 백업의 빈도입니다. 두 경우 모두 전체 백업은 예약된 다음 기간 동안 시작됩니다. 매주 옵션을 선택하면 백업은 모든 데이터베이스가 성공적으로 백업될 때까지 여러 날에 걸쳐 수행될 수 있습니다.
전체 백업 시작 시간 00:00 – 23:00(01:00) 전체 백업이 수행될 수 있는 지정된 날의 시작 시간입니다.
전체 백업 시간 기간 1-23시간(1시간) 전체 백업이 수행될 수 있는 지정된 날의 시간 기간입니다.
로그 백업 빈도 5-60분(60분) 로그 백업의 빈도입니다.

참고 항목

자동 백업 일정은 로그 증가를 기준으로 백업을 실행합니다. 데이터베이스가 단순 복구 모드인 경우, 자동 백업 사용을 권장하지 않습니다.

전체 백업 빈도 이해

매일 및 매주 전체 백업 간 차이를 이해하는 것은 중요합니다. 다음 두 가지 예제 시나리오를 고려하세요.

시나리오 1: 주간 백업

규모가 큰 데이터베이스를 많이 포함하는 SQL Server VM이 있습니다.

월요일에 다음 설정으로 자동화된 백업을 사용하도록 설정합니다.

  • 백업 일정: 수동
  • 전체 백업 빈도: 매주
  • 전체 백업 시작 시간: 01:00
  • 전체 백업 기간: 1시간

즉, 사용 가능한 다음 백업 기간은 화요일 오전 1시부터 1시간 동안입니다. 해당 시간에 자동화된 Backup은 한 번에 하나씩 데이터베이스를 백업하기 시작합니다. 이 시나리오에서는 처음 두 데이터베이스에 대해 전체 백업이 완료될 정도로 데이터베이스가 큽니다. 그러나 1시간 후에 모든 데이터베이스가 백업되지는 않았습니다.

이 경우 자동화된 Backup은 다음 날인 수요일에 오전 1시부터 1시간 동안 나머지 데이터베이스를 백업하기 시작합니다. 해당 시간에 모든 데이터베이스가 백업되지는 않을 경우 다음 날 같은 시간에 다시 시도됩니다. 이 과정은 모든 데이터베이스가 성공적으로 백업될 때까지 계속됩니다.

다시 화요일이 되면 자동화된 백업이 모든 데이터베이스를 다시 백업하기 시작합니다.

이 시나리오에서는 자동화된 Backup이 지정된 기간 내에만 작동하며 각 데이터베이스가 매주 한 번 백업될 것임을 보여줍니다. 또한 하루에 모든 백업을 완료할 수 없는 경우 여러 날에 걸쳐 백업이 진행될 수 있다는 사실도 보여 줍니다.

시나리오 2: 매일 백업

규모가 큰 데이터베이스를 많이 포함하는 SQL Server VM이 있습니다.

월요일에 다음 설정으로 자동화된 백업을 사용하도록 설정합니다.

  • 백업 일정: 수동
  • 전체 백업 빈도: 매일
  • 전체 백업 시작 시간: 22:00
  • 전체 백업 기간: 6시간

즉, 사용 가능한 다음 백업 기간은 월요일 오후 10시부터 6시간 동안입니다. 해당 시간에 자동화된 Backup은 한 번에 하나씩 데이터베이스를 백업하기 시작합니다.

그런 다음, 화요일 오후 10부터 6시간 동안 모든 데이터베이스의 전체 백업이 다시 시작됩니다.

중요

백업은 각 간격 동안 순차적으로 수행됩니다. 데이터베이스 수가 많은 인스턴스의 경우 모든 백업을 수용하기에 충분한 시간으로 백업 간격을 예약합니다. 주어진 간격 내에 백업을 완료할 수 없는 경우 일부 백업은 건너뛸 수 있습니다. 또한 단일 데이터베이스에 대한 백업 간의 시간은 구성된 백업 간격 시간보다 높을 수 있으며, 이로 인해 RPO(복원 지점 목표)에 좋지 않은 영향을 줄 수 있습니다.

새 VM 구성

Azure Portal을 사용하여 Resource Manager 배포 모델에서 새 SQL Server 2016 이상 머신을 만들 때 자동화된 백업을 구성합니다.

SQL Server 설정 탭의 자동화된 백업 아래에서 사용을 선택합니다. 자동화된 백업을 사용하면 다음 설정을 구성할 수 있습니다.

  • 백업 보존 기간(최대 90일)
  • 백업에 사용할 스토리지 계정 및 스토리지 컨테이너
  • 백업을 위한 암호화 옵션 및 암호
  • 시스템 데이터베이스 Backup
  • 백업 일정 구성

백업을 암호화하려면 사용을 선택합니다. 그 다음 암호를 지정합니다. Azure에서는 백업을 암호화할 인증서를 만들고 지정된 암호를 사용하여 인증서를 보호합니다.

저장 컨테이너 선택을 선택하여 백업을 저장할 컨테이너를 지정합니다.

기본적으로 일정은 자동으로 설정되지만 백업 빈도, 백업 시간 기간 및 로그 백업 빈도를 분 단위로 구성할 수 있는 수동을 선택하여 고유한 일정을 만들 수 있습니다.

다음 Azure Portal 스크린샷은 새 SQL Server VM을 만들 때 자동화된 백업 설정을 보여줍니다.

Azure Portal의 자동화된 백업 구성 스크린샷입니다.

기존 VM 구성

기존 SQL Server 가상 머신의 경우 SQL 가상 머신 리소스로 이동하고 백업을 선택하여 자동화된 백업을 구성합니다.

사용을 선택하여 자동화된 백업 설정을 구성합니다.

보존 기간(최대 90일), 백업을 저장할 스토리지 계정의 컨테이너, 암호화 및 백업 일정을 구성할 수 있습니다. 기본적으로 일정은 자동화됩니다.

포털의 기존 VM에 대한 자동화된 백업 스크린샷입니다.

고유한 백업 일정을 설정하려면 수동을 선택하고 백업 빈도, 시스템 데이터베이스의 백업 여부 및 트랜잭션 로그 백업 간격(분)을 구성합니다.

고유한 백업 일정을 구성하기 위해 수동을 선택하는 스크린샷입니다.

완료되면 백업 설정 페이지 하단의 적용 단추를 선택하여 변경 사항을 저장합니다.

처음으로 자동화된 백업을 사용 설정할 경우 Azure에서 백그라운드로 SQL Server IaaS 에이전트를 구성합니다. 이 시간 동안에는 구성된 자동화된 Backup이 Azure Portal에 표시되지 않을 수 있습니다. 에이전트가 설치 및 구성될 때까지 몇 분 정도 기다리세요. 그 후 Azure Portal에는 새 설정이 반영됩니다.

PowerShell을 사용하여 구성

PowerShell을 사용하여 자동화된 Backup을 구성할 수도 있습니다. 시작하기 전에 다음을 수행해야 합니다.

참고

이 문서에서는 Azure와 상호 작용하는 데 권장되는 PowerShell 모듈인 Azure Az PowerShell 모듈을 사용합니다. Az PowerShell 모듈을 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

SQL Server IaaS 확장 설치

Azure Portal에서 SQL Server 가상 머신을 프로비전한 경우 SQL Server IaaS 확장이 이미 설치되어 있을 것입니다. Get-AzVM 명령을 호출하고 Extensions 속성을 검사하여 VM에 대해 해당 익스텐션이 설치되어 있는지 확인할 수 있습니다.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"

(Get-AzVM -Name $vmname -ResourceGroupName $resourcegroupname).Extensions 

SQL Server IaaS 에이전트 확장이 설치되어 있는 경우 "SqlIaaSAgent" 또는 "SQLIaaSExtension"으로 표시됩니다. 확장의 ProvisioningState에도 "Succeeded"가 표시됩니다.

설치되지 않았거나 프로비전되지 못한 경우 다음 명령을 사용하여 설치할 수 있습니다. VM 이름 및 리소스 그룹 외에, VM이 있는 하위 지역( $region)도 지정해야 합니다.

$region = "EASTUS2"
Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region 

현재 설정 확인

프로비저닝 동안 자동화된 백업을 사용하도록 설정한 경우 PowerShell을 사용하여 현재 구성을 확인할 수 있습니다. Get-AzVMSqlServerExtension 명령을 실행하고 AutoBackupSettings 속성을 검사합니다.

(Get-AzVMSqlServerExtension -VMName $vmname -ResourceGroupName $resourcegroupname).AutoBackupSettings

다음과 유사한 결과가 표시됩니다.

Enable                      : True
EnableEncryption            : False
RetentionPeriod             : 30
StorageUrl                  : https://test.blob.core.windows.net/
StorageAccessKey            :  
Password                    : 
BackupSystemDbs             : False
BackupScheduleType          : Manual
FullBackupFrequency         : WEEKLY
FullBackupStartTime         : 2
FullBackupWindowHours       : 2
LogBackupFrequency          : 60

출력에 EnableFalse로 설정되어 표시되면 자동화된 백업을 사용하도록 설정해야 합니다. 다행히도 자동화된 Backup도 같은 방식으로 사용하도록 설정하고 구성할 수 있습니다. 이 정보에 대해서는 다음 섹션을 참조하세요.

참고

변경을 수행한 후에 설정을 바로 확인하면 이전 구성 값을 다시 가져올 수 있습니다. 몇 분 정도 기다렸다가 설정을 다시 확인하여 변경 내용이 적용되었는지 알아봅니다.

자동화된 Backup 구성

언제든지 PowerShell을 사용하여 자동화된 Backup을 사용하도록 설정하고 해당 구성 및 동작을 수정할 수 있습니다.

먼저 백업 파일에 대한 스토리지 계정을 선택하거나 만듭니다. 다음 스크립트는 스토리지 계정을 선택하거나 없으면 새로 만듭니다.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

참고 항목

자동화된 백업을 사용할 경우 Premium Storage에 백업을 저장할 수 없지만 Premium Storage를 사용하는 VM 디스크에서 백업을 가져올 수 있습니다.

백업을 위해 스토리지 계정의 사용자 지정 컨테이너를 사용하려면 다음 스크립트를 사용하여 컨테이너를 확인하거나 컨테이너가 없는 경우 만듭니다.

$storage_container = "backupcontainer"

New-AzStorageContainer -Name $storage_container -Context $storage.Context

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

다음으로 스토리지 계정에 대한 액세스 키를 가져오려면 다음 스크립트를 사용합니다.

$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

그런 다음 Update-AzSqlVM 명령을 통해 자동화된 백업 설정을 사용하도록 지정하고 구성하여 Azure Storage 계정에 백업을 저장합니다. 이 예제에서는 백업이 10일 동안 보관되도록 설정되어 있습니다. 시스템 데이터베이스 백업이 사용되도록 설정됩니다. 전체 백업은 매주 토요일(매주) 20:00부터 2시간 동안 예정되어 있습니다. 로그 백업은 30분 간격으로 예약됩니다.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly 
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

SQL Server IaaS 에이전트를 설치하고 구성하는 데는 몇 분 정도 걸릴 수 있습니다.

암호화를 사용하려면 -AutoBackupSettingPassword 매개 변수에 대한 암호(보안 문자열)와 함께 -AutoBackupSettingEnableEncryption 매개 변수를 전달하도록 이전 스크립트를 수정합니다. 다음 스크립트를 사용하면 이전 예제의 자동화된 Backup 설정을 사용하고 암호화를 추가할 수 있습니다.

$password = "r@ndom Va1ue"
$encryptionpassword = $password | ConvertTo-SecureString -AsPlainText -Force  

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType Manual `
-AutoBackupSettingFullBackupFrequency Weekly `
-AutoBackupSettingDaysOfWeek Saturday `
-AutoBackupSettingFullBackupStartTime 20 `
-AutoBackupSettingFullBackupWindowHour 2 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingLogBackupFrequency 30 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

설정이 적용되었는지 확인하려면 자동화된 Backup 구성을 확인합니다.

자동화된 Backup 사용 안 함

자동화된 백업을 사용하지 않도록 설정하려면 Update-AzSqlVM 명령에서 -AutoBackupSettingEnable 매개 변수를 $false로 설정하고 동일한 스크립트를 실행합니다. 값을 $false로 설정하면 기능이 사용 중지됩니다. 설치와 마찬가지로 자동화된 Backup을 사용하지 않도록 설정하는 데도 몇 분 정도 걸릴 수 있습니다.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable:$false

예제 스크립트

다음 스크립트는 VM에 대해 자동화된 Backup을 사용하도록 설정하고 구성하기 위해 사용자 지정할 수 있는 변수 집합을 제공합니다. 사용자의 경우 요구 사항에 따라 스크립트를 사용자 지정해야 할 수 있습니다. 예를 들어 시스템 데이터베이스의 백업을 사용하지 않도록 설정하거나 암호화를 사용하도록 설정하려는 경우 변경해야 할 수 있습니다.

$vmname = "yourvmname"
$resourcegroupname = "yourresourcegroupname"
$region = "Azure region name such as EASTUS2"
$storage_accountname = "yourstorageaccount"
$storage_url = "https://yourstorageaccount.blob.core.windows.net/"
$retentionperiod = 10
$backupscheduletype = "Manual"
$fullbackupfrequency = "Weekly"
$fullbackupdayofweek = "Saturday"
$fullbackupstarthour = "20"
$fullbackupwindow = "2"
$logbackupfrequency = "30"

# ResourceGroupName is the resource group which is hosting the VM where you are deploying the SQL Server IaaS Extension 

Set-AzVMSqlServerExtension -VMName $vmname `
    -ResourceGroupName $resourcegroupname -Name "SQLIaasExtension" `
    -Version "2.0" -Location $region

# Creates/use a storage account to store the backups

$storage = Get-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -ErrorAction SilentlyContinue
If (-Not $storage)
    { $storage = New-AzStorageAccount -ResourceGroupName $resourcegroupname `
    -Name $storage_accountname -SkuName Standard_GRS -Location $region }

# Creates/uses a custom storage account container

$storage_container = "yourbackupcontainer"

if (!(Get-AzStorageAccount -StorageAccountName $storage_accountname -ResourceGroupName $resourcegroupname | Get-AzStorageContainer | Where-Object { $_.Name -eq $storage_container })){ `
	New-AzStorageContainer -Name $storage_container -Context $storage.Context `
} `
 else `
{ `
	Write-Warning "Container $storage_container already exists." `
}

# Get storage account access key
$accesskey = (Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname  -Name $storage_accountname)[0].value

# Configure Automated Backup settings

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingBackupScheduleType $backupscheduletype `
-AutoBackupSettingFullBackupFrequency $fullbackupfrequency `
-AutoBackupSettingDaysOfWeek $fullbackupdayofweek `
-AutoBackupSettingFullBackupStartTime $fullbackupstarthour `
-AutoBackupSettingFullBackupWindowHour $fullbackupwindow `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingLogBackupFrequency $logbackupfrequency `
-AutoBackupSettingStorageContainerName $storage_container `
-AutoBackupSettingBackupSystemDb

암호화 인증서를 사용하여 백업

백업을 암호화하기로 결정한 경우 암호화 인증서가 생성되어 백업과 동일한 스토리지 계정에 저장됩니다. 이 시나리오에서는 백업 암호화 및 암호 해독에 사용되는 암호화 인증서를 보호하는 데 사용할 암호를 입력해야 합니다. 이렇게 하면 이 기능의 구성 외에 백업에 대해 걱정할 필요가 없으며 백업이 안전하다는 것을 신뢰할 수 있습니다.

백업 암호화를 사용하는 경우 데이터베이스 복원 가능성을 보장하기 위해 암호화 인증서를 성공적으로 만들고 업로드했는지 확인하는 것이 좋습니다. 데이터베이스를 즉시 만들고 새로 생성된 컨테이너에 암호화 인증서 및 데이터가 제대로 백업되었는지 확인하면 됩니다. 이렇게 하면 모든 항목이 올바르게 구성되었으며 변칙이 발생하지 않은 것으로 표시됩니다.

어떤 이유로 인증서를 업로드하지 못한 경우 인증서 관리자를 사용하여 인증서를 내보내고 저장할 수 있습니다. 그러나 VM이 다운된 경우 인증서에 액세스할 수 없으므로 동일한 VM에 저장하지는 않습니다. 자동화된 백업 구성을 변경하거나 만든 후 인증서가 제대로 백업되었는지 확인하려면 VM에서 이벤트 로그를 확인할 수 있으며, 실패하면 다음 오류 메시지가 표시됩니다.

VM의 이벤트 로그에 표시된 오류 메시지의 스크린샷입니다.

인증서가 올바르게 백업된 경우 이벤트 로그에 다음 메시지가 표시됩니다.

이벤트 로그에서 암호화 인증서의 성공적인 백업 스크린샷입니다.

일반적으로 백업 상태를 수시로 확인하는 것이 좋습니다. 백업을 복원하려면 다음을 수행해야 합니다.

  1. 암호화 인증서가 백업되었는지 확인하고 암호를 기억합니다. 이렇게 하지 않으면 백업의 암호를 해독하고 복원할 수 없습니다. 어떤 이유로 인증서가 제대로 백업되지 않은 경우 다음 T-SQL 쿼리를 실행하여 수동으로 백업할 수 있습니다.

    BACKUP MASTER KEY TO FILE = <file_path> ENCRYPTION BY PASSWORD = <password>
    BACKUP CERTIFICATE [AutoBackup_Certificate] TO FILE = <file_path> WITH PRIVATE KEY (FILE = <file_path>, ENCRYPTION BY PASSWORD = <password>)
    
  2. 1개 이상의 전체 백업과 함께 백업 파일이 업로드되는지 확인합니다. 실수가 발생할 수 있으므로 VM을 삭제하기 전이나 VM이 손상된 경우를 대비하여 항상 하나 이상의 전체 백업이 있는지 점검하고 계속 데이터에 액세스할 수 있는지 확인해야 합니다. VM의 데이터 디스크를 삭제하기 전에 스토리지의 백업이 안전하고 복구 가능한지 확인해야 합니다.

모니터링

SQL Server 2016 이상에서 자동화된 백업을 모니터링하려면 두 가지 기본 옵션이 있습니다. 자동화된 백업은 SQL Server 관리 백업 기능을 사용하므로 동일한 모니터링 기술이 둘 다에 적용됩니다.

먼저 msdb.managed_backup.sp_get_backup_diagnostics를 호출하여 상태를 폴링할 수 있습니다. 또는 msdb.managed_backup.fn_get_health_status 테이블 값 함수를 쿼리합니다.

다른 옵션은 기본 제공 데이터베이스 메일 기능을 알림에 활용하는 것입니다.

  1. msdb.managed_backup.sp_set_parameter 저장 프로시저를 호출하여 SSMBackup2WANotificationEmailIds 매개 변수에 이메일 주소를 할당합니다.
  2. SendGrid가 Azure VM에서 이메일을 보낼 수 있도록 설정합니다.
  3. SMTP 서버 및 사용자 이름을 사용하여 데이터베이스 메일을 구성합니다. SQL Server Management Studio 또는 Transact-SQL 명령을 통해 데이터베이스 메일을 구성할 수 있습니다. 자세한 내용은 데이터베이스 메일을 참조하세요.
  4. 데이터베이스 메일을 사용하도록 SQL Server 에이전트를 구성합니다.
  5. 로컬 VM 방화벽과 VM에 대한 네트워크 보안 그룹 둘 다에서 SMTP 포트가 허용되는지 확인합니다.

알려진 문제

자동화된 백업 기능을 사용할 때 다음과 같은 알려진 문제를 고려하십시오.

Azure Portal에서 자동화된 백업을 사용하도록 설정할 수 없음

다음 표에는 Azure Portal에서 자동화된 백업을 사용하도록 설정하는 데 문제가 있는 경우 가능한 해결 방법이 나열되어 있습니다.

증상 솔루션
IaaS 익스텐션이 실패 상태인 경우 자동화된 백업을 사용하지 않도록 설정하지 못함 실패 상태인 경우 SQL IaaS 에이전트 익스텐션을 복구합니다.
데이터베이스가 수백 개 이상 있는 경우 자동화된 백업을 사용하도록 설정하지 못함 이는 SQL IaaS 에이전트 익스텐션의 알려진 제한 사항입니다. 이 문제를 해결하려면 SQL IaaS 에이전트 익스텐션을 사용하여 자동화된 백업을 구성하는 대신 관리되는 백업을 직접 사용합니다.
메타데이터 문제로 인해 자동화된 백업을 사용하도록 설정하지 못함 SQL IaaS 에이전트 서비스를 중지합니다. T-SQL 명령 use msdb exec autoadmin_metadata_delete를 실행합니다. SQL IaaS 에이전트 서비스를 시작하고 Azure Portal에서 자동화된 백업을 다시 사용하도록 설정해 봅니다.
FCI에 대한 자동화된 백업 사용 프라이빗 엔드포인트를 사용한 백업은 지원되지 않습니다. 백업에 전체 스토리지 계정 URI를 사용합니다.
자동화된 백업을 사용하여 여러 SQL 인스턴스 백업 자동화된 백업은 현재 하나의 SQL Server 인스턴스만 지원합니다. 명명된 인스턴스가 여러 개 있고 기본 인스턴스가 있는 경우 자동화된 백업은 기본 인스턴스와 함께 작동합니다. 명명된 인스턴스가 여러 개 있고 기본 인스턴스가 없는 경우 자동화된 백업을 설정하지 못합니다.
계정 및 권한으로 인해 자동화된 백업을 사용하도록 설정할 수 없음 다음을 확인하십시오.
- SQL Server 에이전트가 실행 중입니다.
- NT Service\SqlIaaSExtensionQuery 계정에는 SQL Server 내의 자동화된 백업 기능과 Azure Portal의 SQL 가상 머신 리소스에 대한 적절한 권한이 있습니다.
- SA 계정의 이름은 변경되지 않았지만 사용하지 않도록 설정하는 것은 허용됩니다.
SQL 2016 +에 대한 자동화된 백업 실패 Blob 퍼블릭 액세스 허용은 스토리지 계정에서 사용하도록 설정됩니다. 이는 알려진 문제에 대한 임시 해결 방법을 제공합니다.

자동화된 백업 또는 관리되는 백업의 일반적인 문제

다음 표에는 자동화된 백업으로 작업할 때 발생할 수 있는 오류와 해결 방법이 나열되어 있습니다.

증상 솔루션
스토리지 계정 연결/시간 제한 오류로 인해 자동화된 백업 또는 관리되는 백업이 실패함 가상 네트워크에 대한 NSG(네트워크 보안 그룹) 및 Windows 방화벽이 VM(가상 머신)에서 포트 443의 스토리지 계정으로의 아웃바운드 연결을 차단하지 않는지 확인합니다.
메모리/IO 압력으로 인해 자동화된 백업 또는 관리되는 백업이 실패함 IO/VM 제한이 부족한 경우 최대 서버 메모리를 늘리고 디스크/VM의 크기를 조정할 수 있는지 확인합니다. 가용성 그룹을 사용하는 경우 백업을 보조 복제본으로 오프로드하는 것을 고려하세요.
서버 이름 변경 후 자동화된 백업이 실패함 컴퓨터 호스트 이름을 바꾼 경우 SQL Server 내에서 호스트 이름도 바꿔야 합니다.
오류: 내부 오류로 인해 작업이 실패했습니다. 인수는 빈 문자열이 아니어야 합니다.\r\n매개 변수 이름: sas 토큰 나중에 다시 시도하세요. 이는 SQL Server 에이전트 서비스에 올바른 가장 권한이 없기 때문일 수 있습니다. 이 문제를 해결하려면 다른 계정을 사용하도록 SQL Server 에이전트 서비스를 변경합니다.
오류: Microsoft Azure로의 SQL Server 관리형 백업에서 컨테이너 URL이 잘못되었기 때문에 SQL Server 인스턴스에 대한 기본 백업 설정을 구성할 수 없습니다. SAS 자격 증명이 잘못된 경우일 수도 있습니다. 데이터베이스 수가 많은 경우 이 오류가 표시될 수 있습니다. 자동화된 백업 대신 관리되는 백업을 사용합니다.
VM을 다시 시작한 후 자동화된 백업 작업이 실패함 SQL Agent 서비스가 실행 중인지 확인합니다.
관리형 백업이 간헐적으로 실패함/오류:실행 시간 제한이 만료됨 이는 SQL Server 2019용 CU18과 SQL Server 2014~2017용 [KB4040376]에서 수정된 알려진 문제입니다.
오류: 원격 서버에서 오류: (403) 사용할 수 없음을 반환함 SQL IaaS 에이전트 익스텐션을 복구합니다.
오류 3202: 스토리지 계정에 대한 쓰기가 실패함 13(데이터가 잘못됨) 스토리지 컨테이너에서 변경할 수 없는 Blob 정책을 제거하고 스토리지 계정이 최소한 TLS 1.0을 사용하고 있는지 확인합니다.
오류 3063: 백업 블록 Blob 디바이스에 씁니다. 디바이스가 허용되는 블록 제한에 도달했습니다. 이 문제는 Readable 구성이 NO(으)로 설정된 보조 Always On 가용성 그룹 복제본에서 자동 백업을 실행하는 경우에 발생할 수 있습니다. 자동 백업이 보조 복제본에서 작동하려면 복제본을 읽을 수 있어야 합니다.
특정 날짜에 대한 백업을 예약할 수 없음 SQL Server 2014에 자동화된 백업을 사용하는 경우 이 작업이 필요합니다. SQL Server 2016부터 백업 일정을 구성할 수 있습니다.

자동화된 백업 또는 관리되는 백업을 사용하지 않도록 설정하지 못함

다음 표에는 Azure Portal에서 자동화된 백업을 사용하지 않도록 설정하는 데 문제가 있는 경우 가능한 해결 방법이 나열되어 있습니다.

증상 솔루션
IaaS 확장이 실패 상태인 경우 자동 백업 비활성화에 실패함 실패 상태인 경우 SQL IaaS 에이전트 익스텐션을 복구합니다.
메타데이터 문제로 인해 자동화된 백업을 사용하지 않도록 설정하지 못함 SQL IaaS 에이전트 서비스를 중지합니다. T-SQL 명령 use msdb exec autoadmin_metadata_delete를 실행합니다. SQL Iaas 에이전트 서비스를 시작하고 Azure Portal에서 자동화된 백업을 사용하지 않도록 설정해 봅니다.
계정 및 사용 권한으로 인해 자동화된 백업을 사용하도록 설정할 수 없음 다음을 확인하십시오.
- SQL Server 에이전트가 실행 중입니다.
- NT Service\SqlIaaSExtensionQuery 계정에는 SQL Server 내의 자동화된 백업 기능과 Azure Portal의 SQL 가상 머신 리소스에 대한 적절한 권한이 있습니다.
- SA 계정의 이름은 변경되지 않았지만 사용하지 않도록 설정하는 것은 허용됩니다.

어떤 서비스/애플리케이션이 SQL Server를 백업하는지 알고 싶습니다.

  • SQL Server Management Studio(SSMS) 개체 탐색기에서 데이터베이스 >을(를) 마우스 오른쪽 단추로 클릭하고 보고서>표준 보고서>백업 및 복원 이벤트를 선택합니다. 보고서에서 성공적인 백업 작업 섹션을 확장하여 백업 기록을 볼 수 있습니다.
  • Azure에 또는 가상 디바이스에 여러 백업이 있는 경우 Azure Backup을 사용하여 개별 SQL Database를 백업하고 있는지 또는 NT Authority/SYSTEM 계정을 사용하는 가상 디바이스에 가상 머신 스냅샷을 만들고 있는지 확인합니다. 그렇지 않은 경우 Windows 서비스 콘솔(services.msc)을 확인하여 백업을 수행할 수 있는 타사 애플리케이션을 식별합니다.

다음 단계

자동화된 Backup은 Azure VM에서 관리되는 Backup을 구성합니다. 따라서 관리되는 백업 설명서를 검토하여 동작과 의미를 이해해야 합니다.

Azure VM의 SQL Server에 대한 추가적인 백업 및 복원 지침은 Azure Virtual Machine에서 SQL Server의 백업 및 복원 문서를 참조하세요.

사용 가능한 다른 자동화 작업에 대한 내용은 SQL Server IaaS 에이전트 확장을 참조하세요.

Azure VM의 SQL Server 실행에 대한 자세한 내용은 Azure Virtual Machines의 SQL Server 개요를 참조하세요.