Anteckning
Å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.
gäller för:Azure SQL Database
Azure SQL Managed Instance
Du kan importera en SQL Server-databas till Azure SQL Database eller SQL Managed Instance med hjälp av en .bacpac-fil . Du kan importera data från en bacpac-fil som lagras i Azure Blob Storage (endast standardlagring) eller från lokal lagring på en lokal plats. Om du vill maximera importhastigheten genom att tillhandahålla fler och snabbare resurser skalar du databasen till en högre tjänstnivå och beräkningsstorlek under importen. Du kan sedan skala ned när importen har slutförts.
Anmärkning
Import och export med Private Link finns i förhandsversionen.
Använda Azure-portalen
Titta på den här videon om du vill se hur du importerar från en bacpac-fil i Azure-portalen eller fortsätter läsa:
- Azure-portalen har endast stöd för att skapa en enkel databas i Azure SQL Database och endast från en bacpac-fil som lagras i Azure Blob Storage.
- Om du vill migrera en databas till en Azure SQL Managed Instance från en bacpac-fil använder du SQL Server Management Studio eller
SqlPackagekommandoradsverktyget. Azure-portalen och Azure PowerShell stöds inte för närvarande.
Varning
Bacpac-filer över 150 GB som genereras från SqlPackage kan misslyckas med att importera från Azure-portalen eller Azure PowerShell med ett felmeddelande som anger File contains corrupted data. Detta är ett resultat av ett känt problem och lösningen är att använda SqlPackage kommandoradsverktyget för att importera bacpac-filen. Mer information finns i SqlPackage och problemloggen.
Anmärkning
Datorer som bearbetar import-/exportbegäranden som skickas via Azure-portalen eller PowerShell måste lagra bacpac-filen samt 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 kommandoradsverktyget SqlPackage på en dator med tillräckligt med lokalt diskutrymme. Vi rekommenderar att du använder kommandoradsverktyget SqlPackage för att importera/exportera databaser som är större än 150 GB för att undvika det här problemet.
Om du vill importera från en bacpac-fil till en ny enkel databas med hjälp av Azure-portalen öppnar du lämplig serversida och väljer sedan Importera databas i verktygsfältet.
Välj Välj säkerhetskopiering. Välj lagringskontot som är värd för databasen och välj sedan bacpac-filen som du vill importera från.
Ange den nya databasstorleken (vanligtvis samma som ursprunget) och ange SQL Server-målautentiseringsuppgifterna. En lista över möjliga värden för en ny databas i Azure SQL Database finns i Skapa databas.
Välj OK.
Om du vill övervaka förloppet för en import öppnar du databasens serversida och under Inställningar väljer du Import-/exporthistorik. När importen har slutförts har den statusen Slutförd.
Om du vill kontrollera att databasen är live på servern väljer du SQL-databaser och kontrollerar att den nya databasen är Online.
Använda SqlPackage
Information om hur du importerar en SQL Server-databas med hjälp av kommandoradsverktyget SqlPackage finns i importera parametrar och egenskaper. Du kan ladda ned den senaste SqlPackage för Windows, macOS eller Linux.
För skalning och prestanda rekommenderar vi att du använder SqlPackage i de flesta produktionsmiljöer i stället för att använda Azure-portalen. För en SQL Server Customer Advisory Team-blogg om att migrera med BACPAC-filer, se att migrera från SQL Server till Azure SQL-databas med hjälp av BACPAC-filer.
Den DTU-baserade etableringsmodellen har stöd för att välja databasens maxstorleksvärden för varje nivå. När du importerar en databas använder du något av dessa värden som stöds.
Följande SqlPackage-kommando importerar AdventureWorks2008R2 databasen från lokal lagring till en logisk SQL-server med namnet mynewserver20170403. Den skapar en ny databas med namnet myMigratedDatabase med en Premium-tjänstnivå och ett P6-tjänstmål . Ändra dessa värden efter behov för din miljö.
SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=<migratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2008R2.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6
Viktigt!
Om du vill ansluta till Azure SQL Database bakom en företagsbrandvägg måste brandväggen ha port 1433 öppen. Om du vill ansluta till SQL Managed Instance måste du ha en punkt-till-plats-anslutning eller en expressvägsanslutning.
Som ett alternativ till användarnamn och lösenord kan du använda Microsoft Entra-ID (tidigare Azure Active Directory). För närvarande stöder inte import-/exporttjänsten Microsoft Entra-ID-autentisering när MFA krävs. Ersätt parametrarna användarnamn och lösenord för /ua:true och /tid:"yourdomain.onmicrosoft.com". Det här exemplet visar hur du importerar en databas med SqlPackage med Microsoft Entra-autentisering:
SqlPackage /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"
Azure Data Studio
Azure Data Studio är ett kostnadsfritt verktyg med öppen källkod och är tillgängligt för Windows, macOS och Linux. Tillägget "SQL Server dacpac" innehåller ett guidegränssnitt för SqlPackage-åtgärder, inklusive export och import. Mer information om hur du installerar och använder tillägget finns i dokumentationen för SQL Server dacpac-tillägget.
Använda PowerShell
Anmärkning
Azure SQL Managed Instance stöder för närvarande inte migrering av en databas till en instansdatabas från en bacpac-fil med hjälp av Azure PowerShell. Om du vill importera till en SQL-hanterad instans använder du SQL Server Management Studio eller SQLPackage.
Anmärkning
Datorerna som bearbetar import-/exportbegäranden som skickas via portalen eller PowerShell måste lagra bacpac-filen samt 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 ta upp till tre gånger av databasens storlek. Datorer som kör import-/exportbegäran har bara 450 GB lokalt diskutrymme. Därför kan vissa begäranden misslyckas med felet "Det finns inte tillräckligt med utrymme på disken". I det här fallet är lösningen att köra SqlPackage på en dator med tillräckligt med lokalt diskutrymme. När du importerar/exporterar databaser som är större än 150 GB använder du SqlPackage för att undvika det här problemet.
Viktigt!
PowerShell-modulen Azure Resource Manager (AzureRM) avskaffades den 29 februari 2024. All framtida utveckling bör använda Az.Sql-modulen. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar. AzureRM-modulen underhålls inte längre eller stöds inte längre. Argumenten för kommandona i Az PowerShell-modulen och i AzureRM-modulerna är i stort sätt identiska. Mer information om deras kompatibilitet finns i Introduktion till den nya Az PowerShell-modulen.
Använd cmdleten New-AzSqlDatabaseImport för att skicka en importdatabasbegäran till Azure. Beroende på databasens storlek kan det ta lite tid att slutföra importen. Den DTU-baserade etableringsmodellen har stöd för att välja databasens maxstorleksvärden för varje nivå. När du importerar en databas använder du något av dessa värden som stöds.
$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" `
-ServerName "<serverName>" -DatabaseName "<databaseName>" `
-DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
-StorageKey $(Get-AzStorageAccountKey `
-ResourceGroupName "<resourceGroupName>" -StorageAccountName "<storageAccountName>").Value[0] `
-StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
-Edition "Premium" -ServiceObjectiveName "P6" `
-AdministratorLogin "<userId>" `
-AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)
Du kan använda cmdleten Get-AzSqlDatabaseImportExportStatus för att kontrollera importens förlopp. Om du kör cmdleten omedelbart efter begäran kommer den vanligtvis att returnera Status: InProgress. Importen är klar när du ser Status: Succeeded.
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Importing")
while ($importStatus.Status -eq "InProgress") {
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write(".")
Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus
Tips/Råd
Ett annat skriptexempel finns i Importera en databas från en BACPAC-fil.
Avbryt importbegäran
Använd Database Operations - Cancel API eller PowerShell-kommandot Stop-AzSqlDatabaseActivity, som i följande exempel:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Behörigheter som krävs för att avbryta importen
Om du vill avbryta importen måste du vara medlem i någon av följande roller:
- SQL DB-deltagarrollen eller
- En anpassad RBAC-roll för Azure-rollbaserad åtkomstkontroll med behörighet
Kompatibilitetsnivå för den nya databasen
- Den importerade databasens kompatibilitetsnivå baseras på källdatabasens kompatibilitetsnivå.
- När du har importerat databasen kan du välja att använda databasen på den aktuella kompatibilitetsnivån eller på en högre nivå. Mer information om konsekvenserna och alternativen för att använda en databas på en specifik kompatibilitetsnivå finns i ÄNDRA DATABASkompatibilitetsnivå. Mer information om andra inställningar på databasnivå som rör kompatibilitetsnivåer finns i ÄNDRA DATABASOMFÅNGSKONFIGURATION .
Begränsningar
- Import till en databas i elastisk pool stöds inte via Azure-portalen, Azure PowerShell eller Azure CLI. Skapa i stället en databas i den elastiska poolen och använd sedan SQLPackage Import eller importera data med valfri metod till en enskild databas och flytta sedan databasen till en elastisk pool.
- Import Export-tjänsten fungerar inte när "Tillåt åtkomst till Azure-tjänster" är inställt på "AV". Du kan dock kringgå problemet genom att manuellt köra SqlPackage från en virtuell Azure-dator eller utföra exporten direkt i koden med hjälp av DacFx-API:et.
- Import har inte stöd för att ange en redundans för lagring av säkerhetskopior när du skapar en ny databas och skapar med standardredundans för geo-redundant lagring av säkerhetskopiering. Börja med att skapa en tom databas med önskad redundans för säkerhetskopieringslagring med hjälp av Azure-portalen eller PowerShell och importera sedan bacpac till den här tomma databasen.
- Lagring bakom en brandvägg stöds för närvarande inte.
- Under importprocessen ska du inte skapa en databas med samma namn. Importprocessen skapar en ny databas med det angivna namnet.
- 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.
Ytterligare verktyg
Du kan också använda de här guiderna.
- Guiden Importera program på datanivå i SQL Server Management Studio.
- SQL Server-guiden för import och export
Relaterat innehåll
- Information om hur du ansluter till och frågar en databas i Azure SQL Database finns i Snabbstart: Azure SQL Database: Använda SQL Server Management Studio för att ansluta till och fråga efter data.
- En SQL Server Customer Advisory Team-blogg om migrering med .bacpac-filer finns i Migrera från SQL Server till Azure SQL Database med hjälp av BACPAC Files.
- En diskussion om hela SQL Server-databasmigreringsprocessen, inklusive prestandarekommendationer, finns i SQL Server-databasmigrering till Azure SQL Database.
- Information om hur du hanterar och delar lagringsnycklar och signaturer för delad åtkomst på ett säkert sätt finns i Säkerhetsguide för Azure Storage.