적용 대상:
Azure SQL Database
Azure SQL Database를 사용하여 최대 10년 동안 별도의 Azure Blob 스토리지 컨테이너에서 자동으로 백업을 유지하도록 LTR(장기 백업 보존) 정책을 설정할 수 있습니다. 그런 다음, Azure Portal, Azure CLI 또는 PowerShell에서 이러한 백업을 사용하여 데이터베이스를 복구할 수 있습니다.
필수 조건
PowerShell에 대한 환경을 준비합니다.
중요
PowerShell Azure Resource Manager(AzureRM) 모듈은 2024년 2월 29일에 사용되지 않습니다. 향후 모든 개발에서는 Az.Sql 모듈을 사용해야 합니다. 사용자는 지속적인 지원 및 업데이트를 보장하기 위해 AzureRM에서 Az PowerShell 모듈로 마이그레이션하는 것이 좋습니다. AzureRM 모듈은 더 이상 유지 관리되거나 지원되지 않습니다. Az PowerShell 모듈 및 AzureRM 모듈의 명령에 대한 인수는 상당히 동일합니다. 호환성에 대한 자세한 내용은 새 Az PowerShell 모듈소개를 참조하세요.
Get-AzSqlDatabaseLongTermRetentionBackup
및 Restore-AzSqlDatabase
의 경우 다음 역할 중 하나의 구성원이어야 합니다.
Remove-AzSqlDatabaseLongTermRetentionBackup
의 경우 다음 역할 중 하나의 구성원이어야 합니다.
사용 권한
LTR 백업을 보고 복원하려면 다음이 필요합니다.
LTR 백업을 삭제하려면 다음 역할 중 하나의 구성원이어야 합니다.
참고
SQL Server 기여자 역할에는 LTR 백업을 삭제할 수 있는 권한이 없습니다.
Azure 역할 기반 액세스 제어(RBAC) 권한은 구독 또는 리소스 그룹 범위에서 부여할 수 있습니다. 그러나 삭제된 서버에 속한 LTR 백업에 액세스하려면 해당 서버의 구독 범위에서 권한을 부여해야 합니다.
Microsoft.Sql/locations/longTermRetentionServers/longTermRetentionDatabases/longTermRetentionBackups/delete
장기 보존 정책 만들기
서비스 계층의 보존 기간보다 긴 기간 동안 자동화된 백업을 유지하도록 SQL Database를 구성할 수 있습니다.
Azure Portal에서 내 서버로 이동하여 백업을 선택합니다.
보존 정책 탭을 선택하여 백업 보존 설정을 수정합니다.
보존 정책 탭에서 장기 백업 보존 정책을 설정하거나 수정하려는 데이터베이스를 선택합니다. 선택하지 않은 데이터베이스는 영향을 받지 않습니다.
정책 구성 창에서 원하는 보존 기간을 주간, 월간 또는 매년 백업으로 지정합니다. 장기 백업 보존을 설정하지 않는다는 의미로는 보존 기간에 ‘0’을 선택합니다.
적용을 선택하여 선택한 데이터베이스 전체에 선택한 보존 설정을 적용합니다.
중요
장기 백업 보존 정책을 사용하도록 설정하면 첫 번째 백업이 표시되고 복원하는 데 최대 7일이 걸릴 수 있습니다. LTR 백업 주기에 대한 자세한 내용은 장기 백업 보존을 참조하세요.
az sql db ltr-policy set 명령을 실행하여 LTR 정책을 만듭니다. 다음 예제에서는 주간 백업에 대해 12주의 장기 보존 정책을 설정합니다.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W"
이 예제에서는 주간 백업에 대해 12주, 연간 백업에 대해 5년, 연간 LTR 백업을 사용할 4월 15일 주의 보존 정책을 설정합니다.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W" \
--yearly-retention "P5Y" \
--week-of-year 16
# get the SQL server
$subId = "<subscriptionId>"
$serverName = "<serverName>"
$resourceGroup = "<resourceGroupName>"
$dbName = "<databaseName>"
Connect-AzAccount
Select-AzSubscription -SubscriptionId $subId
$server = Get-AzSqlServer -ServerName $serverName -ResourceGroupName $resourceGroup
# create LTR policy with WeeklyRetention = 12 weeks. MonthlyRetention and YearlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W
# create LTR policy with WeeklyRetention = 12 weeks, YearlyRetention = 5 years and WeekOfYear = 16 (week of April 15). MonthlyRetention = 0 by default.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -WeeklyRetention P12W -YearlyRetention P5Y -WeekOfYear 16
백업 보기 및 백업에서 복원
LTR 정책으로 특정 데이터베이스를 보존한 백업을 확인하고 해당 백업을 복원합니다.
참고
논리 서버가 삭제된 경우 Azure CLI 또는 PowerShell 명령을 사용하여 LTR 백업을 보고 복원합니다.
Azure Portal에서 내 서버로 이동하여 백업을 선택합니다. 특정 데이터베이스에 대하여 사용할 수 있는 LTR 백업을 확인하려면 사용할 수 있는 LTR 백업 열에서 관리를 선택합니다. 선택한 데이터베이스에 대해 사용할 수 있는 LTR 백업이 포함된 창이 표시됩니다.
표시되는 사용 가능한 LTR 백업 창에서 사용 가능한 백업을 검토합니다. 복원에 사용할 백업을 선택합니다.
사용 가능한 LTR 백업을 복원하려면, 복원하려는 백업을 선택한 다음 복원을 선택합니다.
새로운 데이터베이스의 이름을 선택한 다음 검토 + 만들기를 선택하여 복원 세부 정보를 검토합니다.
만들기를 선택하여 선택한 백업의 데이터 베이스를 복원합니다.
도구 모음에서 알림 아이콘을 선택하여 해당 복원 작업의 상태를 조회합니다.
복원 작업이 완료되면 SQL Database 페이지를 열어 새로 복원된 데이터베이스를 봅니다.
LTR 정책 보기
az sql db ltr-policy show 명령을 실행하여 서버의 단일 데이터베이스에 대한 LTR 정책을 봅니다.
az sql db ltr-policy show \
--resource-group mygroup \
--server myserver \
--name mydb
LTR 백업 보기
az sql db ltr-backup list 명령을 사용하여 데이터베이스에 대한 LTR 백업을 나열합니다. 이 명령을 사용하여 다른 명령에서 사용할 name
매개 변수를 찾을 수 있습니다.
az sql db ltr-backup list \
--___location eastus2 \
--server myserver \
--database mydb
LTR 백업에서 복원
az sql db ltr-backup restore 명령을 실행하여 LTR 백업에서 데이터베이스를 복원합니다.
az sql db ltr-backup show를 실행하여 backup-id
를 가져올 수 있습니다.
향후 사용을 위해 ‘az sql db ltr-backup show’ 명령을 사용하여 backup-id
에 대한 변수를 만듭니다.
get_backup_id=$(az sql db ltr-backup show
--___location eastus2 \
--server myserver \
--database mydb \
--name "3214b3fb-fba9-43e7-96a3-09e35ffcb336;132292152080000000" \
--query 'id' \
--output tsv)
LTR 백업에서 데이터베이스를 복원합니다.
az sql db ltr-backup restore \
--dest-database targetdb \
--dest-server myserver \
--dest-resource-group mygroup \
--backup-id $get_backup_id
중요
서버나 리소스 그룹 삭제 후 LTR 백업을 복원하려면 해당 서버의 구독으로 범위가 지정된 권한을 갖춘 채로 해당 구독이 활성 상태여야 합니다. 또한 선택적인 -ResourceGroupName 매개 변수도 생략해야 합니다.
참고
여기에서 SQL Server Management Studio를 사용하여 복원된 데이터베이스에 연결하여 데이터베이스 교환과 같은 필요한 작업을 수행할 수 있습니다.
특정 시점 복원을 참조하세요.
LTR 정책 보기
이 예제에서는 서버 내의 LTR 정책을 나열하는 방법을 보여줍니다.
# get all LTR policies within a server
$ltrPolicies = Get-AzSqlDatabase -ResourceGroupName $resourceGroup -ServerName $serverName | `
Get-AzSqlDatabaseLongTermRetentionPolicy
# get the LTR policy of a specific database
$ltrPolicies = Get-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup
LTR 정책 지우기
이 예제에서는 데이터베이스에서 LTR 정책을 지우는 방법을 보여줍니다.
Set-AzSqlDatabaseBackupLongTermRetentionPolicy -ServerName $serverName -DatabaseName $dbName `
-ResourceGroupName $resourceGroup -RemovePolicy
LTR 백업 보기
이 예제에서는 서버 내의 LTR 백업을 나열하는 방법을 보여줍니다.
# get the list of all LTR backups in a specific Azure region
# backups are grouped by the logical database id, within each group they are ordered by the timestamp, the earliest backup first
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location
# get the list of LTR backups from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName
# get the LTR backups for a specific database from the Azure region under the named server
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -DatabaseName $dbName
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -DatabaseState Live
# only list the latest LTR backup for each database
$ltrBackups = Get-AzSqlDatabaseLongTermRetentionBackup -Location $server.Location -ServerName $serverName -OnlyLatestPerDatabase
LTR 백업에서 복원
이 예제에서는 LTR 백업에서 복원하는 방법을 보여줍니다. 해당 인터페이스는 변경되지 않았지만 해당 리소스 ID 매개 변수에는 이제 LTR 백업 리소스 ID가 필요합니다.
# restore a specific LTR backup as an P1 database on the server $serverName of the resource group $resourceGroup
Restore-AzSqlDatabase -FromLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId -ServerName $serverName -ResourceGroupName $resourceGroup `
-TargetDatabaseName $dbName -ServiceObjectiveName P1
중요
- 서버나 리소스 그룹 삭제 후 LTR 백업을 복원하려면 해당 서버의 구독으로 범위가 지정된 권한을 갖춘 채로 해당 구독이 활성 상태여야 합니다. 또한 선택적
-ResourceGroupName
매개 변수를 생략해야 합니다.
- LTR 백업을 사용하여 규정 준수 또는 기타 중요 업무용 요구 사항을 충족하는 경우 주기적으로 복구 훈련을 수행하여 LTR 백업을 복원할 수 있는지, 복원 후 데이터베이스 상태가 예상과 같은지 확인하는 것이 좋습니다.
참고
여기에서 SQL Server Management Studio를 사용하여 복원된 데이터베이스에 연결하고, 이 데이터베이스에서 약간의 데이터를 추출하여 기존 데이터베이스에 복사하거나 기존 데이터베이스를 삭제하고 복원된 데이터베이스 이름을 기존 데이터베이스 이름으로 변경하는 등 필요한 작업을 수행할 수 있습니다.
특정 시점 복원을 참조하세요.
LTR 백업 삭제
LTR 정책을 사용하여 특정 데이터베이스에 대해 보존되는 백업을 삭제합니다.
중요
LTR 백업을 삭제하면 되돌릴 수 없습니다. 서버를 삭제한 후 LTR 백업을 삭제하려면 구독 범위 권한이 있어야 합니다. ‘장기 보존 백업 삭제’ 작업으로 필터링하여 Azure Monitor에서 각 삭제에 대한 알림을 설정할 수 있습니다. 활동 로그에는 요청한 사람과 시기에 대한 정보가 포함되어 있습니다. 자세한 지침은 활동 로그 경고 만들기를 참조하세요.
- Azure Portal에서 Azure SQL Database 논리 서버로 이동합니다.
-
백업을 선택합니다. 특정 데이터베이스에 대하여 사용할 수 있는 LTR 백업을 확인하려면 사용할 수 있는 LTR 백업 열에서 관리를 선택합니다. 선택한 데이터베이스에 대해 사용할 수 있는 LTR 백업이 포함된 창이 표시됩니다.
- 표시되는 사용 가능한 LTR 백업 창에서 사용 가능한 백업을 검토합니다. 삭제할 백업을 선택합니다.
삭제를 선택합니다.
이 예제에서는 백업 목록에서 LTR 백업을 삭제하는 방법을 보여줍니다.
-
LTR 백업 보기를 사용하여 백업을 식별합니다.
-
Remove-AzSqlDatabaseLongTermRetentionBackup
을 사용하여 백업을 삭제합니다.
# remove the earliest backup
$ltrBackup = $ltrBackups[0]
Remove-AzSqlDatabaseLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId
모범 사례
LTR 백업을 사용하여 규정 준수 또는 기타 중요 업무용 요구 사항을 충족하는 경우:
- 포털, Azure CLI 또는 PowerShell을 사용하여 백업 보기 섹션에 설명된 단계를 수행하여 구성된 정책에 따라 LTR 백업이 수행되는지 확인합니다.
- LTR 백업 복원으로 인해 예상된 데이터베이스 상태가 되는지 확인하려면 주기적인 복구 훈련을 수행하는 것이 좋습니다.
관련 콘텐츠
- 서비스에서 생성된 자동 백업에 대해 알아보려면 자동 백업 참조
- 장기 백업 보존에 대해 알아보려면 장기 백업 보존 참조