Schnellstart: Importieren einer BACPAC-Datei in eine Datenbank in Azure SQL-DatenbankQuickstart: Import a BACPAC file to a database in Azure SQL Database

Sie können eine SQL Server-Datenbank mithilfe einer BACPAC-Datei in eine Datenbank in Azure SQL-Datenbank importieren.You can import a SQL Server database into a database in Azure SQL Database using a BACPAC file. Sie können die Daten aus einer BACPAC-Datei, die im Azure Blob Storage gespeichert ist (nur Standardspeicher), oder aus dem lokalen Speicher an einem lokalen Speicherort importieren.You can import the data from a BACPAC file stored in Azure Blob storage (standard storage only) or from local storage in an on-premises location. Um die Importgeschwindigkeit durch die Bereitstellung von mehr und schnelleren Ressourcen zu maximieren, skalieren Sie Ihre Datenbank während des Importvorgangs auf eine höhere Dienstebene und Computegröße.To maximize import speed by providing more and faster resources, scale your database to a higher service tier and compute size during the import process. Sie können dann nach erfolgreichem Import zentral herunterskalieren.You can then scale down after the import is successful.

Hinweis

Der Kompatibilitätsgrad der importierten Datenbank beruht auf dem Kompatibilitätsgrad der Quelldatenbank.The imported database's compatibility level is based on the source database's compatibility level.

Wichtig

Nachdem Sie die Datenbank importiert haben, können Sie wählen, ob die Datenbank mit dem aktuellen Kompatibilitätsgrad (Ebene 100 für die Datenbank „AdventureWorks2008R2“) oder mit einem höheren Grad ausgeführt werden soll.After importing your database, you can choose to operate the database at its current compatibility level (level 100 for the AdventureWorks2008R2 database) or at a higher level. Weitere Informationen zu den Auswirkungen und Optionen für das Ausführen einer Datenbank mit einem bestimmten Kompatibilitätsgrad finden Sie unter ALTER DATABASE Compatibility Level.For more information on the implications and options for operating a database at a specific compatibility level, see ALTER DATABASE Compatibility Level. Lesen Sie auch ALTER DATABASE SCOPED CONFIGURATION. Dort finden Sie Informationen zu weiteren Einstellungen auf Datenbankebene, die sich auf Kompatibilitätsgrade beziehen.See also ALTER DATABASE SCOPED CONFIGURATION for information about additional database-level settings related to compatibility levels.

Importieren aus einer BACPAC-Datei im Azure-PortalImport from a BACPAC file in the Azure portal

Das Azure-Portal unterstützt nur das Erstellen einer Einzeldatenbank in Azure SQL-Datenbank und nur aus einer in Azure Blob-Speicher gespeicherten BACPAC-Datei.The Azure portal only supports creating a single database in Azure SQL Database and only from a BACPAC file stored in Azure Blob storage.

Das Migrieren einer Datenbank in eine verwaltete Instanz aus einer BACPAC-Datei mithilfe von Azure PowerShell wird derzeit nicht unterstützt.Migrating a database into a managed instance from a BACPAC file using Azure PowerShell is not currently supported. Verwenden Sie stattdessen SQL Server Management Studio oder SQLPackage.Use SQL Server Management Studio or SQLPackage instead.

Hinweis

Computer, die über das Azure-Portal oder PowerShell übermittelte Import-/Exportanforderungen verarbeiten, müssen die BACPAC-Datei sowie die von Data-Tier Application Framework (DacFX) generierten temporären Dateien speichern.Machines processing import/export requests submitted through the Azure portal or PowerShell need to store the BACPAC file as well as temporary files generated by the Data-Tier Application Framework (DacFX). Der erforderliche Speicherplatz variiert bei Datenbanken mit derselben Größe enorm. Der erforderliche Speicherplatz kann bis zum Dreifachen der Größe der Datenbank betragen.The disk space required varies significantly among databases with the same size and can require disk space up to 3 times the size of the database. Der lokale Speicherplatz von Computern, die die Import-/Exportanforderung ausführen, beträgt nur 450GB.Machines running the import/export request only have 450GB local disk space. Daher kann bei einigen Anforderungen der Fehler There is not enough space on the disk auftreten.As a result, some requests may fail with the error There is not enough space on the disk. In diesem Fall besteht die Problemumgehung darin, „sqlpackage.exe“ auf einem Computer mit ausreichend Speicherplatz auszuführen.In this case, the workaround is to run sqlpackage.exe on a machine with enough local disk space. Es wird empfohlen, SqlPackage zum Importieren oder Exportieren von Datenbanken zu verwenden, die größer als 150 GB sind, um dieses Problem zu vermeiden.We encourage using SqlPackage to import/export databases larger than 150GB to avoid this issue.

  1. Wenn Sie über das Azure-Portal aus einer BACPAC-Datei in eine neue Einzeldatenbank importieren möchten, öffnen Sie die entsprechende Seite für den Datenbankserver, und wählen Sie auf der Symbolleiste Datenbank importieren aus.To import from a BACPAC file into a new single database using the Azure portal, open the appropriate database server page and then, on the toolbar, select Import database.

    Datenbankimport 1

  2. Wählen Sie das Speicherkonto und den Container für die BACPAC-Datei aus, und wählen Sie dann die BACPAC-Datei, aus der importiert werden soll.Select the storage account and the container for the BACPAC file and then select the BACPAC file from which to import.

  3. Geben Sie die Größe der neuen Datenbank (in der Regel identisch mit dem Ursprung) und die SQL Server-Anmeldeinformationen für das Ziel an.Specify the new database size (usually the same as origin) and provide the destination SQL Server credentials. Eine Liste der möglichen Werte für eine neue Azure SQL-Datenbank finden Sie unter Create Database.For a list of possible values for a new Azure SQL database, see Create Database.

    Datenbankimport 2

  4. Klicken Sie auf OK.Click OK.

  5. Um den Fortschritt eines Importvorgangs zu überwachen, öffnen Sie die Seite für den Server der Datenbank, und wählen Sie unter Einstellungen die Option Import-/Exportverlauf aus.To monitor an import's progress, open the database's server page, and, under Settings, select Import/Export history. Bei erfolgreicher Ausführung weist der Import den Status Abgeschlossen auf.When successful, the import has a Completed status.

    Datenbankimportstatus

  6. Zum Überprüfen, ob die Datenbank auf dem Datenbankserver aktiv ist, wählen Sie SQL-Datenbanken aus, und prüfen Sie, ob der Status der neuen Datenbank Online lautet.To verify the database is live on the database server, select SQL databases and verify the new database is Online.

Importieren aus einer BACPAC-Datei mit SqlPackageImport from a BACPAC file using SqlPackage

Informationen zum Importieren einer SQL Server-Datenbank mit dem Befehlszeilenprogramm SqlPackage finden Sie unter Importparameter und -eigenschaften.To import a SQL Server database using the SqlPackage command-line utility, see import parameters and properties. Im Lieferumfang von SqlPackage sind die neuesten Versionen von SQL Server Management Studio und SQL Server Data Tools für Visual Studio enthalten.SqlPackage has the latest SQL Server Management Studio and SQL Server Data Tools for Visual Studio. Sie können die neueste Version von SqlPackage auch aus dem Microsoft Download Center herunterladen.You can also download the latest SqlPackage from the Microsoft download center.

Aus Gründen der Skalierbarkeit und Leistung wird die Verwendung von SqlPackage (statt des Azure-Portals) für die meisten Produktionsumgebungen empfohlen.For scale and performance, we recommend using SqlPackage in most production environments rather than using the Azure portal. Einen Blogbeitrag des SQL Server-Kundenberatungsteams zur Migration mithilfe von BACPAC-Dateien finden Sie unter Migrating from SQL Server to Azure SQL Database using BACPAC Files (Migrieren von SQL Server zu Azure SQL-Datenbank mithilfe von BACPAC-Dateien).For a SQL Server Customer Advisory Team blog about migrating using BACPAC files, see migrating from SQL Server to Azure SQL Database using BACPAC Files.

Mit dem folgenden SqlPackage-Befehl wird die Datenbank AdventureWorks2008R2 aus dem lokalen Speicher in einen Azure SQL-Datenbank-Server mit dem Namen mynewserver20170403 importiert.The following SqlPackage command imports the AdventureWorks2008R2 database from local storage to an Azure SQL Database server called mynewserver20170403. Er erstellt eine neue Datenbank namens myMigratedDatabase mit der Premium-Dienstebene und dem Dienstziel P6.It creates a new database called myMigratedDatabase with a Premium service tier and a P6 Service Objective. Ändern Sie diese Werte entsprechend Ihrer Umgebung.Change these values as appropriate for your environment.

SqlPackage.exe /a:import /tcs:"Data Source=mynewserver20170403.database.windows.net;Initial Catalog=myMigratedDatabase;User Id=<your_server_admin_account_user_id>;Password=<your_server_admin_account_password>" /sf:AdventureWorks2008R2.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6

Wichtig

Wenn Sie hinter einer Unternehmensfirewall eine Verbindung mit einem SQL-Datenbank-Server herstellen möchten, der eine einzelne Datenbank verwaltet, muss Port 1433 in der Firewall geöffnet sein.To connect to a SQL Database server managing a single database from behind a corporate firewall, the firewall must have port 1433 open. Um eine Verbindung mit einer verwalteten Instanz herzustellen, benötigen Sie eine Point-to-Site-Verbindung oder eine ExpressRoute-Verbindung.To connect to a managed instance, you must have a point-to-site connection or an express route connection.

In diesem Beispiel wird gezeigt, wie eine Datenbank mithilfe von SqlPackage mit universeller Active Directory-Authentifizierung importiert wird.This example shows how to import a database using SqlPackage with Active Directory Universal Authentication.

SqlPackage.exe /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"

Importieren in eine Einzeldatenbank aus einer BACPAC-Datei mithilfe von PowerShellImport into a single database from a BACPAC file using PowerShell

Hinweis

Bei einer verwalteten Instanz ist es derzeit nicht möglich, eine Datenbank aus einer BACPAC-Datei über Azure PowerShell in eine Instanzdatenbank zu migrieren.A managed instance does not currently support migrating a database into an instance database from a BACPAC file using Azure PowerShell. Verwenden Sie zum Importieren in eine verwalteten Instanz SQL Server Management Studio oder SQLPackage.To import into a managed instance, use SQL Server Management Studio or SQLPackage.

Hinweis

Die Computer, die über das Portal oder Powershell übermittelte Import-/Exportanforderungen verarbeiten, müssen die bacpac-Datei sowie die vom Datenebenenanwendungs-Framework (DacFX) generierten temporären Dateien speichern.The machines processing import/export requests submitted through portal or Powershell need to store the bacpac file as well as temporary files generated by Data-Tier Application Framework (DacFX). Der erforderliche Speicherplatz schwankt bei Datenbanken mit derselben Größe enorm, und es kann bis zu drei Mal so viel Speicherplatz benötigt werden wie die Größe der Datenbank selbst.The disk space required varies significantly among DBs with same size and can take up to 3 times of the database size. Der lokale Speicherplatz von Computern, die die Import-/Exportanforderung ausführen, beträgt nur 450 GB.Machines running the import/export request only have 450GB local disk space. Daher könnten einige Anforderungen möglicherweise fehlschlagen und die Fehlermeldung "There is not enough space on the disk" (Es ist nicht genügend Speicherplatz auf dem Datenträger vorhanden) ausgegeben werden.As result, some requests may fail with “There is not enough space on the disk” error. In diesem Fall besteht die Problemumgehung darin, „sqlpackage.exe“ auf einem Computer mit ausreichend Speicherplatz auszuführen.In this case, the workaround is to run sqlpackage.exe on a machine with enough local disk space. Verwenden Sie zum Importieren/Exportieren von Datenbanken mit mehr als 150 GB SqlPackage, um dieses Problem zu vermeiden.When importing/exporting databases larger than 150GB, use SqlPackage to avoid this issue.

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.

Wichtig

Das PowerShell Azure Resource Manager-Modul wird von Azure SQL-Datenbank weiterhin unterstützt, aber alle zukünftigen Entwicklungen erfolgen für das Az.Sql-Modul.The PowerShell Azure Resource Manager module is still supported by Azure SQL Database, but all future development is for the Az.Sql module. Informationen zu diesen Cmdlets finden Sie unter AzureRM.Sql.For these cmdlets, see AzureRM.Sql. Die Argumente für die Befehle im Az- und den AzureRm-Modulen sind im Wesentlichen identisch.The arguments for the commands in the Az module and in the AzureRm modules are substantially identical.

Verwenden Sie das New-AzSqlDatabaseImport-Cmdlet, um eine Anforderung für einen Datenbankimport beim Azure SQL-Datenbank-Dienst einzureichen.Use the New-AzSqlDatabaseImport cmdlet to submit an import database request to the Azure SQL Database service. Je nach Größe der Datenbank nimmt der Importvorgang einige Zeit in Anspruch.Depending on database size, the import may take some time to complete.

$importRequest = New-AzSqlDatabaseImport 
   -ResourceGroupName "<your_resource_group>" `
   -ServerName "<your_server>" `
   -DatabaseName "<your_database>" `
   -DatabaseMaxSizeBytes "<database_size_in_bytes>" `
   -StorageKeyType "StorageAccessKey" `
   -StorageKey $(Get-AzStorageAccountKey -ResourceGroupName "<your_resource_group>" -StorageAccountName "<your_storage_account").Value[0] `
   -StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
   -Edition "Standard" `
   -ServiceObjectiveName "P6" `
   -AdministratorLogin "<your_server_admin_account_user_id>" `
   -AdministratorLoginPassword $(ConvertTo-SecureString -String "<your_server_admin_account_password>" -AsPlainText -Force)

Mit dem Cmdlet Get-AzSqlDatabaseImportExportStatus können Sie den Status des Importvorgangs überprüfen.You can use the Get-AzSqlDatabaseImportExportStatus cmdlet to check the import's progress. Wenn Sie das Cmdlet direkt nach der Anforderung ausführen, wird in der Regel Status: InProgress zurückgegeben.Running the cmdlet immediately after the request usually returns Status: InProgress. Der Import ist abgeschlossen, wenn Status: Succeeded angezeigt wird.The import is complete when you see Status: Succeeded.

$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Importing")
while ($importStatus.Status -eq "InProgress")
{
    $importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
    [Console]::Write(".")
    Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus

Tipp

Ein weiteres Skriptbeispiel finden Sie unter Importieren einer Datenbank aus einer BACPAC-Datei.For another script example, see Import a database from a BACPAC file.

EinschränkungenLimitations

Das Importieren in eine Datenbank in einen Pool für elastische Datenbanken wird nicht unterstützt.Importing to a database in elastic pool isn't supported. Sie können jedoch Daten in eine Einzeldatenbank importieren und die Datenbank anschließend in einen Pool für elastische Datenbanken verschieben.You can import data into a single database and then move the database to an elastic pool.

Importieren mithilfe von AssistentenImport using wizards

Sie können auch die folgenden Assistenten verwenden:You can also use these wizards.

Nächste SchritteNext steps