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.

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.

  1. 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.

    Screenshot that highlights the Export button.

  2. 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.

    Screenshot shows the Export Database page with username and password specified.

  3. Selecteer OK.

  4. 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:

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.