Wiederherstellen eines vorhandenen dedizierten SQL-Pools (früher SQL DW)

In diesem Artikel erfahren Sie, wie Sie einen vorhandenen dedizierten SQL-Pool (früher SQL DW) über das Azure-Portal und mit PowerShell wiederherstellen können.

Hinweis

Diese Anleitung gilt nur für eigenständige dedizierte SQL-Pools (vormals SQL DW). Informationen zu dedizierten SQL-Pools in einem Azure Synapse Analytics-Arbeitsbereich finden Sie unter Wiederherstellen eines dedizierten SQL-Pools.

Voraussetzungen

  1. Überprüfen Sie Ihre DTU-Kapazität. Jeder Pool wird von einer logischen SQL Server-Instanz gehostet (z. B. myserver.database.windows.net), die über ein Standard-DTU-Kontingent verfügt. Vergewissern Sie sich, dass der Server über ein ausreichendes DTU-Kontingent für die Datenbankwiederherstellung verfügt. Informationen zum Berechnen des DTU-Bedarfs bzw. zur Anforderung weiterer DTUs finden Sie unter Anfordern einer DTU-Kontingentänderung.

  2. Bevor Sie beginnen, müssen Sie Azure PowerShell installieren.

    Hinweis

    Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

  3. Sie benötigen einen vorhandenen Wiederherstellungspunkt. Wenn Sie eine neue Wiederherstellung erstellen möchten, lesen Sie das Tutorial zum Erstellen eines neuen benutzerdefinierten Wiederherstellungspunkts.

Wiederherstellen eines vorhandenen dedizierten SQL-Pools (früher SQL DW) mit PowerShell

Mit dem PowerShell-Cmdlet Restore-AzSqlDatabase können Sie einen vorhandenen dedizierten SQL-Pool (früher SQL DW) anhand eines Wiederherstellungspunkts wiederherstellen.

  1. Öffnen Sie PowerShell.

  2. Stellen Sie eine Verbindung mit Ihrem Azure-Konto her, und listen Sie alle Abonnements auf, die Ihrem Konto zugeordnet sind.

  3. Wählen Sie das Abonnement aus, in dem die wiederherzustellende Datenbank enthalten ist.

  4. Listen Sie die Wiederherstellungspunkte für den dedizierten SQL-Pool (früher SQL DW) auf.

  5. Wählen Sie den gewünschten Wiederherstellungspunkt mit RestorePointCreationDate aus.

  6. Stellen Sie den dedizierten SQL-Pool (früher SQL DW) anhand des gewünschten Wiederherstellungspunkts mit dem PowerShell-Cmdlet Restore-AzSqlDatabase wieder her.

    1. Zum Wiederherstellen des dedizierten SQL-Pools (früher SQL DW) auf einem anderen Server müssen Sie den Namen des anderen Servers angeben. Dieser Server kann sich auch in einer anderen Ressourcengruppe und Region befinden.
    2. Informationen zum Wiederherstellen in einem anderen Abonnement finden Sie im folgenden Abschnitt.
  7. Überprüfen Sie, ob der wiederhergestellte dedizierte SQL-Pool (früher SQL DW) online ist.

  8. Nach Abschluss der Wiederherstellung können Sie Ihren wiederhergestellten dedizierten SQL-Pool (früher SQL DW) konfigurieren. Befolgen Sie hierzu die Anleitung Konfigurieren der Datenbank nach der Wiederherstellung.

    
    $SubscriptionName="<YourSubscriptionName>"
    $ResourceGroupName="<YourResourceGroupName>"
    $ServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.windows.net
    #$TargetResourceGroupName="<YourTargetResourceGroupName>" # uncomment to restore to a different server.
    #$TargetServerName="<YourtargetServerNameWithoutURLSuffixSeeNote>"  
    $DatabaseName="<YourDatabaseName>"
    $NewDatabaseName="<YourDatabaseName>"
    
    Connect-AzAccount
    Get-AzSubscription
    Select-AzSubscription -SubscriptionName $SubscriptionName
    
    # Or list all restore points
    Get-AzSqlDatabaseRestorePoint -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName
    
    # Get the specific database to restore
    $Database = Get-AzSqlDatabase -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName
    
    # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
    $PointInTime="<RestorePointCreationDate>"
    
    # Restore database from a restore point
    $RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $Database.ResourceGroupName -ServerName $Database.ServerName -TargetDatabaseName $NewDatabaseName –ResourceId $Database.ResourceID
    
    # Use the following command to restore to a different server
    #$TargetResourceGroupName = $Database.ResourceGroupName # for restoring to different server in same resourcegroup 
    #$RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName -ServerName $TargetServerName -TargetDatabaseName $NewDatabaseName –ResourceId $Database.ResourceID
    
    # Verify the status of restored database
    $RestoredDatabase.status
    

Wiederherstellen eines vorhandenen dedizierten SQL-Pools (früher SQL DW) über das Azure-Portal

  1. Melden Sie sich beim Azure-Portal an.

  2. Navigieren Sie zum dedizierten SQL-Pool, mit dem Sie die Wiederherstellung durchführen möchten.

  3. Klicken Sie oben auf der Seite Übersicht auf Wiederherstellen.

    Screenshot des Azure-Portals, Navigationsleiste der Übersichtsseite eines SQL-Pools, Schaltfläche „Wiederherstellen“ ist hervorgehoben.

  4. Wählen Sie entweder die Option Automatische Wiederherstellungspunkte oder Benutzerdefinierte Wiederherstellungspunkte aus. Wenn der dedizierte SQL-Pool (früher SQL DW) keine automatischen Wiederherstellungspunkte enthält, warten Sie einige Stunden, oder erstellen Sie einen benutzerdefinierten Wiederherstellungspunkt, bevor Sie eine Wiederherstellung durchführen. Wählen Sie für „Benutzerdefinierte Wiederherstellungspunkte“ einen vorhandenen benutzerdefinierten Wiederherstellungspunkt aus, oder erstellen Sie einen neuen. Für Server können Sie einen Server in einer anderen Ressourcengruppe und Region auswählen oder einen neuen erstellen. Nachdem Sie alle Parameter angegeben haben, wählen Sie Überprüfen + wiederherstellen aus.

    Screenshot der dedizierten Seite „SQL-Poolwiederherstellung“ im Azure-Portal. Für den Wiederherstellungspunkttyp ist das Optionsfeld für benutzerdefinierte Wiederherstellungspunkte ausgewählt.

Wiederherstellen eines vorhandenen dedizierten SQL-Pools (vormals SQL DW) in einem anderen Abonnement mithilfe von PowerShell

Dies ist eine ähnliche Anleitung zum Wiederherstellen eines vorhandenen dedizierten SQL-Pools, die nachstehenden Anweisungen zeigen jedoch, dass das PowerShell-Cmdlet Get-AzSqlDatabase im ursprünglichen Abonnement ausgeführt werden soll, während das PowerShell-Cmdlet Restore-AzSqlDatabase im Zielabonnement ausgeführt werden soll. Beachten Sie, dass Benutzer*innen, die eine Wiederherstellung ausführen, sowohl im Quell- als auch im Zielabonnement über entsprechende Berechtigungen verfügen müssen.

  1. Öffnen Sie PowerShell.

  2. Aktualisieren Sie das Az.Sql-Modul mithilfe von Update-Module auf 3.8.0 (oder höher), wenn Sie eine ältere Version verwenden. Andernfalls kommt es zu Fehlern. So überprüfen Sie die Version mit PowerShell

    foreach ($i in (get-module -ListAvailable | ?{$_.name -eq 'az.sql'}).Version) { $version = [string]$i.Major + "." + [string]$i.Minor; if ($version -gt 3.7) {write-host "Az.Sql version $version installed. Prequisite met."} else {update-module az.sql} }
    
  3. Stellen Sie eine Verbindung mit Ihrem Azure-Konto her, und listen Sie alle Abonnements auf, die Ihrem Konto zugeordnet sind.

  4. Wählen Sie das Abonnement aus, in dem die wiederherzustellende Datenbank enthalten ist.

  5. Listen Sie die Wiederherstellungspunkte für den dedizierten SQL-Pool (früher SQL DW) auf.

  6. Wählen Sie den gewünschten Wiederherstellungspunkt mit RestorePointCreationDate aus.

  7. Wählen Sie das Zielabonnement aus, in dem die Datenbank wiederhergestellt werden soll.

  8. Stellen Sie den dedizierten SQL-Pool (früher SQL DW) anhand des gewünschten Wiederherstellungspunkts mit dem PowerShell-Cmdlet Restore-AzSqlDatabase wieder her.

  9. Überprüfen Sie, ob der wiederhergestellte dedizierte SQL-Pool (früher SQL DW) online ist.

    $SourceSubscriptionName="<YourSubscriptionName>"
    $SourceResourceGroupName="<YourResourceGroupName>"
    $SourceServerName="<YourServerNameWithoutURLSuffixSeeNote>"  # Without database.windows.net
    $SourceDatabaseName="<YourDatabaseName>"
    $TargetSubscriptionName="<YourTargetSubscriptionName>"
    $TargetResourceGroupName="<YourTargetResourceGroupName>"
    $TargetServerName="<YourTargetServerNameWithoutURLSuffixSeeNote>"  # Without database.windows.net
    $TargetDatabaseName="<YourDatabaseName>"
    
    # Update Az.Sql module to the latest version (3.8.0 or above)
    # Update-Module -Name Az.Sql -RequiredVersion 3.8.0
    
    Connect-AzAccount
    Get-AzSubscription
    Select-AzSubscription -SubscriptionName $SourceSubscriptionName
    
    # Pick desired restore point using RestorePointCreationDate "xx/xx/xxxx xx:xx:xx xx"
    $PointInTime="<RestorePointCreationDate>"
    # Or list all restore points
    Get-AzSqlDatabaseRestorePoint -ResourceGroupName $SourceResourceGroupName -ServerName $SourceServerName -DatabaseName $SourceDatabaseName
    
    # Get the specific database to restore
    $Database = Get-AzSqlDatabase -ResourceGroupName $SourceResourceGroupName -ServerName $SourceServerName -DatabaseName $SourceDatabaseName
    
    # Switch context to the destination subscription
    Select-AzSubscription -SubscriptionName $TargetSubscriptionName
    
    # Restore database from a desired restore point of the source database to the target server in the desired subscription
    $RestoredDatabase = Restore-AzSqlDatabase –FromPointInTimeBackup –PointInTime $PointInTime -ResourceGroupName $TargetResourceGroupName -ServerName $TargetServerName -TargetDatabaseName $TargetDatabaseName –ResourceId $Database.ResourceID
    
    # Verify the status of restored database
    $RestoredDatabase.status