Delen via


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 weer worden geïmporteerd in Azure SQL Database, Azure SQL Managed Instanceof 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.

  • importeren en exporteren met behulp van Private Link is in preview.

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

Opmerking

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.

Exporteren vanuit Azure Portal

Opmerking

Machines die import-/exportaanvragen verwerken die zijn ingediend via Azure Portal of PowerShell, moeten het BACPAC-bestand en tijdelijke bestanden opslaan 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. Gebruik het hulpprogramma SQLPackage 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.

    Schermopname waarin de knop Exporteren is gemarkeerd.

  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.

    Schermopname van de pagina Database exporteren met gebruikersnaam en wachtwoord opgegeven.

  3. Kies 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 Gegevensbeheerde optie Import/Export-geschiedenis.

SQLPackage-hulpprogramma

We raden het gebruik van het hulpprogramma SQLPackage aan voor schaalbaarheid 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

Opmerking

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.