SQL Server 2014 가상 머신에서 자동화된 백업(Resource Manager)

적용 대상:Azure VM 기반 SQL Server

자동화된 Backup에서는 SQL Server 2014 Standard 또는 Enterprise를 실행하는 Azure VM의 모든 기존 및 새 데이터베이스에 대해 Microsoft Azure에 대한 관리되는 Backup 을 자동으로 구성합니다. 이를 통해 지속형 Azure Blob 스토리지를 활용하는 일반 데이터베이스 백업을 구성할 수 있습니다. 자동화된 백업은 SQL Server 서비스형 인프라(IaaS) 에이전트 확장에 따라 달라집니다.

참고

Azure에는 리소스를 만들고 사용하는 데 필요한 두 가지 배포 모델이 있습니다. Azure Resource Manager 및 클래식이라는 두 가지 배포 모델이 있다는 것을 이해해야 합니다. 이 문서에서는 Resource Manager 배포 모델의 사용법에 대해 설명합니다. 새 배포에는 클래식 배포 모델 대신 Resource Manager 배포 모델을 사용하는 것이 좋습니다.

필수 구성 요소

자동화된 Backup을 사용하려면 다음 필수 조건을 고려하세요.

운영 체제:

  • Windows Server 2012 이상

SQL Server 버전:

  • SQL Server 2014 Standard
  • SQL Server 2014 Enterprise

참고

SQL 2016 이상의 경우 SQL Server 2016의 자동화된 백업을 참조하세요.

데이터베이스 구성:

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

설정

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

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

새 VM 구성

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

SQL Server 설정 탭에서 스크롤을 내려서 자동화된 백업으로 이동하고 활성화를 선택합니다. 다음 Azure Portal 스크린샷은 SQL 자동화된 백업 설정을 보여 줍니다.

Azure Portal에서 SQL 자동 백업 구성 스크린샷입니다.

기존 VM 구성

기존 SQL Server VM의 경우, Azure Portal에서 자동화된 백업을 활성화/비활성화하고 보존 기간을 변경하고 스토리지 계정을 지정할 수 있습니다.

자신의 SQL Server 2014 가상 머신의 SQL 가상 머신 리소스로 이동해서 백업을 선택합니다.

기존 VM에 대한 SQL 자동 백업 스크린샷입니다.

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

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

참고

또한 템플릿을 사용하여 자동화된 Backup을 구성할 수 있습니다. 자세한 내용은 자동화된 Backup에 대한 Azure 빠른 시작 템플릿을 참조하세요.

PowerShell을 사용하여 구성

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

참고

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

현재 설정 확인

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

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

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

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

Enable                      : False
EnableEncryption            : False
RetentionPeriod             : -1
StorageUrl                  : NOTSET
StorageAccessKey            : 
Password                    : 
BackupSystemDbs             : False
BackupScheduleType          : 
FullBackupFrequency         : 
FullBackupStartTime         : 
FullBackupWindowHours       : 
LogBackupFrequency          : 

출력에 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일 동안 보관되도록 설정되어 있습니다.

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingStorageContainerName $storage_container 

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

참고 항목

SQL Server 2016과 자동화된 백업에만 적용되는 Update-AzSqlVM*에 대한 다른 설정이 있습니다. SQL Server 2014는 -AutoBackupSettingBackupSystemDb, -AutoBackupSettingBackupScheduleType, -AutoBackupSettingFullBackupFrequency, -AutoBackupSettingFullBackupStartTime, -AutoBackupSettingFullBackupWindowHour-AutoBackupSettingLogBackupFrequency 설정을 지원하지 않습니다. SQL Server 2014 가상 머신에서 이러한 설정을 구성하려고 하면 오류는 발생하지 않지만 설정이 적용되지 않습니다. SQL Server 2016 가상 머신에서 이러한 설정을 사용하려면 SQL Server 2016 Azure 가상 머신용 자동화된 백업을 참조하세요.

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

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

Update-AzSqlVM -ResourceGroupName $resourcegroupname -Name $vmname -AutoBackupSettingEnable `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod 10 `
-AutoBackupSettingEnableEncryption `
-AutoBackupSettingPassword $encryptionpassword `
-AutoBackupSettingStorageContainerName $storage_container 

설정이 적용되었는지 확인하려면 자동화된 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

# 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 `
-AutoBackupSettingStorageAccessKey $accesskey `
-AutoBackupSettingStorageAccountUrl $storage_url `
-AutoBackupSettingRetentionPeriod $retentionperiod `
-AutoBackupSettingStorageContainerName $storage_container 

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

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

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

어떤 이유로 인증서를 업로드하지 못한 경우 인증서 관리자를 사용하여 인증서를 내보내고 저장할 수 있습니다. 그러나 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 2014에서 자동화된 백업을 모니터링하려면 두 가지 기본 옵션이 있습니다. 자동화된 백업은 SQL Server 관리 백업 기능을 사용하므로 동일한 모니터링 기술이 둘 다에 적용됩니다.

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

참고

SQL Server 2014의 관리 백업 스키마는 msdb.smart_admin입니다. SQL Server 2016에서는 이 설정이 msdb.managed_backup으로 변경되었으며, 참조 항목에서 이 최신 스키마를 사용합니다. 그러나 SQL Server 2014의 경우 모든 관리 백업 개체에 대해 smart_admin 스키마를 계속 사용해야 합니다.

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

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

다음 단계

자동화된 Backup은 Azure VM에서 관리되는 Backup을 구성합니다. 따라서 SQL Server 2014의 관리 백업에 대한 설명서를 검토하는 것이 중요합니다.

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

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

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