W usłudze Azure SQL Managed Instance można skonfigurować zasady długoterminowego przechowywania kopii zapasowych (LTR). Dzięki temu można automatycznie przechowywać kopie zapasowe bazy danych 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 w witrynie Azure Portal, interfejsie wiersza polecenia platformy Azure i programie PowerShell.
W poniższych sekcjach pokazano, jak używać witryny Azure Portal, programu PowerShell i interfejsu wiersza polecenia platformy Azure do konfigurowania długoterminowego przechowywania kopii zapasowych, wyświetlania kopii zapasowych w usłudze Azure SQL Storage i przywracania z kopii zapasowej w usłudze Azure SQL Storage.
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, jednak przyszłe programowanie zostanie wykonane w module 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-AzSqlInstanceDatabaseLongTermRetentionBackup elementów i Restore-AzSqlInstanceDatabasemusisz być członkiem jednej z następujących ról:
Rola właściciela subskrypcji lub
Rola współautora wystąpienia zarządzanego SQL lub
Rola niestandardowa z następującymi uprawnieniami:
Rola Współautor wystąpienia zarządzanego SQL 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. Aby jednak uzyskać dostęp do kopii zapasowych z przechowywaniem długoterminowym, które należą do usuniętego wystąpienia, uprawnienie musi zostać przyznane w zakresie subskrypcji tego wystąpienia.
Usługę SQL Managed Instance można skonfigurować tak, aby zachowywała automatyczne kopie zapasowe przez okres dłuższy niż okres przechowywania dla warstwy usługi.
W witrynie Azure Portal wybierz wystąpienie zarządzane, a następnie wybierz pozycję Kopie zapasowe. Na karcie Zasady przechowywania wybierz bazy danych, dla których chcesz ustawić lub zmodyfikować zasady przechowywania długoterminowego kopii zapasowych. Zmiany nie będą stosowane do żadnych baz danych, które nie są zaznaczone.
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.
Po zakończeniu wybierz pozycję Zastosuj.
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.
az sql midb show /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--subscription mysubscription
Uruchom polecenie az sql midb 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 midb ltr-policy set /
--resource-group mygroup /
--managed-instance myinstance /
--name mymanageddb /
--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.
Aby wyświetlić dostępne długoterminowe kopie zapasowe w witrynie Azure Portal, wykonaj następujące kroki:
W witrynie Azure Portal wybierz wystąpienie zarządzane, a następnie wybierz pozycję Kopie zapasowe. Na karcie Dostępne kopie zapasowe wybierz bazę danych, dla której chcesz wyświetlić dostępne kopie zapasowe. Zaznacz Zarządzaj.
W okienku Zarządzanie kopiami zapasowymi przejrzyj dostępne kopie zapasowe.
Możesz również przywrócić z tej strony, wybierając kopię zapasową i wybierając pozycję Przywróć.
Alternatywnie, aby przywrócić kopię zapasową z długoterminowego przechowywania przy użyciu witryny Azure Portal, wykonaj następujące kroki:
Przejdź do docelowego wystąpienia zarządzanego SQL, do którego planujesz przywrócić bazę danych.
Na stronie Przegląd wybierz pozycję + Nowa baza danych, aby otworzyć stronę Tworzenie usługi Azure SQL Managed Database.
Na karcie Podstawy na stronie Tworzenie usługi Azure SQL Managed Database podaj szczegóły subskrypcji i grupy zasobów w obszarze Szczegóły projektu. Następnie w obszarze Szczegóły bazy danych podaj nową nazwę bazy danych, którą planujesz przywrócić. Upewnij się, że na liście rozwijanej znajduje się poprawne wystąpienie zarządzane. Następnie wybierz pozycję Dalej: Źródło danych >
Na karcie Źródło danych wybierz pozycję Przywracanie do punktu w czasie w obszarze Użyj istniejących danych. Podaj subskrypcję, grupę zasobów i wystąpienie zarządzane zawierające źródłową bazę danych. Z listy rozwijanej Zarządzana baza danych wybierz bazę danych , z której chcesz przywrócić, a następnie wybierz punkt w czasie, z którego chcesz przywrócić bazę danych. Wystąpienie źródłowe i docelowe może być takie same lub dwa różne wystąpienia. Wybierz pozycję Dalej: Dodatkowe ustawienia >
Na karcie Dodatkowe ustawienia można zaznaczyć pole, aby dziedziczyć zasady przechowywania ze źródłowej bazy danych lub, alternatywnie, możesz wybrać pozycję Konfiguruj przechowywanie, aby otworzyć stronę Konfigurowanie zasad i ustawić żądane zasady przechowywania dla przywróconej bazy danych. Po zakończeniu wybierz pozycję Przejrzyj i utwórz.
W obszarze Przeglądanie i tworzenie po pomyślnym zakończeniu walidacji wybierz pozycję Utwórz , aby przywrócić bazę danych.
Ta akcja rozpoczyna proces przywracania, który tworzy nową bazę danych i wypełnia ją danymi z oryginalnej bazy danych w określonym punkcie w czasie. Aby uzyskać więcej informacji na temat procesu odzyskiwania, zobacz Czas odzyskiwania.
Aby przywrócić kopię zapasową LTR po usunięciu wystąpienia, musisz mieć uprawnienia ograniczone do subskrypcji wystąpienia i ta subskrypcja musi być aktywna.
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.
Wyświetlanie zasad LTR
W tym przykładzie pokazano, jak wyświetlić listę zasad LTR w ramach wystąpienia pojedynczej bazy danych.
# gets the current version of LTR policy for a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
}
Get-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
W tym przykładzie pokazano, jak wyświetlić listę zasad LTR dla wszystkich baz danych w wystąpieniu.
# 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
}
Czyszczenie zasad LTR
W tym przykładzie pokazano, jak wyczyścić zasady LTR z bazy danych.
# remove the LTR policy from a database
$LTRPolicy = @{
InstanceName = $instanceName
DatabaseName = $dbName
ResourceGroupName = $resourceGroup
RemovePolicy = $true
}
Set-AzSqlInstanceDatabaseBackupLongTermRetentionPolicy @LTRPolicy
Wyświetlanie kopii zapasowych LTR
W tym przykładzie pokazano, jak wyświetlić listę kopii zapasowych LTR w ramach wystąpienia.
$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
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 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
Ważne
Aby przywrócić kopię zapasową LTR po usunięciu wystąpienia, musisz mieć uprawnienia ograniczone do subskrypcji wystąpienia i ta subskrypcja musi być aktywna. Należy również pominąć opcjonalny parametr -ResourceGroupName.
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 wystąpienia, 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 wystąpienia zarządzanego SQL.
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ń.
W tym przykładzie pokazano, jak usunąć najwcześniejszą kopię zapasową LTR z listy kopii zapasowych. Ten przykład pobiera listę kopii zapasowych LTR dla określonej bazy danych z regionu platformy Azure w ramach danego wystąpienia zarządzanego SQL.
# 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
Ograniczenia
Kopie zapasowe bazy danych pobrane z wystąpień skonfigurowanych przy użyciu zasad aktualizacji programu SQL Server 2022 można przywrócić do wystąpień skonfigurowanych przy użyciu zawsze aktualnych zasad aktualizacji programu SQL Server 2022 lub Zawsze. Kopie zapasowe bazy danych pobrane z wystąpień skonfigurowanych przy użyciu zawsze aktualnych zasad aktualizacji można przywrócić tylko do wystąpień skonfigurowanych przy użyciu zawsze aktualnych zasad aktualizacji.
Następne kroki
Aby dowiedzieć się więcej o automatycznych kopiach zapasowych generowanych przez usługę, zobacz automatyczne kopie zapasowe.
Aby dowiedzieć się więcej na temat długoterminowego przechowywania kopii zapasowych, zobacz długoterminowe przechowywanie kopii zapasowych.