Wiederherstellen einer Datenbank in einer verwalteten Azure SQL-Instanz auf den Zustand zu einem früheren Zeitpunkt

Gilt für: Azure SQL Managed Instance

Verwenden Sie die Point-in-Time-Wiederherstellung (Point-In-Time Restore, PITR), um eine Datenbank als Kopie einer anderen Datenbank in einem früheren Zustand zu erstellen. In diesem Artikel erfahren Sie, wie Sie eine Point-in-Time-Wiederherstellung einer Datenbank in einer verwalteten Azure SQL-Instanz durchführen.

Die Point-in-Time-Wiederherstellung ist in Wiederherstellungsszenarien hilfreich, die durch Fehler, falsch geladene Daten oder das Löschen wichtiger Daten verursacht wurden. Sie können sie aber auch einfach für Tests oder für die Überwachung verwenden. Sicherungsdateien werden je nach Datenbankeinstellungen für einen Zeitraum zwischen sieben und 35 Tagen aufbewahrt.

Mit der Point-in-Time-Wiederherstellung kann eine Datenbank wiederhergestellt werden:

  • aus einer vorhandenen Datenbank.
  • aus einer gelöschten Datenbank.
  • in derselben verwalteten SQL-Instanz oder in einer anderen verwalteten SQL-Instanz.

Einschränkungen

Die Point-in-Time-Wiederherstellung in einer verwalteten SQL-Instanz ist mit folgenden Einschränkungen verbunden:

  • Bei der Wiederherstellung von einer Instanz der verwalteten SQL-Instanz in eine andere müssen sich beide Instanzen im gleichen Abonnement und in der gleichen Region befinden. Die regions- und abonnementübergreifende Wiederherstellung wird derzeit nicht unterstützt.
  • Eine Point-in-Time-Wiederherstellung einer gesamten verwalteten SQL-Instanz ist nicht möglich. Dieser Artikel beschreibt nur die Möglichkeiten: die Point-in-Time-Wiederherstellung einer Datenbank, die in einer verwalteten SQL-Instanz gehostet wird.

Warnung

Berücksichtigen Sie die Speichergröße Ihrer verwalteten SQL-Instanz. Abhängig von der Größe der wiederherzustellenden Daten kann es vorkommen, dass der Instanzspeicher nicht ausreicht. Wenn nicht ausreichend Speicherplatz für die wiederhergestellten Daten verfügbar ist, müssen Sie anders vorgehen.

Die folgende Tabelle enthält Point-in-Time-Wiederherstellungsszenarien für verwaltete SQL-Instanzen:

Wiederherstellen vorhandener Datenbanken in derselben Instanz der verwalteten SQL-Instanz Wiederherstellen vorhandener Datenbanken in einer anderen verwalteten SQL-Instanz Wiederherstellen gelöschter Datenbanken in der gleichen verwalteten SQL-Instanz Wiederherstellen gelöschter Datenbanken in einer anderen verwalteten SQL-Instanz
Azure portal Ja Ja Ja Ja
Azure-Befehlszeilenschnittstelle Ja Ja Nein Nein
PowerShell Ja Ja Ja Ja

Wiederherstellen einer vorhandenen Datenbank

Eine vorhandene Datenbank kann über das Azure-Portal, mithilfe von PowerShell oder über die Azure CLI in der gleichen verwalteten SQL-Instanz wiederhergestellt werden. Wenn Sie eine Datenbank in einer anderen verwalteten SQL-Instanz wiederherstellen möchten, verwenden Sie PowerShell oder die Azure CLI, damit Sie die Eigenschaften für die verwaltete SQL-Zielinstanz und die Ressourcengruppe festlegen können. Wenn Sie diese Parameter nicht festlegen, wird die Datenbank standardmäßig in der vorhandenen verwalteten SQL-Instanz wiederhergestellt. Das Azure-Portal unterstützt derzeit keine Wiederherstellung in einer anderen verwalteten SQL-Instanz.

  1. Melden Sie sich beim Azure-Portal an.

  2. Navigieren Sie zu Ihrer verwalteten SQL-Instanz, und wählen Sie die wiederherzustellende Datenbank aus.

  3. Wählen Sie auf der Datenbankseite die Option Wiederherstellen aus:

    Wiederherstellen einer Datenbank mithilfe des Azure-Portals

  4. Wählen Sie auf der Seite Wiederherstellen den Zeitpunkt (Datum und Uhrzeit) für die Datenbankwiederherstellung aus.

  5. Wählen Sie Bestätigen aus, um Ihre Datenbank wiederherzustellen. Daraufhin wird der Wiederherstellungsprozess gestartet. Hierbei wird eine neue Datenbank erstellt und mit Daten aus der ursprünglichen Datenbank zum angegebenen Zeitpunkt aufgefüllt. Weitere Informationen zum Wiederherstellungsprozess finden Sie unter Wiederherstellungszeit.

Wiederherstellung einer gelöschten Datenbank

Eine gelöschte Datenbank kann nur über PowerShell oder das Azure-Portal wiederhergestellt werden. Zum Wiederherstellen einer gelöschten Datenbank in derselben Instanz verwenden Sie entweder das Azure-Portal oder PowerShell. Zum Wiederherstellen einer gelöschten Datenbank in einer anderen Instanz verwenden Sie PowerShell.

Portal

Öffnen Sie zum Wiederherstellen einer verwalteten Datenbank über das Azure-Portal die Übersichtsseite der verwalteten SQL-Instanzen, und wählen Sie Gelöschte Datenbanken aus. Wählen Sie eine gelöschte Datenbank aus, die Sie wiederherstellen möchten, und geben Sie den Namen für die neue Datenbank ein, die mit den aus der Sicherung wiederhergestellten Daten erstellt wird.

Screenshot: Wiederherstellen einer gelöschten Azure SQL-Datenbank-Instanz

PowerShell

Wenn Sie eine Datenbank in derselben Instanz wiederherstellen möchten, aktualisieren Sie die Parameterwerte, und führen Sie dann den folgenden PowerShell-Befehl aus:

$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

Wenn Sie die Datenbank in einer anderen verwalteten SQL-Instanz wiederherstellen möchten, geben Sie auch die Namen der Zielressourcengruppe und der verwalteten SQL-Zielinstanz an:

$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 

Überschreiben einer vorhandenen Datenbank

Wenn Sie eine vorhandene Datenbank überschreiben möchten, ist außerdem Folgendes erforderlich:

  1. Löschen Sie die vorhandene Datenbank, die Sie überschreiben möchten.
  2. Ändern Sie den Namen der mittels Point-in-Time-Wiederherstellung wiederhergestellten Datenbank in den Namen der gelöschten Datenbank.

Löschen der ursprünglichen Datenbank

Sie können die Datenbank über das Azure-Portal, über PowerShell oder über T-SQL löschen.

Sie können die Datenbank auch löschen, indem Sie eine direkte Verbindung mit der verwalteten SQL-Instanz herstellen, SQL Server Management Studio (SSMS) starten und anschließend den folgenden Transact-SQL-Befehl (T-SQL) ausführen:

DROP DATABASE WorldWideImporters;

Verwenden Sie eine der folgenden Methoden, um eine Verbindung mit der Datenbank in der verwalteten SQL-Instanz herzustellen:

Wählen Sie im Azure-Portal die Datenbank der verwalteten SQL-Instanz und anschließend die Option Löschen aus.

Löschen einer Datenbank über das Azure-Portal

Ändern des Namens der neuen Datenbank, damit sie mit dem ursprünglichen Datenbanknamen übereinstimmt

Stellen Sie eine direkte Verbindung mit der verwalteten SQL-Instanz her, und starten Sie SQL Server Management Studio. Führen Sie anschließend die folgende T-SQL-Abfrage (Transact-SQL) aus. Die Abfrage ändert den Namen der wiederhergestellten Datenbank in den Namen der gelöschten Datenbank, die Sie überschreiben möchten.

ALTER DATABASE WorldWideImportersPITR MODIFY NAME = WorldWideImporters;

Verwenden Sie eine der folgenden Methoden, um eine Verbindung mit der Datenbank in der verwalteten SQL-Instanz herzustellen:

Nächste Schritte

Erfahren Sie mehr über Automatisierte Sicherungen.