I Azure SQL Managed Instance kan du konfigurera en långsiktig säkerhetskopieringspolicy (LTR). På så sätt kan du automatiskt behålla databassäkerhetskopior i separata Azure Blob Storage-containrar i upp till 10 år. Du kan sedan återställa en databas med hjälp av dessa säkerhetskopior med Azure-portalen, Azure CLI och PowerShell.
Följande avsnitt visar hur du använder Azure-portalen, PowerShell och Azure CLI för att konfigurera långsiktig kvarhållning av säkerhetskopior, visa säkerhetskopior i Azure SQL Storage och återställa från en säkerhetskopia i Azure SQL Storage.
Om du föredrar att köra CLI-referenskommandon lokalt installera Azure CLI. Om du kör i Windows eller macOS kan du överväga att köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI-.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI-.
Kör az version för att hitta den version och de beroendebibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Förbered din miljö för PowerShell.
Anteckning
Den här artikeln använder Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för interaktion med Azure. Information om hur du kommer igång med Az PowerShell-modulen finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i Migrera Azure PowerShell från AzureRM till Az.
Viktig
Azure Resource Manager-modulen för PowerShell (AzureRM) blev föråldrad den 29 februari 2024. All framtida utveckling bör använda Az.Sql-modulen. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar. AzureRM-modulen underhålls inte längre eller stöds inte längre. Argumenten för kommandona i Az PowerShell-modulen och i AzureRM-modulerna är i stort sätt identiska. Mer information om deras kompatibilitet finns i Introduktion till den nya Az PowerShell-modulen.
För Get-AzSqlInstanceDatabaseLongTermRetentionBackup och Restore-AzSqlInstanceDatabasemåste du vara medlem i någon av följande roller:
Rollen SQL Managed Instance Medverkare har inte behörighet att ta bort LTR-säkerhetskopior.
Behörigheter för rollbaserad åtkomstkontroll i Azure kan beviljas på antingen prenumerationsnivå eller resursgruppsnivå . För att få åtkomst till LTR-säkerhetskopior som tillhör en borttagen instans måste behörigheten dock beviljas i -prenumerationen omfånget för den instansen.
I Azure-portalen väljer du din hanterade instans och väljer sedan Säkerhetskopieringar. På fliken Kvarhållningsprinciper väljer du de databaser som du vill ange eller ändra principer för långsiktig kvarhållning av säkerhetskopior på. Ändringar gäller inte för databaser som lämnas omarkerade.
I fönstret Konfigurera principer anger du önskad kvarhållningsperiod för veckovisa, månatliga eller årliga säkerhetskopieringar. Välj kvarhållningsperioden "0" för att ange att ingen långsiktig kvarhållning av säkerhetskopior ska anges.
När du är klar, välj Använd.
Viktig
När du aktiverar en princip för långsiktig kvarhållning av säkerhetskopior kan det ta upp till 7 dagar innan den första säkerhetskopieringen blir synlig och tillgänglig för återställning. För information om säkerhetskopieringsfrekvensen av LTR, se långtidsbevarande av säkerhetskopior.
Kör kommandot az sql midb show för att hämta information om SQL Managed Instance-databasen.
az sql midb show /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--subscription mysubscription
Kör kommandot az sql midb ltr-policy set för att skapa en LTR-princip. I följande exempel anges en långsiktig kvarhållningsprincip i 12 veckor för den veckovisa säkerhetskopieringen.
az sql midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--weekly-retention "P12W"
I det här exemplet anges en kvarhållningsprincip i 12 veckor för den veckovisa säkerhetskopieringen, 5 år för den årliga säkerhetskopieringen och veckan den 15 april där den årliga LTR-säkerhetskopieringen ska utföras.
Följ dessa steg om du vill visa tillgängliga långsiktiga säkerhetskopior från Azure-portalen:
I Azure-portalen väljer du din hanterade instans och väljer sedan Säkerhetskopieringar. På fliken Tillgängliga säkerhetskopior väljer du den databas som du vill se tillgängliga säkerhetskopior för. Välj Hantera.
Granska de tillgängliga säkerhetskopiorna i fönstret Hantera säkerhetskopior.
Du kan också återställa från den här sidan genom att välja säkerhetskopian och välja Återställ.
Du kan också återställa en säkerhetskopia från långsiktig kvarhållning med hjälp av Azure-portalen genom att följa dessa steg:
Gå till målinstansen för SQL Managed Instance som du planerar att återställa din databas till.
På sidan Översikt väljer du + Ny databas för att öppna sidan Skapa Azure SQL Managed Database.
På fliken Grundläggande på sidan Skapa Azure SQL Managed Databaseanger du prenumerations- och resursgruppsinformation under Project-information. Under databasinformation ange det nya namnet på databasen som du planerar att återställa. Bekräfta att rätt hanterad instans visas i listrutan. Välj sedan Nästa: Datakälla >
På fliken Datakälla väljer du återställning till tidpunkt under Använd befintliga data. Ange den prenumeration, resursgrupp och hanterade instans som innehåller källdatabasen. I listrutan Hanterad databas väljer du den databas som du vill återställa och väljer sedan den tidpunkt då du vill återställa databasen. Käll- och målinstansen kan vara samma eller två olika instanser. Välj Nästa: Ytterligare inställningar >
På fliken Ytterligare inställningar kan du markera kryssrutan för att ärva kvarhållningsprincipen från källdatabasen, eller så kan du välja Konfigurera kvarhållning för att öppna sidan Konfigurera principer och ange önskade kvarhållningsprinciper för den återställda databasen. När du är klar väljer du knappen Granska + skapa.
På Granska + skapaväljer du Skapa för att återställa databasen när verifieringen har slutförts.
Den här åtgärden startar återställningsprocessen, som skapar en ny databas och fyller den med data från den ursprungliga databasen vid den angivna tidpunkten. Mer information om återställningsprocessen finns i Återställningstid.
Om du vill återställa från en LTR-säkerhetskopia efter att instansen har tagits bort måste du ha behörigheter som är begränsade till instansens prenumeration och den prenumerationen måste vara aktiv.
Notera
Härifrån kan du ansluta till den återställde databasen med HJÄLP av SQL Server Management Studio för att utföra nödvändiga uppgifter, till exempel att extrahera lite data från den återställde databasen för att kopiera till den befintliga databasen eller ta bort den befintliga databasen och byta namn på den återställde databasen till det befintliga databasnamnet. Se återställning till tidpunkt.
Visa LTR-principer
Det här exemplet visar hur du listar LTR-principerna i en instans för en enskild databas.
# gets the current version of LTR policy for a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
}
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Det här exemplet visar hur du listar LTR-principerna för alla databaser i en instans.
# 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
}
Rensa en LTR-policy
Det här exemplet visar hur du rensar en LTR-princip från en databas.
# remove the LTR policy from a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
RemovePolicy = $true
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Visa LTR-säkerhetskopior
Det här exemplet visar hur du visar en lista över LTR-säkerhetskopior i en instans.
$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
Återställa från LTR-säkerhetskopior
Det här exemplet visar hur du återställer från en LTR-säkerhetskopia. Observera att det här gränssnittet inte ändrades, men resurs-ID-parametern kräver nu RESURS-ID för LTR-säkerhetskopiering.
# 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
Viktig
Om du vill återställa från en LTR-säkerhetskopia efter att instansen har tagits bort måste du ha behörigheter som är begränsade till instansens prenumeration och den prenumerationen måste vara aktiv. Du måste också utelämna den valfria parametern -ResourceGroupName.
Notera
Härifrån kan du ansluta till den återställde databasen med HJÄLP av SQL Server Management Studio för att utföra nödvändiga uppgifter, till exempel att extrahera lite data från den återställde databasen för att kopiera till den befintliga databasen eller ta bort den befintliga databasen och byta namn på den återställde databasen till det befintliga databasnamnet. Se återställning till viss tidpunkt vid .
Ta bort LTR-säkerhetskopior
Ta bort säkerhetskopior som behålls för en specifik databas med en LTR-princip.
Viktig
Att ta bort LTR-säkerhetskopieringen är oåterkalleligt. Om du vill ta bort en LTR-säkerhetskopia efter att instansen har tagits bort måste du ha behörighet för prenumerationsomfång. Du kan konfigurera meddelanden om varje borttagning i Azure Monitor genom att filtrera efter åtgärden "Tar bort en långsiktig kvarhållningssäkerhetskopia". Aktivitetsloggen innehåller information om vem och när begäran gjordes. Mer information finns i Skapa aktivitetsloggaviseringar.
I Azure-portalen navigerar du till den SQL-hanterade instansen.
Välj Säkerhetskopieringar. Om du vill visa tillgängliga LTR-säkerhetskopior för en specifik databas väljer du Hantera under kolumnen Tillgängliga LTR-säkerhetskopieringar. Ett fönster visas med en lista över tillgängliga LTR-säkerhetskopior för den valda databasen.
Granska de tillgängliga säkerhetskopiorna i fönstret Tillgängliga LTR-säkerhetskopieringar som visas. Välj en säkerhetskopia att ta bort. Välj Ta bort.
Det här exemplet visar hur du tar bort den tidigaste LTR-säkerhetskopieringen från listan över säkerhetskopior. Det här exemplet hämtar listan över LTR-säkerhetskopior för en specifik databas från Azure-regionen under den angivna SQL-hanterade instansen.
# 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
Begränsningar
Databassäkerhetskopior från instanser som konfigurerats med SQL Server 2022 uppdateringsprincip kan återställas till instanser som konfigurerats med antingen SQL Server 2022- eller Always-up-to-date update-principen. Databassäkerhetskopior som hämtats från instanser som konfigurerats med uppdateringsprincipen Always-up-to-date kan bara återställas till instanser som också har konfigurerats med uppdateringsprincipen Always-up-to-date.