Exporteren naar een BACPAC-bestand - Azure SQL Database en Azure SQL Managed Instance
Van toepassing op: Azure SQL DatabaseAzure SQL Managed Instance
Wanneer u een database wilt exporteren voor archivering of voor verplaatsing naar een ander platform, kunt u het databaseschema en de gegevens exporteren naar een BACPAC-bestand . Een BACPAC-bestand is een ZIP-bestand met de extensie BACPAC met de metagegevens en gegevens uit de database. Een BACPAC-bestand kan worden opgeslagen in Azure Blob Storage of in lokale opslag op een on-premises locatie en later worden geïmporteerd in Azure SQL Database, Azure SQL Managed Instance of een SQL Server-exemplaar.
Overwegingen
Als u een export transactioneel consistent wilt maken, moet u ervoor zorgen dat er geen schrijfactiviteit plaatsvindt tijdens de export of dat u exporteert vanuit een transactioneel consistente kopie van uw database.
Als u exporteert naar blobopslag, is de maximale grootte van een BACPAC-bestand 200 GB. Als u een groter BACPAC-bestand wilt archiveren, exporteert u naar lokale opslag met SqlPackage.
De Azure Storage-bestandsnaam kan niet eindigen en
.
mag geen speciale tekens bevatten, zoals een spatieteken of<
, ,>
,*
%
,&
, , ,:
,\
,/
.?
De bestandsnaam moet minder dan 128 tekens lang zijn.Als de exportbewerking langer is dan 20 uur, kan deze worden geannuleerd. Als u de prestaties tijdens het exporteren wilt verbeteren, kunt u het volgende doen:
- Verhoog de rekenkracht tijdelijk.
- Alle lees- en schrijfactiviteit tijdens de export stoppen.
- Gebruik een geclusterde index met niet-null-waarden voor alle grote tabellen. Zonder geclusterde indexen kan een export mislukken als het langer duurt dan 6-12 uur. Dit komt doordat de exportservice een tabelscan moet voltooien om de hele tabel te exporteren. Een goede manier om te bepalen of uw tabellen zijn geoptimaliseerd voor export, is om uit te voeren
DBCC SHOW_STATISTICS
en ervoor te zorgen dat de RANGE_HI_KEY niet null is en de waarde een goede verdeling heeft. Zie DBCC-SHOW_STATISTICS voor meer informatie.
Voor grotere databases kan het exporteren/importeren van BACPAC lang duren en kan het om verschillende redenen mislukken.
Notitie
BACPACs zijn niet bedoeld voor back-up- en herstelbewerkingen. Azure maakt automatisch back-ups voor elke gebruikersdatabase. Zie het overzicht van bedrijfscontinuïteit en geautomatiseerde back-ups in Azure SQL Database of geautomatiseerde back-ups in Azure SQL Managed Instance voor meer informatie.
Notitie
Importeren en exporteren met Private Link is in preview.
Azure Portal
Het exporteren van een BACPAC van een database vanuit Azure SQL Managed Instance met behulp van Azure Portal wordt momenteel niet ondersteund. Zie overwegingen.
Notitie
Op machines waarmee import-/exportaanvragen worden verwerkt die zijn verzonden via Azure Portal of PowerShell, moet het BACPAC-bestand worden opgeslagen, evenals tijdelijke bestanden die worden gegenereerd door 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. 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 een database wilt exporteren met behulp van Azure Portal, opent u de pagina voor uw database en selecteert u Exporteren op de werkbalk.
Geef de BACPAC-bestandsnaam op, selecteer een bestaand Azure-opslagaccount en -container voor de export en geef vervolgens de juiste referenties op voor toegang tot de brondatabase. Hier is een aanmelding van een SQL Server-beheerder nodig, zelfs als u de Azure-beheerder bent, omdat het niet gelijk is aan beheerdersmachtigingen in Azure SQL Database of Azure SQL Managed Instance.
Selecteer OK.
Als u de voortgang van de exportbewerking wilt controleren, opent u de pagina voor de server met de database die wordt geëxporteerd. Selecteer onder Gegevensbeheer de optie Import/Export-geschiedenis.
SQLPackage-hulpprogramma
U wordt aangeraden het gebruik van het HULPPROGRAMMA SQLPackage voor schaal en prestaties in de meeste productieomgevingen. U kunt meerdere SqlPackage-opdrachten parallel uitvoeren voor subsets van tabellen om import-/exportbewerkingen te versnellen.
Als u een database in SQL Database wilt exporteren met behulp van het opdrachtregelprogramma SQLPackage , raadpleegt u Parameters en eigenschappen exporteren. Het hulpprogramma SQLPackage is beschikbaar voor Windows, macOS en Linux.
In dit voorbeeld ziet u hoe u een database exporteert met behulp van SqlPackage met Universele verificatie van Active Directory:
SqlPackage /a:Export /tf:testExport.BACPAC /scs:"Data Source=apptestserver.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"
Azure Data Studio
Azure Data Studio is een gratis opensource-hulpprogramma en is beschikbaar voor Windows, Mac en Linux. De extensie SQL Server dacpac biedt een wizardinterface voor SqlPackage-bewerkingen, waaronder exporteren en importeren. Zie de SQL Server dacpac-extensie voor meer informatie over het installeren en gebruiken van de extensie.
SQL Server Management Studio (SSMS)
SQL Server Management Studio biedt een wizard voor het exporteren van een database in Azure SQL Database of een SQL Managed Instance-database naar een BACPAC-bestand. Zie de toepassing Een gegevenslaag exporteren.
PowerShell
Het exporteren van een BACPAC van een database vanuit Azure SQL Managed Instance met behulp van PowerShell wordt niet ondersteund. Zie overwegingen.
Gebruik de cmdlet New-AzSqlDatabaseExport om een exportdatabaseaanvraag in te dienen bij de Azure SQL Database-service. Afhankelijk van de grootte van uw database kan het enige tijd duren voordat de exportbewerking is voltooid.
$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
Gebruik de cmdlet Get-AzSqlDatabaseImportExportStatus om de status van de exportaanvraag te controleren. Als u deze cmdlet onmiddellijk uitvoert nadat de aanvraag meestal status retourneert : InProgress. Wanneer de status wordt weergegeven : Geslaagd is de export voltooid.
$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
Start-Sleep -s 10
$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write(".")
}
[Console]::WriteLine("")
$exportStatus
De exportaanvraag annuleren
Gebruik de databasebewerkingen - API annuleren of de opdracht PowerShell Stop-AzSqlDatabaseActivity om een exportaanvraag te annuleren. Hier volgt een voorbeeld van een PowerShell-opdracht:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Notitie
Als u de exportbewerking wilt annuleren, moet u een van de volgende rollen hebben:
- De rol SQL DB-inzender of
- Een aangepaste Azure RBAC-rol met
Microsoft.Sql/servers/databases/operations
machtiging
Beperkingen
- Het exporteren van een BACPAC-bestand naar Azure Premium Storage met behulp van de methoden die in dit artikel worden besproken, wordt niet ondersteund.
- Opslag achter een firewall wordt momenteel niet ondersteund.
- Onveranderbare opslag wordt momenteel niet ondersteund.
- Azure SQL Managed Instance biedt momenteel geen ondersteuning voor het exporteren van een database naar een BACPAC-bestand met behulp van Azure Portal of Azure PowerShell. Als u een beheerd exemplaar wilt exporteren naar een BACPAC-bestand, gebruikt u SQL Server Management Studio (SSMS) of SQLPackage.
- 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.
Gerelateerde inhoud
- Zie Langetermijnretentie van back-ups voor meer informatie over het bewaren van back-ups van één database en pooldatabases als alternatief voor het exporteren van een database voor archiefdoeleinden. U kunt SQL Agent-taken gebruiken om back-ups van alleen-kopiëren-databases te plannen als alternatief voor langetermijnretentie van back-ups .
- Zie Een BACPAC importeren in een SQL Server-database voor meer informatie over het importeren van een BACPAC in een SQL Server-database.
- Zie Een gegevenslaagtoepassing exporteren voor meer informatie over het exporteren van een BACPAC vanuit een SQL Server-database
- Zie Migreren van SQL Server naar Azure SQL Database offline met behulp van DMS voor meer informatie over het gebruik van de Data Migration Service om een database te migreren.
- Als u exporteert van SQL Server als een prelude naar migratie naar Azure SQL Database, raadpleegt u Een SQL Server-database migreren naar Azure SQL Database.
- Zie Beveiligingsaankopen voor Blob Storage voor meer informatie over het veilig beheren en delen van opslagsleutels en handtekeningen voor gedeelde toegang.