Wiederherstellen einer Azure SQL-Einzeldatenbank in einem früheren Zustand mithilfe von PowerShellUse PowerShell to restore an Azure SQL single database to an earlier point in time

Dieses PowerShell-Beispielskript stellt einen bestimmten früheren Zustand einer Azure SQL-Datenbank wieder her.This PowerShell script example restores an Azure SQL database to a specific point in time.

Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.If you don't have an Azure subscription, create a free account before you begin.

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Sie können das AzureRM-Modul weiterhin verwenden, das bis mindestens Dezember 2020 weiterhin Fehlerbehebungen erhält.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation des Az-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For Az module installation instructions, see Install Azure PowerShell.

Öffnen von Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell ist eine interaktive Shell-Umgebung, die in Azure gehostet und über den Browser verwendet wird.Azure Cloud Shell is an interactive shell environment hosted in Azure and used through your browse. Mit Azure Cloud Shell können Sie bash oder PowerShell verwenden, um eine Vielzahl von Tools zum Arbeiten mit Azure-Diensten auszuführen.Azure Cloud Shell allows you to use either bash or PowerShell shells to run a variety of tools to work with Azure services. Azure Cloud Shell ist mit den Befehlen vorinstalliert, damit Sie den Inhalt in diesem Artikel ausführen können. Sie müssen also in der lokalen Umgebung nichts installieren.Azure Cloud Shell comes pre-installed with the commands to allow you to run the content of this article without having to install anything on your local environment.

Um in Azure Cloud Shell Code aus diesem Artikel auszuführen, öffnen Sie eine Cloud Shell-Sitzung, verwenden Sie für einen Codeblock die Schaltfläche Kopieren, um Code zu kopieren, und fügen Sie ihn mit STRG+UMSCHALT+V (Windows und Linux) oder BEFEHL+UMSCHALT+V (macOS) in die Cloud Shell-Sitzung ein.To run any code contained in this article on Azure Cloud Shell, open a Cloud Shell session, use the Copy button on a code block to copy the code, and paste it into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS. Eingefügter Code wird nicht automatisch ausgeführt. Sie müssen zum Ausführen von Code die EINGABETASTE drücken.Pasted text is not automatically executed, so press Enter to run code.

Sie können Azure Cloud Shell wie folgt starten:You can launch Azure Cloud Shell with:

Klicken Sie in der rechten oberen Ecke eines Codeblocks auf Ausprobieren.Select Try It in the upper-right corner of a code block. Dadurch wird nicht automatisch Text in Cloud Shell kopiert.This doesn't automatically copy text to Cloud Shell. Beispiel für „Testen Sie es.“ für Azure Cloud Shell
Öffnen Sie shell.azure.com in einem Browser.Open shell.azure.com in your browser. Schaltfläche zum Starten von Azure Cloud ShellLaunch Azure Cloud Shell button
Klicken Sie im Azure-Portal rechts oben im Menü auf die Schaltfläche Cloud Shell:Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell-Schaltfläche im Azure-Portal

Wenn Sie PowerShell lokal installieren und nutzen möchten, müssen Sie für dieses Tutorial mindestens Version 1.4.0 von Azure PowerShell verwenden.If you choose to install and use the PowerShell locally, this tutorial requires AZ PowerShell 1.4.0 or later. Wenn Sie ein Upgrade ausführen müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu.If you need to upgrade, see Install Azure PowerShell module. Wenn Sie PowerShell lokal ausführen, müssen Sie auch Connect-AzAccount ausführen, um eine Verbindung mit Azure herzustellen.If you are running PowerShell locally, you also need to run Connect-AzAccount to create a connection with Azure.

BeispielskriptSample script

# Connect-AzAccount
$SubscriptionId = ''
# Set the resource group name and location for your server
$resourceGroupName = "myResourceGroup-$(Get-Random)"
$location = "westus2"
# Set an admin login and password for your server
$adminSqlLogin = "SqlAdmin"
$password = "ChangeYourAdminPassword1"
# Set server name - the logical server name has to be unique in the system
$serverName = "server-$(Get-Random)"
# The sample database name
$databaseName = "mySampleDatabase"
# The restored database names
$restoreDatabaseName = "MySampleDatabase_GeoRestore"
$pointInTimeRestoreDatabaseName = "MySampleDatabase_10MinutesAgo"
# The ip address range that you want to allow to access your server
$startIp = "0.0.0.0"
$endIp = "0.0.0.0"

# Set subscription 
Set-AzContext -SubscriptionId $subscriptionId 

# Create a resource group
$resourceGroup = New-AzResourceGroup -Name $resourceGroupName -Location $location

# Create a server with a system wide unique server name
$server = New-AzSqlServer -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -Location $location `
    -SqlAdministratorCredentials $(New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminSqlLogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force))

# Create a server firewall rule that allows access from the specified IP range
$firewallRule = New-AzSqlServerFirewallRule -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -FirewallRuleName "AllowedIPs" -StartIpAddress $startIp -EndIpAddress $endIp

# Create a blank database with an S0 performance level
$database = New-AzSqlDatabase  -ResourceGroupName $resourceGroupName `
    -ServerName $serverName `
    -DatabaseName $databaseName `
    -RequestedServiceObjectiveName "S0" 

Start-Sleep -second 600

# Restore database to its state 7 minutes ago
# Note: Point-in-time restore requires database to be at least 5 minutes old
Restore-AzSqlDatabase `
      -FromPointInTimeBackup `
      -PointInTime (Get-Date).AddMinutes(-2) `
      -ResourceGroupName $resourceGroupName `
      -ServerName $serverName `
      -TargetDatabaseName $pointInTimeRestoreDatabaseName `
      -ResourceId $database.ResourceID `
      -Edition "Standard" `
      -ServiceObjectiveName "S0"

# Clean up deployment 
# Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Bereinigen der BereitstellungClean up deployment

Verwenden Sie den folgenden Befehl, um die Ressourcengruppe und alle dazugehörigen Ressourcen zu entfernen:Use the following command to remove the resource group and all resources associated with it.

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Erläuterung des SkriptsScript explanation

Das Skript verwendet die folgenden Befehle.This script uses the following commands. Jeder Befehl in der Tabelle ist mit der zugehörigen Dokumentation verknüpft.Each command in the table links to command specific documentation.

Get-HelpCommand NotizenNotes
New-AzResourceGroupNew-AzResourceGroup Erstellt eine Ressourcengruppe, in der alle Ressourcen gespeichert sind.Creates a resource group in which all resources are stored.
New-AzSqlServerNew-AzSqlServer Erstellt einen SQL-Datenbank-Server, der eine Einzeldatenbank oder einen Pool für elastische Datenbanken hostet.Creates a SQL Database server that hosts a single database or elastic pool.
New-AzSqlDatabaseNew-AzSqlDatabase Erstellt eine Datenbank auf einem SQL-Datenbankserver als eigenständige Datenbank oder Pooldatenbank.Creates a database in a SQL Database server as a standalone or a pooled database.
Get-AzSqlDatabaseGeoBackupGet-AzSqlDatabaseGeoBackup Ruft eine georedundante Sicherung einer eigenständigen Datenbank oder Pooldatenbank ab.Gets a geo-redundant backup of a standalone or pooled database.
Restore-AzSqlDatabaseRestore-AzSqlDatabase Stellt eine eigenständige SQL-Datenbank oder eine SQL-Pooldatenbank wieder her.Restores a SQL standalone or pooled database.
Remove-AzSqlDatabaseRemove-AzSqlDatabase Entfernt eine eigenständige Azure SQL-Datenbank oder eine Azure SQL-Pooldatenbank.Removes an Azure SQL standalone or pooled database.
Get-AzSqlDeletedDatabaseBackupGet-AzSqlDeletedDatabaseBackup Ruft eine gelöschte eigenständige Datenbank oder Pooldatenbank ab, die Sie wiederherstellen können.Gets a deleted standalone or pooled database that you can restore.
Remove-AzResourceGroupRemove-AzResourceGroup Löscht eine Ressourcengruppe einschließlich aller geschachtelten Ressourcen.Deletes a resource group including all nested resources.

Nächste SchritteNext steps

Weitere Informationen zu Azure PowerShell finden Sie in der Azure PowerShell-Dokumentation.For more information on the Azure PowerShell, see Azure PowerShell documentation.

Zusätzliche PowerShell-Skriptbeispiele für SQL-Datenbank finden Sie in den Azure PowerShell samples for Azure SQL Database (Azure PowerShell-Beispiele für Azure SQL-Datenbank).Additional SQL Database PowerShell script samples can be found in the Azure SQL Database PowerShell scripts.