Przywracanie bazy danych w wystąpieniu zarządzanym Azure SQL do wcześniejszego punktu w czasieRestore a database in Azure SQL Managed Instance to a previous point in time

dotyczy: Wystąpienie zarządzane Azure SQL

Użyj funkcji przywracania do określonego momentu (kopie), aby utworzyć bazę danych jako kopię innej bazy danych od pewnego czasu w przeszłości.Use point-in-time restore (PITR) to create a database as a copy of another database from some time in the past. W tym artykule opisano, jak wykonać przywracanie do punktu w czasie dla bazy danych w wystąpieniu zarządzanym usługi Azure SQL.This article describes how to do a point-in-time restore of a database in Azure SQL Managed Instance.

Przywracanie do punktu w czasie jest przydatne w scenariuszach odzyskiwania, takich jak zdarzenia spowodowane błędami, nieprawidłowo załadowane dane lub usuwanie kluczowych danych.Point-in-time restore is useful in recovery scenarios, such as incidents caused by errors, incorrectly loaded data, or deletion of crucial data. Można go również użyć po prostu do testowania lub inspekcji.You can also use it simply for testing or auditing. Pliki kopii zapasowej są przechowywane przez 7 – 35 dni, w zależności od ustawień bazy danych.Backup files are kept for 7 to 35 days, depending on your database settings.

Przywracanie do punktu w czasie umożliwia przywrócenie bazy danych:Point-in-time restore can restore a database:

  • z istniejącej bazy danych.from an existing database.
  • z usuniętej bazy danych.from a deleted database.
  • z tym samym wystąpieniem zarządzanym SQL lub innym wystąpieniem zarządzanym SQL.to the same SQL Managed Instance, or to another SQL Managed Instance.

OgraniczeniaLimitations

Przywracanie do punktu w czasie do wystąpienia zarządzanego SQL ma następujące ograniczenia:Point-in-time restore to SQL Managed Instance has the following limitations:

  • Gdy przywracasz z jednego wystąpienia wystąpienia zarządzanego SQL na inny, oba wystąpienia muszą znajdować się w tej samej subskrypcji i regionie.When you're restoring from one instance of SQL Managed Instance to another, both instances must be in the same subscription and region. Przywracanie między regionami i subskrypcjami nie jest obecnie obsługiwane.Cross-region and cross-subscription restore aren't currently supported.
  • Przywracanie do punktu w czasie całego wystąpienia zarządzanego SQL nie jest możliwe.Point-in-time restore of a whole SQL Managed Instance is not possible. W tym artykule wyjaśniono, co jest możliwe: Przywracanie do punktu w czasie dla bazy danych hostowanej w wystąpieniu zarządzanym SQL.This article explains only what's possible: point-in-time restore of a database that's hosted on SQL Managed Instance.

Ostrzeżenie

Zapoznaj się z rozmiarem magazynu zarządzanego wystąpienia SQL.Be aware of the storage size of your SQL Managed Instance. W zależności od rozmiaru danych do przywrócenia można wypróbować magazyn z wystąpieniami.Depending on size of the data to be restored, you might run out of instance storage. Jeśli nie ma wystarczającej ilości miejsca na przywrócone dane, użyj innego podejścia.If there isn't enough space for the restored data, use a different approach.

W poniższej tabeli przedstawiono scenariusze przywracania do punktu w czasie dla wystąpienia zarządzanego SQL:The following table shows point-in-time restore scenarios for SQL Managed Instance:

Przywróć istniejącą bazę danych do tego samego wystąpienia wystąpienia zarządzanego SQLRestore existing DB to the same instance of SQL Managed Instance Przywracanie istniejącej bazy danych do innego wystąpienia zarządzanego SQLRestore existing DB to another SQL Managed Instance Przywracanie usuniętej bazy danych do tego samego wystąpienia zarządzanego SQLRestore dropped DB to same SQL Managed Instance Przywracanie usuniętej bazy danych do innego wystąpienia zarządzanego SQLRestore dropped DB to another SQL Managed Instance
Witryna Azure PortalAzure portal TakYes NieNo TakYes NieNo
Interfejs wiersza polecenia platformy AzureAzure CLI TakYes TakYes NieNo NieNo
Program PowerShellPowerShell TakYes TakYes TakYes TakYes

Przywracanie istniejącej bazy danychRestore an existing database

Przywróć istniejącą bazę danych do tego samego wystąpienia zarządzanego SQL przy użyciu Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure.Restore an existing database to the same SQL Managed Instance using the Azure portal, PowerShell, or the Azure CLI. Aby przywrócić bazę danych do innego wystąpienia zarządzanego SQL, należy użyć programu PowerShell lub interfejsu wiersza polecenia platformy Azure, aby można było określić właściwości docelowego wystąpienia zarządzanego SQL i grupy zasobów.To restore a database to another SQL Managed Instance, use PowerShell or the Azure CLI so you can specify the properties for the target SQL Managed Instance and resource group. Jeśli nie określisz tych parametrów, baza danych zostanie domyślnie przywrócona do istniejącego wystąpienia zarządzanego SQL.If you don't specify these parameters, the database will be restored to the existing SQL Managed Instance by default. Azure Portal nie obsługuje obecnie przywracania do innego wystąpienia zarządzanego SQL.The Azure portal doesn't currently support restoring to another SQL Managed Instance.

  1. Zaloguj się w witrynie Azure Portal.Sign in to the Azure portal.

  2. Przejdź do wystąpienia zarządzanego SQL i wybierz bazę danych, którą chcesz przywrócić.Go to your SQL Managed Instance and select the database that you want to restore.

  3. Na stronie Baza danych wybierz pozycję Przywróć :Select Restore on the database page:

    Przywracanie bazy danych przy użyciu Azure Portal

  4. Na stronie przywracanie wybierz punkt dla daty i godziny, do której chcesz przywrócić bazę danych.On the Restore page, select the point for the date and time that you want to restore the database to.

  5. Wybierz pozycję Potwierdź , aby przywrócić bazę danych.Select Confirm to restore your database. Ta akcja uruchamia proces przywracania, który tworzy nową bazę danych i wypełnia ją danymi z oryginalnej bazy danych w określonym momencie.This action starts the restore process, which creates a new database and populates it with data from the original database at the specified point in time. Aby uzyskać więcej informacji na temat procesu odzyskiwania, zobacz czas odzyskiwania.For more information about the recovery process, see Recovery time.

Przywracanie usuniętej bazy danychRestore a deleted database

Przywracanie usuniętej bazy danych można wykonać przy użyciu programu PowerShell lub Azure Portal.Restoring a deleted database can be done by using PowerShell or Azure portal. Aby przywrócić usuniętą bazę danych do tego samego wystąpienia, użyj Azure Portal lub programu PowerShell.To restore a deleted database to the same instance, use either the Azure portal or PowerShell. Aby przywrócić usuniętą bazę danych do innego wystąpienia, użyj programu PowerShell.To restore a deleted database to another instance, use PowerShell.

PortalPortal

Aby odzyskać zarządzaną bazę danych przy użyciu Azure Portal, Otwórz stronę Omówienie wystąpienia zarządzanego SQL i wybierz pozycję usunięte bazy danych.To recover a managed database using the Azure portal, open the SQL Managed Instance overview page, and select Deleted databases. Wybierz usuniętą bazę danych, którą chcesz przywrócić, a następnie wpisz nazwę nowej bazy danych, która zostanie utworzona z przywróconymi danymi z kopii zapasowej.Choose a deleted database that you want to restore, and type the name for the new database that will be created with data restored from the backup.

Zrzut ekranu przedstawiający przywracanie usuniętej bazy danych wystąpienia usługi Azure SQL

.. /.. /sql-database../../sql-database

PowerShellPowerShell

Aby przywrócić bazę danych do tego samego wystąpienia, zaktualizuj wartości parametrów, a następnie uruchom następujące polecenie programu PowerShell:To restore a database to the same instance, update the parameter values and then run the following PowerShell command:

$subscriptionId = "<Subscription ID>"
Get-AzSubscription -SubscriptionId $subscriptionId
Select-AzSubscription -SubscriptionId $subscriptionId

$resourceGroupName = "<Resource group name>"
$managedInstanceName = "<SQL Managed Instance name>"
$deletedDatabaseName = "<Source database name>"
$targetDatabaseName = "<target database name>"

$deletedDatabase = Get-AzSqlDeletedInstanceDatabaseBackup -ResourceGroupName $resourceGroupName `
-InstanceName $managedInstanceName -DatabaseName $deletedDatabaseName

Restore-AzSqlinstanceDatabase -FromPointInTimeBackup -Name $deletedDatabase.Name `
   -InstanceName $deletedDatabase.ManagedInstanceName `
   -ResourceGroupName $deletedDatabase.ResourceGroupName `
   -DeletionDate $deletedDatabase.DeletionDate `
   -PointInTime UTCDateTime `
   -TargetInstanceDatabaseName $targetDatabaseName

Aby przywrócić bazę danych do innego wystąpienia zarządzanego SQL, należy również określić nazwy docelowej grupy zasobów i docelowego wystąpienia zarządzanego SQL:To restore the database to another SQL Managed Instance, also specify the names of the target resource group and target SQL Managed Instance:

$targetResourceGroupName = "<Resource group of target SQL Managed Instance>"
$targetInstanceName = "<Target SQL Managed Instance name>"

Restore-AzSqlinstanceDatabase -FromPointInTimeBackup -Name $deletedDatabase.Name `
   -InstanceName $deletedDatabase.ManagedInstanceName `
   -ResourceGroupName $deletedDatabase.ResourceGroupName `
   -DeletionDate $deletedDatabase.DeletionDate `
   -PointInTime UTCDateTime `
   -TargetInstanceDatabaseName $targetDatabaseName `
   -TargetResourceGroupName $targetResourceGroupName `
   -TargetInstanceName $targetInstanceName 

Zastąp istniejącą bazę danychOverwrite an existing database

Aby zastąpić istniejącą bazę danych, musisz:To overwrite an existing database, you must:

  1. Usuń istniejącą bazę danych, która ma zostać zastąpiona.Drop the existing database that you want to overwrite.
  2. Zmień nazwę bazy danych "punkt w czasie" na nazwę usuniętej bazy danych.Rename the point-in-time-restored database to the name of the database that you dropped.

Usuń oryginalną bazę danychDrop the original database

Bazę danych można usunąć przy użyciu Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure.You can drop the database by using the Azure portal, PowerShell, or the Azure CLI.

Możesz również porzucić bazę danych, łącząc się bezpośrednio z wystąpieniem zarządzanym SQL, rozpoczynając SQL Server Management Studio (SSMS), a następnie uruchamiając następujące polecenie Transact-SQL (T-SQL):You can also drop the database by connecting to the SQL Managed Instance directly, starting SQL Server Management Studio (SSMS), and then running the following Transact-SQL (T-SQL) command:

DROP DATABASE WorldWideImporters;

Użyj jednej z następujących metod, aby nawiązać połączenie z bazą danych w wystąpieniu zarządzanym SQL:Use one of the following methods to connect to your database in the SQL Managed Instance:

W Azure Portal wybierz bazę danych z wystąpienia zarządzanego SQL, a następnie wybierz pozycję Usuń.In the Azure portal, select the database from the SQL Managed Instance, and then select Delete.

Usuwanie bazy danych przy użyciu Azure Portal

Zmień nazwę nowej bazy danych tak, aby była zgodna z oryginalną nazwą bazy danychAlter the new database name to match the original database name

Połącz się bezpośrednio z wystąpieniem zarządzanym SQL i uruchom SQL Server Management Studio.Connect directly to the SQL Managed Instance and start SQL Server Management Studio. Następnie uruchom następujące zapytanie Transact-SQL (T-SQL).Then, run the following Transact-SQL (T-SQL) query. Zapytanie zmieni nazwę przywróconej bazy danych na wartość porzuconej bazy danych, która ma zostać zastąpiona.The query will change the name of the restored database to that of the dropped database that you intend to overwrite.

ALTER DATABASE WorldWideImportersPITR MODIFY NAME = WorldWideImporters;

Użyj jednej z następujących metod, aby nawiązać połączenie z bazą danych w wystąpieniu zarządzanym SQL:Use one of the following methods to connect to your database in SQL Managed Instance:

Następne krokiNext steps

Uzyskaj informacje na temat zautomatyzowanych kopii zapasowych.Learn about automated backups.