Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Applies to:Azure SQL Database
Azure SQL Managed Instance
När du behöver exportera en databas för arkivering eller för att flytta till en annan plattform kan du exportera databasschemat och data till en BACPAC-fil . En BACPAC-fil är en ZIP-fil med ett tillägg av BACPAC som innehåller metadata och data från databasen. En BACPAC-fil kan lagras i Azure Blob Storage eller i lokal lagring på en lokal plats och senare importeras tillbaka till Azure SQL Database, Azure SQL Managed Instance eller en SQL Server-instans.
Överväganden
För att en export ska vara transaktionsmässigt konsekvent måste du antingen se till att ingen skrivaktivitet inträffar under exporten eller att du exporterar från en transaktionsmässigt konsekvent kopia av databasen.
Om du exporterar till bloblagring är den maximala storleken på en BACPAC-fil 200 GB. Om du vill arkivera en större BACPAC-fil exporterar du till lokal lagring med SqlPackage.
Importera eller exportera en Azure SQL Database med hjälp av privat länk finns i förhandsversionen.
Det Azure Storage filnamnet kan inte sluta med . och får inte innehålla specialtecken som ett blanksteg eller <, >, *, %, &, :, \, /, ?. Filnamnet ska vara färre än 128 tecken långt.
Om exportåtgärden överskrider 20 timmar kan den komma att avbrytas. Om du vill öka prestandan under exporten kan du:
Öka beräkningsstorleken tillfälligt.
Avbryt all läs- och skrivaktivitet under exporten.
Använd ett grupperat index med värden som inte är null i alla stora tabeller. Utan grupperade index kan en export misslyckas om det tar längre tid än 6–12 timmar. Det beror på att exporttjänsten måste slutföra en tabellgenomsökning för att försöka exportera hela tabellen. Ett bra sätt att avgöra om tabellerna är optimerade för export är att köra
DBCC SHOW_STATISTICSoch se till att inte är null och attRANGE_HI_KEYdess värde har en bra distribution. Mer information finns i DBCC SHOW_STATISTICS (Transact-SQL).För större databaser kan BACPAC-export/import ta lång tid och kan misslyckas av olika orsaker.
Anmärkning
BACPACs är inte avsedda att användas för säkerhetskopierings- och återställningsåtgärder. Azure skapar automatiskt säkerhetskopior för varje användardatabas. Mer information finns i översikten över affärskontinuitet och Automaterade säkerhetskopior i Azure SQL Database eller Automaterade säkerhetskopior i Azure SQL Managed Instance.
Exportera från Azure-portalen
- Du kan använda Azure-portalen för att exportera en BACPAC för en databas i en Azure SQL Database logisk server.
- Det finns för närvarande inte stöd för att exportera en BACPAC för en databas från Azure SQL Managed Instance med hjälp av Azure portalen.
Anmärkning
Datorer som bearbetar import-/exportbegäranden som skickas via Azure-portalen eller PowerShell måste lagra BACPAC-filen och temporära filer som genereras av Data-Tier Application Framework (DacFX). Diskutrymmet som krävs varierar avsevärt mellan databaser med samma storlek och kan kräva diskutrymme upp till tre gånger storleken på databasen. Datorer som kör import-/exportbegäran har bara 450 GB lokalt diskutrymme. Därför kan vissa begäranden misslyckas med felet There is not enough space on the disk. I det här fallet är lösningen att köra SqlPackage på en dator med tillräckligt med lokalt diskutrymme. Använd SQLPackage-verktyget för att importera/exportera databaser som är större än 150 GB för att undvika det här problemet.
Om du vill exportera en databas med hjälp av Azure-portalen öppnar du sidan för databasen och väljer Export i verktygsfältet.
Ange BACPAC-filnamnet, välj ett befintligt Azure lagringskonto och container för exporten och ange sedan lämpliga autentiseringsuppgifter för åtkomst till källdatabasen. En SQL Server-administratörsinloggning krävs här även om du är Azure administratör, eftersom en Azure administratör inte motsvarar administratörsbehörigheter i Azure SQL Database eller Azure SQL Managed Instance.
Välj OK.
Om du vill övervaka förloppet för exportåtgärden öppnar du sidan för servern som innehåller databasen som exporteras. Under Datahantering väljer du Import/Export-historik.
Exportera med hanterad identitetsautentisering (förhandsversion)
Du kan exportera en databas i Azure SQL Database till en BACPAC-fil med hjälp av hanterad identitetautentisering för att eliminera behovet av att ange SQL-administratörslösenord eller lagringsåtkomstnycklar.
En detaljerad självstudiekurs finns i Använda hanterad identitet med import och export (förhandsversion).
Följande konfiguration krävs för att exportera en BACPAC-fil med hanterad identitetsautentisering:
- En användartilldelad hanterad identitet (UAMI) som tilldelas den logiska servern för Azure SQL Database.
- Servern har den hanterade identiteten konfigurerad som Microsoft Entra administratör.
- En hanterad identitet tilldelas rollen Storage Blob Data Contributor för målkontot Azure Storage. Den här hanterade identiteten kan vara samma som den som tilldelats till servern eller en annan.
- Den logiska servern, den hanterade identiteten och lagringskontot finns i same Microsoft Entra klientorganisation.
Anmärkning
Export med hanterad identitetsautentisering finns för närvarande i förhandsversion och är endast tillgängligt för Azure SQL Database.
SQLPackage-verktyg
Vi rekommenderar användning av SQLPackage-verktyget för skalning och prestanda i de flesta produktionsmiljöer. Du kan köra flera SQLPackage-kommandon parallellt för delmängder av tabeller för att påskynda import-/exportåtgärder.
Information om hur du exporterar en databas i SQL Database med hjälp av kommandoradsverktyget SQLPackage finns i Exportera parametrar och egenskaper. Verktyget SQLPackage är tillgängligt för Windows, macOS och Linux.
Det här exemplet visar hur du exporterar en databas med sqlpackage med Active Directory universell autentisering:
SqlPackage /a:Export /tf:testExport.bacpac /scs:"Data Source=apptestserver.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"
Visual Studio Code
MSSQL-tillägget för Visual Studio Code är ett kostnadsfritt tillägg med öppen källkod som är tillgängligt för Windows, macOS och Linux. Tillägget innehåller datanivåprogrammet (förhandsversion) för SqlPackage-åtgärder , inklusive export och import. Mer information om hur du installerar och använder tillägget finns i tillägget MSSQL för Visual Studio Code.
SQL Server Management Studio (SSMS)
SQL Server Management Studio innehåller en guide för att exportera en databas i Azure SQL Database eller en SQL Managed Instance databas till en BACPAC-fil. Se Exportera ett program på datanivå.
PowerShell
Det går inte att exportera en BACPAC för en databas från Azure SQL Managed Instance med hjälp av PowerShell. Se Överväganden.
Använd cmdleten New-AzSqlDatabaseExport för att skicka en exportdatabasbegäran till Azure SQL Database-tjänsten. Beroende på databasens storlek kan det ta lite tid att slutföra exportåtgärden.
$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
Om du vill kontrollera status för exportbegäran använder du cmdleten Get-AzSqlDatabaseImportExportStatus . Om du kör den här cmdleten omedelbart efter att begäran vanligtvis returnerar Status: InProgress. När du ser Status: Lyckades exporten är klar.
$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
Avbryt exportbegäran
Använd kommandot Database Operations – Cancel API eller PowerShell Stop-AzSqlDatabaseActivity för att avbryta en exportbegäran. Här är ett exempel på ett PowerShell-kommando:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Anmärkning
Om du vill avbryta exportåtgärden måste du ha någon av följande roller:
- SQL DB-deltagarrollen eller
- En anpassad Azure RBAC-roll med behörigheten
Microsoft.Sql/servers/databases/operations
Begränsningar
- Det går inte att exportera en BACPAC-fil till Azure Premium Storage med de metoder som beskrivs i den här artikeln.
- Lagring bakom en brandvägg stöds för närvarande inte.
- Oföränderlig lagring stöds för närvarande inte.
- Azure SQL Managed Instance stöder för närvarande inte export av en databas till en BACPAC-fil med hjälp av Azure-portalen eller Azure PowerShell. Om du vill exportera en hanterad instans till en BACPAC-fil använder du SQL Server Management Studio (SSMS) eller SQLPackage.
- För närvarande stöder inte import-/exporttjänsten Microsoft Entra ID autentisering när MFA krävs.
- Import\Export services stöder endast SQL-autentisering och Microsoft Entra ID. Import\Export är inte kompatibelt med registrering av Microsoft Identity-program.
Relaterat innehåll
- Säkerhetskopior på lång sikt – Azure SQL Database och Azure SQL Managed Instance
- säkerhetskopior av endast kopieringsdatabaser
- Importera en BACPAC till en SQL Server databas
- Exportera ett dataskiktsprogram
- Migrera från SQL Server till Azure SQL Database offline med DMS
- Migrera en SQL Server databas till Azure SQL Database
- Säkerhetsrekommendationer för Blob Storage