Za pomocą usługi Azure SQL Database można ustawić zasady długoterminowego przechowywania kopii zapasowych (LTR), aby automatycznie przechowywać kopie zapasowe w oddzielnych kontenerach usługi Azure Blob Storage przez maksymalnie 10 lat. Następnie możesz odzyskać bazę danych przy użyciu tych kopii zapasowych przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu PowerShell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Moduł Azure Resource Manager programu PowerShell jest nadal obsługiwany przez usługę Azure SQL Database, ale wszystkie przyszłe programowanie dotyczy modułu Az.Sql. Aby uzyskać te polecenia cmdlet, zobacz AzureRM.Sql. Argumenty poleceń w module Az i modułach AzureRm są zasadniczo identyczne.
W przypadku Get-AzSqlDatabaseLongTermRetentionBackup elementów i Restore-AzSqlDatabasemusisz być członkiem jednej z następujących ról:
Rola właściciela subskrypcji lub
Rola współautora subskrypcji lub
Rola współautora programu SQL Server lub
Rola niestandardowa z następującymi uprawnieniami:
Rola Współautor programu SQL Server nie ma uprawnień do usuwania kopii zapasowych LTR.
Uprawnienia kontroli dostępu opartej na rolach (RBAC) platformy Azure można udzielić w zakresie subskrypcji lub grupy zasobów. Jednak aby uzyskać dostęp do kopii zapasowych LTR należących do usuniętego serwera, to uprawnienie musi zostać przyznane w zakresie subskrypcji tego serwera:
W witrynie Azure Portal przejdź do serwera, a następnie wybierz pozycję Kopie zapasowe. Wybierz kartę Zasady przechowywania, aby zmodyfikować ustawienia przechowywania kopii zapasowych.
Na karcie Zasady przechowywania wybierz bazy danych, dla których chcesz ustawić lub zmodyfikować zasady przechowywania długoterminowego kopii zapasowych. Nie ma to wpływu na niezaznaczone bazy danych.
W okienku Konfigurowanie zasad określ żądany okres przechowywania dla kopii zapasowych co tydzień, co miesiąc lub rok. Wybierz okres przechowywania wartości "0", aby wskazać, że nie należy ustawiać długoterminowego przechowywania kopii zapasowych.
Wybierz pozycję Zastosuj , aby zastosować wybrane ustawienia przechowywania do wszystkich wybranych baz danych.
Ważne
Włączenie długoterminowych zasad przechowywania kopii zapasowych może potrwać do 7 dni, aż pierwsza kopia zapasowa stanie się widoczna i będzie dostępna do przywrócenia. Aby uzyskać szczegółowe informacje na temat kadencji tworzenia kopii zapasowych LTR, zobacz długoterminowe przechowywanie kopii zapasowych.
Uruchom polecenie az sql db ltr-policy set, aby utworzyć zasady LTR. W poniższym przykładzie ustawiono zasady przechowywania długoterminowego przez 12 tygodni dla cotygodniowej kopii zapasowej.
az sql db ltr-policy set \
--resource-group mygroup \
--server myserver \
--name mydb \
--weekly-retention "P12W"
W tym przykładzie ustawiono zasady przechowywania przez 12 tygodni dla cotygodniowej kopii zapasowej, 5 lat dla rocznej kopii zapasowej oraz tydzień 15 kwietnia, w którym należy wykonać roczną kopię zapasową LTR.
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
Wyświetlanie kopii zapasowych i przywracanie z kopii zapasowej
Wyświetl kopie zapasowe przechowywane dla określonej bazy danych z zasadami LTR i przywróć je z tych kopii zapasowych.
W witrynie Azure Portal przejdź do serwera, a następnie wybierz pozycję Kopie zapasowe. Aby wyświetlić dostępne kopie zapasowe LTR dla określonej bazy danych, wybierz pozycję Zarządzaj w kolumnie Dostępne kopie zapasowe LTR. Zostanie wyświetlone okienko z listą dostępnych kopii zapasowych LTR dla wybranej bazy danych.
W wyświetlonym okienku Dostępne kopie zapasowe LTR przejrzyj dostępne kopie zapasowe. Wybierz kopię zapasową do przywrócenia.
Aby przywrócić z dostępnej kopii zapasowej LTR, wybierz kopię zapasową, z której chcesz przywrócić, a następnie wybierz pozycję Przywróć.
Wybierz nazwę nowej bazy danych, a następnie wybierz pozycję Przejrzyj i utwórz , aby przejrzeć szczegóły przywracania. Wybierz pozycję Utwórz , aby przywrócić bazę danych z wybranej kopii zapasowej.
Na pasku narzędzi wybierz ikonę powiadomienia, aby wyświetlić stan zadania przywracania.
Po zakończeniu zadania przywracania otwórz stronę Bazy danych SQL, aby wyświetlić nowo przywróconą bazę danych.
az sql db ltr-policy show \
--resource-group mygroup \
--server myserver \
--name mydb
Wyświetlanie kopii zapasowych LTR
Użyj polecenia az sql db ltr-backup list, aby wyświetlić listę kopii zapasowych LTR dla bazy danych. To polecenie służy do znajdowania parametru name do użycia w innych poleceniach.
az sql db ltr-backup list \
--location eastus2 \
--server myserver \
--database mydb
az sql db ltr-backup restore \
--dest-database targetdb \
--dest-server myserver \
--dest-resource-group mygroup \
--backup-id $get_backup_id
Ważne
Aby przywrócić z kopii zapasowej LTR po usunięciu serwera lub grupy zasobów, musisz mieć uprawnienia w zakresie subskrypcji serwera i że subskrypcja musi być aktywna. Należy również pominąć opcjonalny parametr -ResourceGroupName.
Uwaga
W tym miejscu możesz nawiązać połączenie z przywróconą bazą danych przy użyciu programu SQL Server Management Studio, aby wykonać potrzebne zadania, takie jak zamiana bazy danych. Zobacz przywracanie do punktu w czasie.
Wyświetlanie zasad LTR
W tym przykładzie pokazano, jak wyświetlić listę zasad LTR na serwerze.
# 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
Czyszczenie zasad LTR
W tym przykładzie pokazano, jak wyczyścić zasady LTR z bazy danych.
W tym przykładzie pokazano, jak wyświetlić listę kopii zapasowych LTR na serwerze.
# 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
Przywracanie z kopii zapasowych LTR
W tym przykładzie pokazano, jak przywrócić z kopii zapasowej LTR. Należy pamiętać, że ten interfejs nie zmienił się, ale parametr identyfikatora zasobu wymaga teraz identyfikatora zasobu kopii zapasowej LTR.
# 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
Ważne
Aby przywrócić z kopii zapasowej LTR po usunięciu serwera lub grupy zasobów, musisz mieć uprawnienia w zakresie subskrypcji serwera i że subskrypcja musi być aktywna. Należy również pominąć opcjonalny parametr -ResourceGroupName.
Jeśli używasz kopii zapasowych LTR w celu spełnienia wymagań dotyczących zgodności lub innych wymagań o znaczeniu krytycznym, rozważ przeprowadzenie okresowych prób odzyskiwania w celu sprawdzenia, czy można przywrócić kopie zapasowe LTR i czy przywracanie powoduje oczekiwany stan bazy danych.
Uwaga
W tym miejscu możesz połączyć się z przywróconą bazą danych przy użyciu programu SQL Server Management Studio, aby wykonać niezbędne zadania, takie jak wyodrębnienie bitu danych z przywróconej bazy danych w celu skopiowania do istniejącej bazy danych lub usunięcie istniejącej bazę danych i zmiana nazwy przywróconej bazy danych na nazwę istniejącej nazwę bazy danych. Zobacz przywracanie do punktu w czasie.
Usuwanie kopii zapasowych LTR
Usuwanie kopii zapasowych przechowywanych dla określonej bazy danych przy użyciu zasad LTR.
Ważne
Usuwanie kopii zapasowej LTR nie jest odwracalne. Aby usunąć kopię zapasową LTR po usunięciu serwera, musisz mieć uprawnienie Zakres subskrypcji. Powiadomienia o każdym usunięciu w usłudze Azure Monitor można skonfigurować, filtrując operację "Usuwa kopię zapasową długoterminowego przechowywania". Dziennik aktywności zawiera informacje o tym, kto i kiedy złożył żądanie. Aby uzyskać szczegółowe instrukcje, zobacz Tworzenie alertów dziennika aktywności.
W witrynie Azure Portal przejdź do serwera logicznego usługi Azure SQL Database.
Wybierz pozycję Kopie zapasowe. Aby wyświetlić dostępne kopie zapasowe LTR dla określonej bazy danych, wybierz pozycję Zarządzaj w kolumnie Dostępne kopie zapasowe LTR. Zostanie wyświetlone okienko z listą dostępnych kopii zapasowych LTR dla wybranej bazy danych.
W wyświetlonym okienku Dostępne kopie zapasowe LTR przejrzyj dostępne kopie zapasowe. Wybierz kopię zapasową do usunięcia. Wybierz Usuń.