Exporteren naar een BACPAC-bestand - Azure SQL Database en Azure SQL Managed Instance

Van toepassing op: Azure SQL Database Azure 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 lokale opslag op een on-premises locatie en later weer worden geïmporteerd in Azure SQL Database, Azure SQL Managed Instance of een SQL Server-exemplaar.

Overwegingen

  • Een export is alleen transactioneel consistent als u ervoor zorgt dat er geen schrijfactiviteit plaatsvindt tijdens het exporteren 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.exe.

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

  • De naam van het opslagbestand of de invoerwaarde voor StorageURI mag niet langer zijn dan 128 tekens en mag niet eindigen op '.' en mag geen speciale tekens bevatten, zoals een spatie of '<,>,*,%,&,:,,/,?'.

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

    • Uw rekenkracht tijdelijk vergroten.
    • Stop alle lees- en schrijfactiviteiten tijdens het exporteren.
    • Gebruik een geclusterde index met niet-null-waarden voor alle grote tabellen. Zonder geclusterde indexen kan een export mislukken als deze langer duurt dan 6-12 uur. Dit komt doordat de exportservice een tabelscan moet voltooien om te proberen de hele tabel te exporteren. Een goede manier om te bepalen of uw tabellen zijn geoptimaliseerd voor export, is door DBCC-SHOW_STATISTICS uit te voeren en ervoor te zorgen dat de RANGE_HI_KEY niet null is en dat de waarde ervan een goede distributie heeft. Zie DBCC-SHOW_STATISTICS voor meer informatie.
  • Azure SQL Managed Instance biedt momenteel geen ondersteuning voor het exporteren van een database naar een BACPAC-bestand met behulp van de 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.

  • Voor grotere databases kan het exporteren/importeren van BACPAC lang duren en kan het om verschillende redenen mislukken.

Notitie

BACPC's zijn niet bedoeld om te worden gebruikt voor back-up- en herstelbewerkingen. Azure maakt automatisch back-ups voor elke gebruikersdatabase. Zie Overzicht van bedrijfscontinuïteit en SQL Database back-ups voor meer informatie.

Azure Portal

Het exporteren van een BACPAC van een database vanuit Azure SQL Managed Instance met behulp van de 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 benodigde 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. Dit kan worden opgelost door sqlpackage.exe uit te voeren op een machine met voldoende lokale schijfruimte. We raden het gebruik van SQLPackage aan 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 de 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. U hebt hier een sql Server-beheerdersaanmelding nodig, zelfs als u de Azure-beheerder bent, omdat het zijn van een Azure-beheerder niet gelijk is aan beheerdersmachtigingen in Azure SQL Database of Azure SQL Managed Instance.

    Database exporteren

  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 Gegevensbeheerde optie Geschiedenis van importeren/exporteren.

SQLPackage-hulpprogramma

U wordt aangeraden het hulpprogramma SQLPackage te gebruiken voor schaalaanpassing en prestaties in de meeste productieomgevingen. U kunt meerdere sqlpackage.exe opdrachten parallel uitvoeren voor subsets van tabellen om import-/exportbewerkingen te versnellen.

Zie Parameters en eigenschappen exporteren als u een database in SQL Database wilt exporteren met behulp van het opdrachtregelprogramma SQLPackage. Het hulpprogramma SQLPackage is beschikbaar voor Windows, macOS en Linux.

In dit voorbeeld ziet u hoe u een database exporteert met behulp van sqlpackage.exe met Universele Verificatie van Active Directory:

sqlpackage.exe /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 documentatiepagina van de extensie voor meer informatie over het installeren en gebruiken van de extensie.

SQL Server Management Studio (SSMS)

De nieuwste versies van SQL Server Management Studio bieden een wizard voor het exporteren van een database in Azure SQL Database of een SQL Managed Instance-database naar een BACPAC-bestand. Zie Een gegevenslaagtoepassing exporteren.

PowerShell

Het exporteren van een BACPAC van een database vanuit Azure SQL Managed Instance met behulp van PowerShell wordt momenteel 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 de 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 direct na de aanvraag uitvoert, wordt meestal de status InProgress geretourneerd. Wanneer u Status: Geslaagd ziet, 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 API Databasebewerkingen - Annuleren of de powerShell-opdracht 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:

Volgende stappen