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 snelheid van het importeren wilt maximaliseren door meer en snellere resources te bieden, schaalt u de database tijdens het importproces naar een hogere servicelaag en een grotere rekenkracht. U kunt vervolgens omlaag schalen nadat het importeren is voltooid.
Notitie
Importeren en exporteren met 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:
Azure Portalbiedt alleen ondersteuning voor het maken van één database in Azure SQL Database en alleen vanuit een bacpac-bestand dat is opgeslagen in Azure Blob Storage.
Als u een database wilt migreren naar een beheerd exemplaar van Azure SQL 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 worden 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 waarmee 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. Om dit probleem te voorkomen wordt u aangeraden SqlPackage te gebruiken om databases te importeren/exporteren die groter zijn dan 150 GB.
Als u vanuit een bacpac-bestand wilt importeren in een nieuwe individuele database met behulp van De Azure-portal, opent u de juiste serverpagina en selecteert u vervolgens op de werkbalk De database importeren.
Selecteer Back-up selecteren. Kies het opslagaccount dat als host fungeert voor uw database en selecteer vervolgens het bacpac-bestand waaruit u wilt importeren.
Geef de grootte van de nieuwe database op (meestal hetzelfde als die van de oorspronkelijke) en geef de doel-SQL Server-referenties op. Zie Database maken voor een lijst met mogelijke waarden voor een nieuwe database in Azure SQL Database.
Selecteer OK.
Als u de voortgang van het importeren wilt volgen, opent u de serverpagina van de database en selecteert u bij Instellingen de optie Geschiedenis van importeren/exporteren. Wanneer het importeren is gelukt, wordt de status Voltooid weergegeven.
Als u wilt controleren of de database live is op de server, selecteert u SQL-databases en controleert u of de nieuwe database online is.
SqlPackage gebruiken
Voor het importeren van een SQL Server-database met behulp van het opdrachtregelprogramma SqlPackage raadpleegt u importparameters en -eigenschappen. U kunt de nieuwste SqlPackage voor Windows, macOS of Linux downloaden.
Voor schaalbaarheid en prestaties wordt u aangeraden in de meeste productieomgevingen SqlPackage te gebruiken in plaats van Azure Portal. Ga voor een blogartikel van het SQL Server-klantadviesteam over migratie met behulp van BACPAC
-bestanden naar migreren van SQL Server naar Azure SQL Database met BACPAC-bestanden.
Het op DTU gebaseerde inrichtingsmodel ondersteunt de waarden voor geselecteerde databases met een maximale grootte voor elke laag. Bij het importeren van een database moet u een van deze ondersteunde waarden gebruiken.
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 gemaakt die wordt aangeroepen myMigratedDatabase
met een Premium-servicelaag en een P6-servicedoelstelling . Wijzig deze waarden in waarden die geschikt zijn 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
Om verbinding te maken met Azure SQL Database achter een firewall van het bedrijf, moet de firewall voor poort 1433 zijn geopend. Als u verbinding wilt maken met SQL Managed Instance, moet u een punt-naar-site-verbinding of een ExpressRoute-verbinding hebben.
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 documentatie voor de SQL Server dacpac-extensie voor 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 worden 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 waarmee 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. Bij het importeren/exporteren van databases die groter zijn dan 150 GB, gebruikt u SqlPackage om dit probleem te voorkomen.
Belangrijk
De module PowerShell Azure Resource Manager (RM) wordt nog steeds ondersteund, maar alle toekomstige ontwikkeling is voor de Az.Sql-module. De AzureRM-module blijft tot ten minste december 2020 bugfixes ontvangen. De argumenten voor de opdrachten in de Az-module en in de AzureRm-modules zijn vrijwel identiek. Zie Introductie van de nieuwe Az-module van Azure PowerShell voor meer informatie over de compatibiliteit van de argumenten.
Gebruik de New-AzSqlDatabaseImport-cmdlet om een aanvraag voor het importeren van een database naar Azure te verzenden. Afhankelijk van de grootte van de database kan het enige tijd duren voordat het importeren is voltooid. Het op DTU gebaseerde inrichtingsmodel ondersteunt de waarden voor geselecteerde databases met een maximale grootte voor elke laag. Bij het importeren van een database moet u een van deze ondersteunde waarden gebruiken.
$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 Get-AzSqlDatabaseImportExportStatus-cmdlet gebruiken om de voortgang van het importeren te controleren. Als de cmdlet direct na de aanvraag wordt uitgevoerd, wordt er meestal Status: InProgress
geretourneerd. Het importeren is voltooid wanneer Status: Succeeded
wordt weergegeven.
$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 Database uit een BACPAC-bestand importeren voor een ander scriptvoorbeeld.
De importaanvraag annuleren
Gebruik de databasebewerkingen - Api annuleren of de opdracht Stop-AzSqlDatabaseActivity PowerShell, 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 SQL DB-inzender of
- Een aangepaste RBAC-rol op basis van rollen in Azure met
Microsoft.Sql/servers/databases/operations
machtiging
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 Level (Compatibiliteitsniveau ALTER DATABASE) voor meer informatie over de implicaties en opties bij het hanteren van een database op een bepaald 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 deze 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 opgeven van een back-upopslagredundantie tijdens het maken van een nieuwe database en er wordt een standaardredundantie voor de geografisch redundante back-upopslag gemaakt. 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 ook gebruikmaken van deze wizards.
- Wizard DAC importeren in SQL Server Management Studio.
- SQL Server-wizard voor importeren en exporteren.
Gerelateerde inhoud
- Zie de quickstart: Azure Data Studio gebruiken om verbinding te maken en query's uit te voeren op Azure SQL Database om verbinding te maken met Azure SQL Database en er query's op uit te voeren.
- Zie de quickstart: Azure SQL Database: SQL Server Management Studio gebruiken om verbinding te maken met en query's uit te voeren op gegevens voor meer informatie over het maken van verbinding met en het uitvoeren van query's op een database in Azure SQL Database.
- Zie Migreren van SQL Server naar Azure SQL Database met BACPAC-bestanden voor een blog over migreren met behulp van BACPAC-bestanden.
- Zie Migratie van de SQL Server-database naar Azure SQL Database voor een bespreking van het volledige migratieproces van SQL Server-databases, inclusief aanbevelingen voor prestaties.
- Zie de Azure Storage-beveiligingshandleiding voor meer informatie over het veilig beheren en delen van opslagsleutels en handtekeningen voor gedeelde toegang.