Quickstart: Een bacpac-bestand importeren in een database in Azure SQL Database of Azure SQL Managed Instance
van toepassing op:Azure SQL DatabaseAzure SQL Managed Instance-
U kunt een SQL Server-database importeren in Azure SQL Database of SQL Managed Instance met behulp van een .bacpac--bestand. U kunt de gegevens importeren uit een bacpac-bestand dat is opgeslagen in Azure Blob Storage (alleen standaardopslag) of uit lokale opslag op een on-premises locatie. Als u de importsnelheid wilt maximaliseren door meer en snellere resources te leveren, schaalt u uw database naar een hogere servicelaag en rekenkracht tijdens het importproces. U kunt vervolgens omlaag schalen nadat het importeren is voltooid.
Notitie
importeren en exporteren met behulp van Private Link is in preview.
Azure Portal gebruiken
Bekijk deze video om te zien hoe u importeert vanuit een bacpac-bestand in Azure Portal of verder leest:
De Azure Portalalleen ondersteunt het maken van één database in Azure SQL Database en alleen van een bacpac-bestand dat is opgeslagen in Azure Blob Storage.
Waarschuwing
Bacpac-bestanden van meer dan 4 GB die zijn gegenereerd op basis van SqlPackage, kunnen mogelijk niet worden geïmporteerd vanuit Azure Portal of Azure PowerShell met een foutbericht met de status File contains corrupted data.
. Dit is het gevolg van een bekend probleem en de tijdelijke oplossing is het gebruik van het SqlPackage
opdrachtregelprogramma om het bacpac-bestand te importeren. Zie SqlPackage- en het -probleemlogboekvoor meer informatie.
Als u een database wilt migreren naar een Azure SQL Managed Instance vanuit een bacpac-bestand, gebruikt u SQL Server Management Studio of SQLPackage, met behulp van Azure Portal of Azure PowerShell wordt momenteel niet ondersteund.
Notitie
Machines die import-/exportaanvragen verwerken die zijn ingediend via Azure Portal of PowerShell, moeten het bacpac-bestand opslaan en tijdelijke bestanden die zijn gegenereerd door het Data-Tier Application Framework (DacFX). De vereiste schijfruimte varieert aanzienlijk tussen databases met dezelfde grootte en kan schijfruimte tot drie keer de grootte van de database vereisen. Machines waarop de import-/exportaanvraag wordt uitgevoerd, hebben slechts 450 GB lokale schijfruimte. Als gevolg hiervan kunnen sommige aanvragen mislukken met de fout There is not enough space on the disk
. In dit geval is de tijdelijke oplossing het uitvoeren van SqlPackage op een computer met voldoende lokale schijfruimte. We raden u aan sqlPackage te gebruiken om databases te importeren/exporteren die groter zijn dan 150 GB om dit probleem te voorkomen.
Als u vanuit een bacpac-bestand wilt importeren in een nieuwe individuele database met behulp van Azure Portal, opent u de juiste serverpagina en selecteert u vervolgens op de werkbalk Database importeren.
Selecteer en kies Back-up. Kies het opslagaccount dat als host fungeert voor uw database en selecteer vervolgens het bacpac-bestand waaruit u wilt importeren.
Geef de nieuwe databasegrootte (meestal hetzelfde als de oorsprong) op en geef de doel-SQL Server-referenties op. Zie Database makenvoor een lijst met mogelijke waarden voor een nieuwe database in Azure SQL Database.
Selecteer OK-.
Als u de voortgang van een import wilt controleren, opent u de serverpagina van de database en selecteert u onder
Instellingen Import/Export-geschiedenis. Als het importeren is voltooid, heeft het importeren de status Voltooid. Als u wilt controleren of de database live op de server is, selecteert u SQL-databases en controleert u of de nieuwe database Onlineis.
SqlPackage gebruiken
Als u een SQL Server-database wilt importeren met behulp van het SqlPackage opdrachtregelprogramma, raadpleegt u importparameters en eigenschappen. U kunt de nieuwste SqlPackage- voor Windows, macOS of Linux downloaden.
Voor schalen en prestaties raden we u aan SqlPackage te gebruiken in de meeste productieomgevingen in plaats van Azure Portal te gebruiken. Zie voor een blog van het SQL Server Customer Advisory Team over het migreren met behulp van BACPAC
-bestanden, : migreren van SQL Server naar Azure SQL Database met BACPAC-bestanden.
Het inrichtingsmodel op basis van DTU ondersteunt waarden voor de maximale grootte van de database voor elke laag. Wanneer u een database importeert gebruikt u een van deze ondersteunde waarden.
Met de volgende SqlPackage-opdracht importeert u de AdventureWorks2008R2
-database van lokale opslag naar een logische SQL-server met de naam mynewserver20170403
. Er wordt een nieuwe database met de naam myMigratedDatabase
gemaakt met een servicelaag van Premium en een P6 Service Objective. Wijzig deze waarden naar wens voor uw omgeving.
SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=<migratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2008R2.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6
Belangrijk
Als u verbinding wilt maken met Azure SQL Database vanaf een bedrijfsfirewall, moet poort 1433 zijn geopend voor de firewall. Als u verbinding wilt maken met SQL Managed Instance, moet u een punt-naar-site-verbinding hebben of een expressroute-verbinding.
Als alternatief voor gebruikersnaam en wachtwoord kunt u Microsoft Entra ID (voorheen Azure Active Directory) gebruiken. Momenteel biedt de Import/Export-service geen ondersteuning voor Microsoft Entra ID-verificatie wanneer MFA is vereist. Vervang de parameters voor gebruikersnaam en wachtwoord voor /ua:true
en /tid:"yourdomain.onmicrosoft.com"
. In dit voorbeeld ziet u hoe u een database importeert met behulp van SqlPackage met Microsoft Entra-verificatie:
SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"
Azure Data Studio
Azure Data Studio is een gratis opensource-hulpprogramma en is beschikbaar voor Windows, macOS en Linux. De extensie SQL Server dacpac biedt een wizardinterface voor SqlPackage-bewerkingen, waaronder exporteren en importeren. Zie de sql Server dacpac-extensiedocumentatievoor meer informatie over het installeren en gebruiken van de extensie.
PowerShell gebruiken
Notitie
Azure SQL Managed Instance biedt momenteel geen ondersteuning voor het migreren van een database naar een exemplaardatabase vanuit een bacpac-bestand met behulp van Azure PowerShell. Als u wilt importeren in een met SQL beheerd exemplaar, gebruikt u SQL Server Management Studio of SQLPackage.
Notitie
De machines die import-/exportaanvragen verwerken die zijn ingediend via de portal of PowerShell, moeten het bacpac-bestand opslaan, evenals tijdelijke bestanden die zijn gegenereerd door Data-Tier Application Framework (DacFX). De benodigde schijfruimte varieert aanzienlijk tussen DB's met dezelfde grootte en kan tot drie keer van de grootte van de database duren. Machines waarop de import-/exportaanvraag wordt uitgevoerd, hebben slechts 450 GB lokale schijfruimte. Als gevolg hiervan kunnen sommige aanvragen mislukken met de fout 'Er is onvoldoende ruimte op de schijf'. In dit geval is de tijdelijke oplossing het uitvoeren van SqlPackage op een computer met voldoende lokale schijfruimte. Wanneer u databases importeert/exporteert die groter zijn dan 150 GB, gebruikt u SqlPackage om dit probleem te voorkomen.
Belangrijk
De Module PowerShell Azure Resource Manager (AzureRM) is afgeschaft op 29 februari 2024. Voor alle toekomstige ontwikkeling moet de Az.Sql-module worden gebruikt. Gebruikers wordt aangeraden om van AzureRM naar de Az PowerShell-module te migreren om ondersteuning en updates te garanderen. De AzureRM-module wordt niet meer onderhouden of ondersteund. De argumenten voor de opdrachten in de Az PowerShell-module en in de AzureRM-modules zijn aanzienlijk identiek. Zie Introductie van de nieuwe Az PowerShell-modulevoor meer informatie over de compatibiliteit.
Gebruik de cmdlet New-AzSqlDatabaseImport om een importdatabaseaanvraag naar Azure te verzenden. Afhankelijk van de grootte van de database kan het enige tijd duren voordat het importeren is voltooid. Het inrichtingsmodel op basis van DTU ondersteunt waarden voor de maximale grootte van de database voor elke laag. Wanneer u een database importeert gebruikt u een van deze ondersteunde waarden.
$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" `
-ServerName "<serverName>" -DatabaseName "<databaseName>" `
-DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
-StorageKey $(Get-AzStorageAccountKey `
-ResourceGroupName "<resourceGroupName>" -StorageAccountName "<storageAccountName>").Value[0] `
-StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
-Edition "Premium" -ServiceObjectiveName "P6" `
-AdministratorLogin "<userId>" `
-AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
U kunt de cmdlet Get-AzSqlDatabaseImportExportStatus gebruiken om de voortgang van het importeren te controleren. Het onmiddellijk uitvoeren van de cmdlet nadat de aanvraag is ingediend, levert meestal Status: InProgress
op. Het importeren is voltooid wanneer u Status: Succeeded
ziet.
$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
Tip
Zie Een database importeren uit een BACPAC-bestandvoor een ander scriptvoorbeeld.
De importaanvraag annuleren
Gebruik de Databasebewerkingen - API Annuleren of de Stop-AzSqlDatabaseActivity PowerShell-opdracht, zoals in het volgende voorbeeld:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Vereiste machtigingen voor het annuleren van importbewerkingen
Als u de importbewerking wilt annuleren, moet u lid zijn van een van de volgende rollen:
- De rol Bijdrager aan SQL DB of
- Een aangepaste Azure rolgebaseerde toegangscontrole-rol met
Microsoft.Sql/servers/databases/operations
machtigingen
Compatibiliteitsniveau van de nieuwe database
- Het compatibiliteitsniveau van de geïmporteerde database is gebaseerd op het compatibiliteitsniveau van de brondatabase.
- Nadat u de database hebt geïmporteerd, kunt u ervoor kiezen om de database te gebruiken op het huidige compatibiliteitsniveau of op een hoger niveau. Zie ALTER DATABASE Compatibility Levelvoor meer informatie over de gevolgen en opties voor het uitvoeren van een database op een specifiek compatibiliteitsniveau. Zie ook ALTER DATABASE SCOPED CONFIGURATION voor informatie over andere instellingen op databaseniveau met betrekking tot compatibiliteitsniveaus.
Beperkingen
- Importeren naar een database in een elastische pool wordt niet ondersteund. U kunt gegevens importeren in één database en de database vervolgens verplaatsen naar een elastische pool.
- Import Export-service werkt niet wanneer Toegang tot Azure-services toestaan is ingesteld op UIT. U kunt het probleem echter omzeilen door SqlPackage handmatig uit te voeren vanaf een Azure-VM of de export rechtstreeks in uw code uit te voeren met behulp van de DacFx-API.
- Importeren biedt geen ondersteuning voor het specificeren van een redundantie voor back-upopslag bij het maken van een nieuwe database en creëert deze met de standaard georedundante back-upopslag. Als u dit wilt omzeilen, maakt u eerst een lege database met de gewenste redundantie voor back-upopslag met behulp van Azure Portal of PowerShell en importeert u de bacpac in deze lege database.
- Opslag achter een firewall wordt momenteel niet ondersteund.
- Maak tijdens het importproces geen database met dezelfde naam. Het importproces maakt een nieuwe database met de opgegeven naam.
- Momenteel biedt de Import/Export-service geen ondersteuning voor Microsoft Entra ID-verificatie wanneer MFA is vereist.
- Import\Export-services ondersteunen alleen SQL-verificatie en Microsoft Entra-id. Import\Export is niet compatibel met registratie van Microsoft Identity-toepassingen.
Aanvullende hulpprogramma's
U kunt deze wizards ook gebruiken.
- Wizard Gegevenslaagtoepassing importeren in SQL Server Management Studio.
- Wizard voor het importeren en exporteren van SQL Server.
Verwante inhoud
- Zie quickstart: Azure Data Studio gebruiken om verbinding te maken en query's uit te voeren op Azure SQL Databasevoor meer informatie over het maken en opvragen van azure SQL Database vanuit Azure Data Studio.
- Zie Quickstart: Azure SQL Database: Gebruik SQL Server Management Studio om verbinding te maken met en queries uit te voeren op gegevensvoor meer informatie over het verbinden met en opvragen van een database in Azure SQL Database.
- Zie Migreren van SQL Server naar Azure SQL Database met behulp van BACPAC Filesvoor een blog van het klantadviesteam van SQL Server over migratie met behulp van BACPAC Files.
- Zie SQL Server-databasemigratie naar Azure SQL Databasevoor een bespreking van het volledige migratieproces van sql Server-databases, inclusief aanbevelingen voor prestaties.
- Zie Beveiligingshandleiding voor Azure Storagevoor meer informatie over het veilig beheren en delen van opslagsleutels en handtekeningen voor gedeelde toegang.