Azure SQL Managed Instance에서 장기 백업 보존 정책(LTR)을 구성할 수 있습니다. 이를 통해 최대 10년 동안 별도의 Azure Blob Storage 컨테이너에 데이터베이스 백업을 자동으로 보존할 수 있습니다. 그런 다음 Azure Portal, Azure CLI 및 PowerShell에서 이러한 백업을 사용하여 데이터베이스를 복구할 수 있습니다.
다음 섹션에서는 Azure Portal, PowerShell 및 Azure CLI를 사용하여 장기 백업 보존을 구성하고, Azure SQL 스토리지에서 백업을 보고, Azure SQL 스토리지에서 백업에서 복원하는 방법을 보여 줍니다.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치합니다. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 로그인을 참조하세요.
메시지가 표시되면 처음 사용할 때 Azure CLI 확장을 설치합니다. 확장에 대한 자세한 내용은 Azure CLI에서 확장 사용을 참조하세요.
PowerShell Azure Resource Manager 모듈은 여전히 Azure SQL Database에서 지원되지만 향후 모든 개발은 Az.Sql 모듈에서 수행됩니다. 이러한 cmdlet은 AzureRM.Sql을 참조하세요. Az 모듈 및 AzureRm 모듈의 명령에 대한 인수는 실질적으로 동일합니다.
Get-AzSqlInstanceDatabaseLongTermRetentionBackup 및 Restore-AzSqlInstanceDatabase의 경우 다음 역할 중 하나의 구성원이어야 합니다.
개요 페이지에서 + 새 데이터베이스를 선택하여 Azure SQL Managed Database 만들기 페이지를 엽니다.
Azure SQL Managed Database 만들기 페이지의 기본 탭에 있는 프로젝트 세부 정보에 구독 및 리소스 그룹 세부 정보를 입력합니다. 그런 다음, 데이터베이스 세부 정보에 복원하려는 데이터베이스의 새 이름을 입력합니다. 올바른 관리형 인스턴스가 드롭다운 목록에 나와 있는지 확인합니다. 그런 다음, 다음: 데이터 원본 >을 선택합니다.
데이터 원본 탭의 기존 데이터 사용에서 특정 시점 복원을 선택합니다. 원본 데이터베이스를 포함하는 구독, 리소스 그룹 및 관리형 인스턴스를 제공합니다. 관리형 데이터베이스 드롭다운 목록에서 복원할 데이터베이스를 선택한 다음, 데이터베이스를 복원할 시점을 선택합니다. 원본 및 대상 인스턴스는 동일하거나 서로 다른 인스턴스 2개일 수 있습니다. 다음: 추가 설정 >을 선택합니다.
추가 설정 탭에서 확인란을 선택하여 원본 데이터베이스의 보존 정책을 상속하거나 보존 구성을 선택하여 정책 구성 페이지를 열고 복원된 데이터베이스에 대해 원하는 보존 정책을 설정할 수 있습니다. 입력을 완료한 후 검토 + 만들기를 선택합니다.
검토 + 만들기에서 유효성 검사가 성공하면 만들기를 선택하여 데이터베이스를 복원합니다.
이 작업은 복원 프로세스를 시작합니다. 그러면 새 데이터베이스가 만들어지고 특정 시점의 원래 데이터베이스의 데이터로 채워집니다. 복구 프로세스에 대한 자세한 내용은 복구 시간을 참조하세요.
인스턴스가 삭제된 후 LTR 백업에서 복원하려면 인스턴스의 구독으로 범위가 지정된 사용 권한이 있어야 하며 해당 구독은 활성 상태여야 합니다.
참고
여기에서 SQL Server Management Studio를 사용하여 복원된 데이터베이스에 연결하고, 이 데이터베이스에서 약간의 데이터를 추출하여 기존 데이터베이스에 복사하거나 기존 데이터베이스를 삭제하고 복원된 데이터베이스 이름을 기존 데이터베이스 이름으로 변경하는 등 필요한 작업을 수행할 수 있습니다. 특정 시점 복원을 참조하세요.
LTR 정책 보기
이 예에서는 단일 데이터베이스에 대한 인스턴스 내의 LTR 정책을 나열하는 방법을 보여줍니다.
# gets the current version of LTR policy for a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
}
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
이 예에서는 인스턴스의 모든 데이터베이스에 대한 LTR 정책을 나열하는 방법을 보여줍니다.
# gets the current version of LTR policy for all of the databases on an instance
$Databases = Get-AzSqlInstanceDatabase -ResourceGroupName $resourceGroup -InstanceName $instanceName
$LTRParams = @{
InstanceName = $instanceName
ResourceGroupName = $resourceGroup
}
foreach($database in $Databases.Name){
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRParams -DatabaseName $database
}
LTR 정책 지우기
이 예제에서는 데이터베이스에서 LTR 정책을 지우는 방법을 보여줍니다.
# remove the LTR policy from a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
RemovePolicy = $true
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
LTR 백업 보기
이 예제에서는 인스턴스 내의 LTR 백업을 나열하는 방법을 보여줍니다.
$instance = Get-AzSqlInstance -Name $instanceName -ResourceGroupName $resourceGroup
# 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
Get-AzSqlInstanceDatabaseLongTermRetentionBackup -Location $instance.Location
# get the list of LTR backups from the Azure region under the given managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# get the LTR backups for a specific database from the Azure region under the given managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# list LTR backups only from live databases (you have option to choose All/Live/Deleted)
$LTRBackupParam = @{
Location = $instance.Location
DatabaseState = 'Live'
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
# only list the latest LTR backup for each database
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
OnlyLatestPerDatabase = $true
}
Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
LTR 백업에서 복원
이 예제에서는 LTR 백업에서 복원하는 방법을 보여줍니다. 해당 인터페이스는 변경되지 않았지만 해당 리소스 ID 매개 변수에는 이제 LTR 백업 리소스 ID가 필요합니다.
# restore a specific LTR backup as an P1 database on the instance $instanceName of the resource group $resourceGroup
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbname
OnlyLatestPerDatabase = $true
}
$ltrBackup = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$RestoreLTRParam = @{
TargetInstanceName = $instanceName
TargetResourceGroupName = $resourceGroup
TargetInstanceDatabaseName = $dbName
FromLongTermRetentionBackup = $true
ResourceId = $ltrBackup.ResourceId
}
Restore-AzSqlInstanceDatabase @RestoreLTRParam
중요
인스턴스가 삭제된 후 LTR 백업에서 복원하려면 인스턴스의 구독으로 범위가 지정된 사용 권한이 있어야 하며 해당 구독은 활성 상태여야 합니다. 또한 선택적인 -ResourceGroupName 매개 변수도 생략해야 합니다.
참고
여기에서 SQL Server Management Studio를 사용하여 복원된 데이터베이스에 연결하고, 이 데이터베이스에서 약간의 데이터를 추출하여 기존 데이터베이스에 복사하거나 기존 데이터베이스를 삭제하고 복원된 데이터베이스 이름을 기존 데이터베이스 이름으로 변경하는 등 필요한 작업을 수행할 수 있습니다. 특정 시점 복원을 참조하세요.
LTR 백업 삭제
LTR 정책을 사용하여 특정 데이터베이스에 대해 보존되는 백업을 삭제합니다.
Important
LTR 백업을 삭제하면 되돌릴 수 없습니다. 인스턴스를 삭제한 후 LTR 백업을 삭제하려면 구독 범위 권한이 있어야 합니다. ‘장기 보존 백업 삭제’ 작업으로 필터링하여 Azure Monitor에서 각 삭제에 대한 알림을 설정할 수 있습니다. 활동 로그에는 요청한 사람과 시기에 대한 정보가 포함되어 있습니다. 자세한 지침은 활동 로그 경고 만들기를 참조하세요.
이 예제에서는 백업 목록에서 가장 이전의 LTR 백업을 삭제하는 방법을 보여줍니다. 이 샘플은 지정된 SQL Managed Instance 아래 Azure 지역에서 특정 데이터베이스에 대한 LTR 백업 목록을 가져옵니다.
# remove the earliest backup
# get the LTR backups for a specific database from the Azure region under the given SQL managed instance
$LTRBackupParam = @{
Location = $instance.Location
InstanceName = $instanceName
DatabaseName = $dbName
}
$ltrBackups = Get-AzSqlInstanceDatabaseLongTermRetentionBackup @LTRBackupParam
$ltrBackup = $ltrBackups[0]
Remove-AzSqlInstanceDatabaseLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId
제한 사항
SQL Server 2022 업데이트 정책으로 구성된 인스턴스에서 가져온 데이터베이스 백업을 SQL Server 2022 또는 항상 최신 업데이트 정책으로 구성된 인스턴스로 복원할 수 있습니다. 항상 최신 업데이트 정책으로 구성된 인스턴스에서 가져온 데이터베이스 백업을 항상 최신 업데이트 정책으로 구성된 인스턴스로 복원할 수도 있습니다.