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

Gilt für:Azure SQL Managed Instance

In diesem Artikel erfahren Sie, wie Sie eine Point-in-Time-Wiederherstellung einer Datenbank in einer verwalteten Azure SQL-Instanz durchführen. Sie können die Point-in-Time-Wiederherstellung verwenden, um eine Datenbank zu erstellen, die eine Kopie einer Datenbank zu einem bestimmten früheren Zeitpunkt ist.

Übersicht

Die Point-in-Time-Wiederherstellung ist in Wiederherstellungsszenarien nützlich. Beispielsweise bei Vorfällen, die durch Fehler oder Fehler verursacht werden, oder wenn Daten nicht ordnungsgemäß geladen werden oder wichtige Daten gelöscht werden. Sie können sie auch einfach verwenden, um Ihre Datenbankbereitstellung zu testen und zu überwachen. Azure Backup-Dateien werden je nach Datenbankeinstellungen für einen Zeitraum zwischen sieben und 35 Tagen aufbewahrt.

Sie können die Zeitpunktwiederherstellung verwenden, um eine Datenbank in folgenden Szenarien wiederherzustellen:

  • Von einer bestehenden Datenbank
  • Aus einer gelöschten Datenbank
  • Zu derselben verwalteten SQL-Instanz oder zu einer anderen verwalteten SQL-Instanz
  • Zu einer SQL-verwalteten Instanz im selben Abonnement oder zu einer SQL-verwalteten Instanz in einem anderen Abonnement

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

Szenario Azure-Portal Azure CLI PowerShell
Wiederherstellen einer vorhandenen Datenbank in derselben verwalteten SQL-Instanz Ja Ja Ja
Wiederherstellen einer vorhandenen Datenbank in einer anderen verwalteten SQL-Instanz Ja Ja Ja
Wiederherstellen einer gelöschten Datenbank in derselben sql-verwalteten Instanz Ja Ja Ja
Wiederherstellen einer gelöschten Datenbank in einer anderen sql-verwalteten Instanz Ja Ja Ja
Wiederherstellen einer vorhandenen Datenbank in einer sql-verwalteten Instanz in einem anderen Abonnement Ja Ja Ja
Wiederherstellen einer gelöschten Datenbank in einer sql-verwalteten Instanz in einem anderen Abonnement Ja Ja Ja

Berechtigungen

Um eine Datenbank wiederherzustellen, müssen Sie entweder:

Um eine Datenbank in einem anderen Zielabonnement wiederherzustellen, sollten Sie auch über die folgenden Berechtigungen verfügen, wenn Sie sich nicht in der Rolle "Mitwirkender der verwalteten SQL-Instanz " befinden:

  • Microsoft.Sql/managedInstances/databases/readBackups/action für die verwaltete SQL-Quellinstanz.
  • Microsoft.Sql/managedInstances/crossSubscriptionPITR/action für die verwaltete SQL-Zielinstanz.

Weitere Informationen finden Sie unter Integrierte Azure-Rollen.

Einschränkungen

Hinweis

Verwenden Sie die aktuelle Version des Create- oder Update-API-Aufrufs für alle Datenbankwiederherstellungsvorgänge.

Die folgenden Einschränkungen gelten für die Zeitpunktwiederherstellung in SQL Managed Instance:

  • Sie können die Wiederherstellung zu einem bestimmten Zeitpunkt nicht verwenden, um die gesamte Bereitstellung einer SQL Managed Instance wiederherzustellen. Verwenden Sie die Point-in-Time-Wiederherstellung nur, um eine Kopie einer Datenbank zu erstellen, die in der verwalteten SQL-Instanz gehostet wird.

  • Einschränkungen bei der Point-in-Time-Wiederherstellung hängen davon ab, ob Sie Ihre Datenbank in einer SQL-verwalteten Instanz im selben Abonnement oder in einer SQL-verwalteten Instanz in einem anderen Abonnement wiederherstellen.

  • Wenn Dienstendpunktrichtlinien auf Azure SQL Managed Instance aktiviert sind, verhindert das Anwenden einer Dienstendpunktrichtlinie auf ein Subnetz Point-in-Time-Wiederherstellungen aus Instanzen in anderen Subnetzen.

Warnung

Beachten Sie die Speichergröße Ihrer verwalteten SQL-Instanz. Abhängig von der Größe der wiederherzustellenden Daten geht Ihrer SQL Managed Instance möglicherweise der Speicherplatz aus. Wenn Sie nicht über genügend Speicherplatz in Ihrer sql-verwalteten Instanz für die wiederhergestellten Daten verfügen, verwenden Sie einen anderen Ansatz.

Wiederherstellen im selben Abonnement

Wenn Sie eine von SQL verwaltete Instanz in einer anderen sql-verwalteten Instanz im selben Azure-Abonnement wiederherstellen, müssen sich beide von SQL verwalteten Instanzen in derselben Region befinden. Eine regionsübergreifende Wiederherstellung wird derzeit nicht unterstützt.

Wiederherstellung in einem anderen Abonnement

Die Wiederherstellung einer Point-in-Time-Sicherung über Abonnements hinweg hat die folgenden Einschränkungen:

  • Beide Abonnements müssen sich in derselben Region befinden.

  • Beide Abonnements müssen sich im selben Mandanten befinden.

  • Der Abonnementtyp muss entweder Enterprise Agreement, Cloud Solution Provider, Microsoft Certified Partner oder nutzungsbasierte Bezahlung sein.

  • Sie können die Wiederherstellungsaktion nur für die primäre Instanz verwenden.

  • Sie können eine Sicherung nur aus der primären Region wiederherstellen. Die Wiederherstellung einer Datenbank aus der georeplizierten Sekundärregion wird für die abonnementübergreifende Wiederherstellung zu einem bestimmten Zeitpunkt nicht unterstützt.

  • Der Benutzer, der die Wiederherstellung ausführt, muss entweder die Rolle SQL Managed Instance Contributor zugewiesen bekommen haben oder über die folgenden expliziten Berechtigungen verfügen:

    • Microsoft.Sql/managedInstances/databases/readBackups/action für die verwaltete SQL-Quellinstanz.
    • Microsoft.Sql/managedInstances/crossSubscriptionPITR/action auf der verwalteten SQL-Zielinstanz.
  • Wenn Sie einen eigenen Schlüssel verwenden (Bring Your Own Key, BYOK), muss der Schlüssel in beiden Abonnements vorhanden sein.

Wiederherstellen einer vorhandenen Datenbank

Sie können eine vorhandene Datenbank im selben Abonnement über das Azure-Portal, mit PowerShell oder der Azure CLI wiederherstellen. Wenn Sie in demselben Abonnement auf einer anderen Instanz wiederherstellen, indem Sie PowerShell oder die Azure CLI verwenden, stellen Sie sicher, dass Sie die Eigenschaften für die SQL Managed Instance-Zielressource angeben. Die Datenbank wird standardmäßig in derselben Instanz wiederhergestellt.

Wenn Sie ein anderes Abonnement wiederherstellen, muss der API-Aufruf "Create or Update v5.0.2022" oder höher , der der Wiederherstellungsaktion zugrunde liegt, die folgenden Werte enthalten:

  • restorePointInTime
  • crossSubscriptionTargetManagedInstanceId
  • Und entweder crossSubscriptionSourceDatabaseId oder crossSubscriptionRestorableDroppedDatabaseId.

Um eine vorhandene Datenbank wiederherzustellen, wechseln Sie zur Datenbankseite im Azure-Portal und wählen Sie Wiederherstellen aus.

Alternativ zum Wiederherstellen Ihrer Datenbank können Sie die folgenden Schritte ausführen:

  1. Melden Sie sich beim Azure-Portal an.

  2. Wechseln Sie zu der SQL Managed Instance, auf der Sie Ihre Datenbank wiederherstellen möchten.

  3. Wählen Sie auf der Seite Übersicht die Option + Neue Datenbank, um die Seite Azure SQL verwaltete Datenbank erstellen zu öffnen.

    Screenshot des Bereichs „Übersicht“ von SQL Managed Instance im Azure-Portal, wobei das Hinzufügen einer neuen Datenbank ausgewählt ist.

  4. Geben Sie auf der Registerkarte Grundlagen der Seite Azure SQL verwaltete Datenbank erstellen unter Projektdetails die Details zum Abonnement und zur Ressourcengruppe an. Geben Sie dann unter Datenbankdetails den neuen Namen der Datenbank an, die Sie wiederherstellen möchten. Vergewissern Sie sich, dass die richtige verwaltete SQL-Instanz in der Dropdownliste aufgeführt ist. Wählen Sie dann Weiter: Datenquelle> aus.

    Screenshot des Azure-Portals mit der Registerkarte „Grundlagen“ der Seite „Azure SQL verwaltete Datenbank erstellen“.

  5. Wählen Sie auf der Registerkarte Datenquelle unter Vorhandene Daten verwenden die Option Point-in-Time-Wiederherstellung aus. Stellen Sie das Abonnement, die Ressourcengruppe und die verwaltete SQL-Instanz bereit, die die Quelldatenbank enthält. Wählen Sie in der Dropdown-Liste der verwalteten Datenbank die Datenbank aus, die Sie wiederherstellen möchten, und wählen Sie dann den Zeitpunkt aus, von dem Sie die Datenbank wiederherstellen möchten. Die Quell- und Zielinstanz können identisch oder zwei verschiedene Instanzen sein. Wählen Sie Weiter: Zusätzliche Einstellungen>aus.

    Screenshot des Azure-Portals, der die Registerkarte „Datenquelle“ auf der Seite „Azure SQL verwaltete Datenbank erstellen“ mit ausgewählter zeitpunktbezogener Wiederherstellung zeigt.

  6. Auf der Registerkarte Zusätzliche Einstellungen können Sie das Kontrollkästchen aktivieren, um die Aufbewahrungsrichtlinie aus der Quelldatenbank zu erben, oder alternativ können Sie Aufbewahrung konfigurieren auswählen, um die Seite Richtlinien konfigurieren zu öffnen und die gewünschten Aufbewahrungsrichtlinien für Ihre wiederhergestellte Datenbank festzulegen. Wenn Sie fertig sind, wählen Sie Überprüfen und erstellen aus.

    Screenshot des Azure-Portals mit der Registerkarte

  7. Wählen Sie unter Überprüfen + erstellen die Option Erstellen aus, um Ihre Datenbank wiederherzustellen, wenn die Überprüfung erfolgreich ist.

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.

Wiederherstellen einer gelöschten Datenbank

Sie können eine gelöschte Datenbank mithilfe des Azure-Portals, Azure PowerShell oder der Azure CLI wiederherstellen.

So stellen Sie eine gelöschte SQL-verwaltete Datenbank mithilfe des Azure-Portals wieder her:

  1. Wechseln Sie im Azure-Portal zu Ihrer sql-quellverwalteten Instanz.

  2. Wählen Sie im Menü auf der linken Seite unter Datenverwaltung die Option Sicherungen aus.

  3. Wählen Sie unter Datenbanken anzeigen die Option Gelöscht aus.

  4. Wählen Sie für die wiederherzustellende Datenbank Wiederherstellen aus.

    Screenshot der verfügbaren Datenbanken im Portal mit hervorgehobener Schaltfläche „Wiederherstellen“ zum Wiederherstellen einer gelöschten Datenbank

  5. Geben Sie in "Azure SQL Managed Database erstellen" Details für die von SQL verwaltete Zielinstanz ein, um Ihre Datenbank wiederherzustellen, oder wählen Sie sie aus. Wählen Sie die Registerkarte Datenquelle aus.

  6. Geben Sie unter Datenquelle Details zu Ihrer Quelldatenbank ein, oder wählen Sie sie aus. Wählen Sie die Registerkarte Zusätzliche Einstellungen aus.

  7. Konfigurieren Sie unter Zusätzliche Einstellungen Aufbewahrungseinstellungen. Wählen Sie die Registerkarte Überprüfen + erstellen aus.

  8. Wählen Sie unter Überprüfen + erstellen die Option Erstellen aus, um die gelöschte Datenbank wiederherzustellen.

Überschreiben einer vorhandenen Datenbank

Um eine vorhandene Datenbank zu überschreiben, müssen Sie die folgenden Aktionen ausführen:

  1. Löschen Sie die vorhandene Datenbank, die Sie überschreiben möchten.
  2. Benennen Sie die durch Point-in-Time-Wiederherstellung wiederhergestellte Datenbank in den Namen der von Ihnen gelöschten Datenbank um.

Löschen der ursprünglichen Datenbank

Sie können die Datenbank mithilfe des Azure-Portals, von PowerShell oder der Azure CLI löschen.

Eine weitere Möglichkeit zum Ablegen der Datenbank besteht darin, eine direkte Verbindung mit Ihrer SQL-verwalteten Instanz in SQL Server Management Studio (SSMS) herzustellen und dann den BEFEHL DROP Transact-SQL (T-SQL) zu verwenden:

DROP DATABASE WorldWideImporters;

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

  1. Wählen Sie im Azure-Portal die Datenbank in Ihrer sql-verwalteten Instanz aus.

  2. Wählen Sie auf der Befehlsleiste Löschen aus.

    Screenshot des Löschens einer Datenbank über das Azure-Portal

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

Verwenden Sie SQL Server Management Studio (SSMS), um eine direkte Verbindung mit Ihrer verwalteten SQL-Instanz herzustellen. Führen Sie dann die folgende T-SQL-Abfrage 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 Ihrer verwalteten SQL-Instanz herzustellen:

Nächster Schritt