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 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 versionen och de beroende biblioteken som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Förbered din miljö för PowerShell.
Not
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
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:
SQL Server-deltagarrollen har inte behörighet att ta bort LTR-säkerhetskopior.
Behörigheter för rollbaserad åtkomstkontroll i Azure kan beviljas inom prenumerationsområde eller resursgruppsområde. 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 -prenumerationen omfånget för servern:
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 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.
Välj Använd för att tillämpa de valda kvarhållningsinställningarna på alla valda databaser.
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 mer information om kadensen för LTR-säkerhetskopiering, se 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.
Obs
Om den logiska servern har tagits bort använder du Azure CLI- eller PowerShell-kommandon för att visa och återställa LTR-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ä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 återställa från.
Om du vill återställa från en tillgänglig LTR-säkerhetskopiering 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.
Kör kommandot az sql db ltr-policy show för att visa LTR-principen för en enskild databas på servern.
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 för att visa LTR-säkerhetskopior 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
Viktig
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 den valfria parametern -ResourceGroupName.
Not
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 en viss 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-policy
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
Viktig
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 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.
Not
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 en specifik tidpunkt för .
Ta bort LTR-säkerhetskopior
Ta bort säkerhetskopior som behålls för en specifik databas med en LTR-princip.
Viktig
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ä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.
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 i visa säkerhetskopior avsnittet antingen med hjälp av Portal, 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.