I Azure SQL Managed Instance kan du konfigurera en långsiktig kvarhållningsprincip för säkerhetskopiering (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 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 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 framtida utveckling kommer att ske i 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-AzSqlInstanceDatabaseLongTermRetentionBackup och Restore-AzSqlInstanceDatabasemåste du vara medlem i någon av följande roller:
Rollen SQL Managed Instance-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. För åtkomst till LTR-säkerhetskopieringar som tillhör en utelämnad instans måste behörigheten dock beviljas i omfånget prenumeration för den instansen.
Du kan konfigurera SQL Managed Instance för att behålla automatiserade säkerhetskopior under en period som är längre än kvarhållningsperioden för tjänstnivån.
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 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.
När du är klar väljer du Använd.
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.
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 sql-målhanterad instans där du planerar att återställa databasen till.
På sidan Översikt väljer du + Ny databas för att öppna sidan Skapa Azure SQL Managed Database .
På fliken Grundinställningar på sidan Skapa Azure SQL Managed Database anger du prenumerations- och resursgruppsinformation under Projektinformation. Under Databasinformation anger du sedan det nya namnet på den databas 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 från. 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 Granska + skapa.
När verifieringen lyckas i Granska och skapa väljer du Skapa för att återställa databasen.
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 när instansen har tagits bort måste du ha behörigheter begränsade till prenumerationen på instansen, och prenumerationen måste vara aktiv.
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.
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-princip
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
Viktigt!
Om du vill återställa från en LTR-säkerhetskopia när instansen har tagits bort måste du ha behörigheter begränsade till prenumerationen på instansen, och prenumerationen måste vara aktiv. Du måste också utelämna parametern -ResourceGroupName.
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 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ä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.
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
Nästa steg
Mer information om tjänstgenererade automatiska säkerhetskopior finns i avsnittet om automatiska säkerhetskopior