Med Azure SQL Database kan du ange en princip för långsiktig kvarhållning av säkerhetskopior (LTR) för att automatiskt behålla sä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 hjälp av Azure-portalen, Azure CLI eller PowerShell.
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 om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Förbered din miljö för PowerShell.
Kommentar
Den här artikeln använder Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för interaktion med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Viktigt!
PowerShell Azure Resource Manager-modulen stöds fortfarande av Azure SQL Database, men all framtida utveckling gäller för Az.Sql-modulen. Dessa cmdletar finns i AzureRM.Sql. Argumenten för kommandona i Az-modulen och i AzureRm-modulerna är väsentligen identiska.
För Get-AzSqlDatabaseLongTermRetentionBackup och Restore-AzSqlDatabasemåste du vara medlem i någon av följande roller:
ROLLEN SQL Server-deltagare har inte behörighet att ta bort LTR-säkerhetskopior.
Behörigheter för rollbaserad åtkomstkontroll i Azure (RBAC) kan beviljas i prenumerations- eller resursgruppsomfång. Men för att få åtkomst till LTR-säkerhetskopior som tillhör en borttagen server måste den här behörigheten beviljas i serverns prenumerationsomfång :
I Azure-portalen navigerar du till servern och väljer sedan Säkerhetskopieringar. Välj fliken Kvarhållningsprinciper för att ändra kvarhållningsinställningarna för säkerhetskopior.
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å. Omarkerade databaser påverkas inte.
I fönstret Konfigurera principer anger du önskad kvarhållningsperiod för säkerhetskopieringar varje vecka, månad eller år. Välj kvarhållningsperioden "0" för att ange att ingen långsiktig kvarhållning av säkerhetskopior ska anges.
Välj Använd för att tillämpa de valda kvarhållningsinställningarna på alla valda databaser.
Viktigt!
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. Mer information om LTR-säkerhetskopieringen finns i långsiktig kvarhållning av säkerhetskopior.
Kör kommandot az sql db 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 db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--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.
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
Visa säkerhetskopior och återställning från en säkerhetskopia
Visa de säkerhetskopior som behålls för en specifik databas med en LTR-princip och återställ från dessa säkerhetskopior.
I Azure-portalen navigerar du till servern och väljer sedan 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äkerhetskopior . Ett fönster visas med en lista över tillgängliga LTR-säkerhetskopior för den valda databasen.
I fönstret Tillgängliga LTR-säkerhetskopior som visas granskar du de tillgängliga säkerhetskopiorna. Välj en säkerhetskopia att återställa från.
Om du vill återställa från en tillgänglig LTR-säkerhetskopia väljer du den säkerhetskopia som du vill återställa från och väljer sedan Återställ.
Välj ett namn på den nya databasen och välj sedan Granska + skapa för att granska informationen om återställningen. Välj Skapa för att återställa databasen från den valda säkerhetskopian.
I verktygsfältet väljer du meddelandeikonen för att visa status för återställningsjobbet.
När återställningsjobbet har slutförts öppnar du sidan SQL-databaser för att visa den nyligen återställda databasen.
az sql db ltr-policy show \
--resource-group mygroup \
--server myserver \
--name mydb
Visa LTR-säkerhetskopior
Använd kommandot az sql db ltr-backup list för att lista LTR-säkerhetskopiorna för en databas. Du kan använda det här kommandot för att hitta parametern name för användning i andra kommandon.
az sql db ltr-backup list \
--location eastus2 \
--server myserver \
--database mydb
Återställ databasen från LTR-säkerhetskopieringen.
az sql db ltr-backup restore \
--dest-database targetdb \
--dest-server myserver \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Viktigt!
Om du vill återställa från en LTR-säkerhetskopia när servern eller resursgruppen har tagits bort måste du ha behörigheter som är begränsade till serverns prenumeration och den prenumerationen måste vara aktiv. Du måste också utelämna parametern -ResourceGroupName.
Kommentar
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 databasväxling. Se återställning till tidpunkt.
Visa LTR-principer
Det här exemplet visar hur du listar LTR-principerna på en server.
# 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
Rensa en LTR-princip
Det här exemplet visar hur du rensar en LTR-princip från en databas.
Det här exemplet visar hur du listar LTR-säkerhetskopior på en server.
# 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
Å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 server $serverName of the resource group $resourceGroup
Restore-AzSqlDatabase -FromLongTermRetentionBackup -ResourceId $ltrBackup.ResourceId -ServerName $serverName -ResourceGroupName $resourceGroup `
-TargetDatabaseName $dbName -ServiceObjectiveName P1
Viktigt!
Om du vill återställa från en LTR-säkerhetskopia när servern eller resursgruppen har tagits bort måste du ha behörigheter som är begränsade till serverns prenumeration och den prenumerationen måste vara aktiv. Du måste även utelämna den valfria parametern -ResourceGroupName.
Om du använder LTR-säkerhetskopior för att uppfylla efterlevnadskraven eller andra verksamhetskritiska krav bör du överväga att utföra regelbundna återställningstest för att kontrollera att LTR-säkerhetskopior kan återställas och att återställningen resulterar i ett förväntat databastillstånd.
Kommentar
Här kan du ansluta till den återställda databasen med hjälp av SQL Server Management Studio för att utföra nödvändiga åtgärder, till exempel för att extrahera en del data från den återställda databasen och kopiera dem till den befintliga databasen eller för att ta bort den befintliga databasen och byta namn på den återställda databasen till det befintliga databasnamnet. Se återställning till tidpunkt.
Ta bort LTR-säkerhetskopior
Ta bort säkerhetskopior som behålls för en specifik databas med en LTR-princip.
Viktigt!
Det går inte att ta bort LTR-säkerhetskopiering. Om du vill ta bort en LTR-säkerhetskopia efter att servern 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 logiska servern i Azure SQL Database.
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äkerhetskopior . Ett fönster visas med en lista över tillgängliga LTR-säkerhetskopior för den valda databasen.
I fönstret Tillgängliga LTR-säkerhetskopior som visas granskar du de tillgängliga säkerhetskopiorna. Välj en säkerhetskopia att ta bort. Välj Ta bort.
Om du använder LTR-säkerhetskopior för att uppfylla efterlevnadskraven eller andra verksamhetskritiska krav:
Kontrollera att LTR-säkerhetskopiorna utförs enligt den konfigurerade principen genom att följa stegen som beskrivs i avsnittet Visa säkerhetskopior med hjälp av portalen, Azure CLI eller PowerShell.
Överväg att utföra regelbundna återställningstest för att kontrollera att återställningen av LTR-säkerhetskopior resulterar i förväntat databastillstånd.
Relaterat innehåll
Mer information om tjänstgenererade automatiska säkerhetskopior finns i avsnittet om automatiska säkerhetskopior