Sdílet prostřednictvím


Rychlý start: Import souboru bacpac do databáze ve službě Azure SQL Database nebo Azure SQL Managed Instance

Platí pro:Azure SQL DatabaseAzure SQL Managed Instance

Databázi SQL Serveru můžete importovat do Azure SQL Database nebo sql Managed Instance pomocí souboru .bacpac . Data můžete importovat ze souboru bacpac uloženého ve službě Azure Blob Storage (jenom úložiště úrovně Standard) nebo z místního úložiště v místním umístění. Pokud chcete zajistit rychlejší import s využitím většího množství rychlejších prostředků, škálujte databázi během procesu importu na vyšší úroveň služby a velikost výpočetních prostředků. Po úspěšném dokončení importu pak můžete kapacitu vertikálně snížit.

Poznámka:

Import a export pomocí služby Private Link je ve verzi Preview.

Použití webu Azure Portal

V tomto videu se dozvíte, jak importovat ze souboru bacpac na webu Azure Portal nebo pokračovat ve čtení:

  • Azure Portalpodporuje pouze vytvoření izolované databáze ve službě Azure SQL Database a pouze ze souboru bacpac uloženého ve službě Azure Blob Storage.
  • Pokud chcete migrovat databázi do azure SQL Managed Instance ze souboru bacpac, použijte SQL Server Management Studio nebo nástroj příkazového řádku SqlPackage. Azure Portal a Azure PowerShell se v současné době nepodporují.

Varování

Soubory Bacpac nad 150 GB vygenerované z SqlPackage se nemusí podařit importovat z webu Azure Portal nebo Azure PowerShellu s chybovou zprávou, která uvádí File contains corrupted data. Jedná se o výsledek známého problému a alternativním řešením je použití SqlPackage nástroje příkazového řádku k importu souboru bacpac. Další informace najdete v tématu SqlPackage a protokol problému.

Poznámka:

Počítače zpracovávající požadavky importu a exportu odeslané prostřednictvím webu Azure Portal nebo PowerShellu musí uložit soubor bacpac i dočasné soubory vygenerované architekturou Data-Tier Application Framework (DacFX). Požadované místo na disku se výrazně liší mezi databázemi se stejnou velikostí a může vyžadovat místo na disku až třikrát větší velikost databáze. Počítače, na kterých běží požadavek na import/export, mají jenom 450 GB místa na místním disku. V důsledku toho mohou některé požadavky selhat s chybou There is not enough space on the disk. V tomto případě je alternativním řešením spustit nástroj příkazového řádku SqlPackage na počítači s dostatečným místem na místním disku. Doporučujeme použít nástroj příkazového řádku SqlPackage k importu a exportu databází větších než 150 GB, abyste se tomuto problému vyhnuli.

  1. Pokud chcete importovat soubor bacpac do nové izolované databáze pomocí webu Azure Portal, otevřete příslušnou stránku serveru a pak na panelu nástrojů vyberte Importovat databázi.

    Snímek obrazovky se stránkou přehledu logického serveru na webu Azure Portal a vybranou možností importu databáze

  2. Vyberte Vybrat zálohu. Zvolte účet úložiště, který je hostitelem vaší databáze, a pak vyberte soubor bacpac, ze kterého chcete importovat.

  3. Zadejte novou velikost databáze (obvykle stejnou jako zdroj) a zadejte cílové přihlašovací údaje SQL Serveru. Seznam možných hodnot pro novou databázi ve službě Azure SQL Database najdete v tématu Vytvoření databáze.

    Snímek obrazovky webu Azure Portal se stránkou importu databáze

  4. Vyberte OK.

  5. Pokud chcete sledovat průběh importu, otevřete stránku serveru databáze a v části Nastavení vyberte Historii importu/exportu. Po úspěšném dokončení má import stav Dokončeno .

    Snímek obrazovky webu Azure Portal se stránkou přehledu serveru zobrazující stav importu databáze

  6. Pokud chcete ověřit, že je databáze na serveru aktivní, vyberte databáze SQL a ověřte, že je nová databáze online.

Použití balíčku SqlPackage

Pokud chcete importovat databázi SQL Serveru pomocí nástroje příkazového řádku SqlPackage , přečtěte si informace o parametrech a vlastnostech importu. Nejnovější SqlPackage si můžete stáhnout pro Windows, macOS nebo Linux.

Pro škálování a výkon doporučujeme používat SqlPackage ve většině produkčních prostředí místo použití webu Azure Portal. Blog poradního týmu pro zákazníky SQL Serveru o migraci pomocí BACPAC souborů najdete pod názvem Migrace z SQL Serveru do služby Azure SQL Database pomocí souborů BACPAC.

Model zřizování založený na DTU podporuje výběr hodnot maximální velikosti databáze pro každou úroveň. Při importu databáze použijte jednu z těchto podporovaných hodnot.

Následující příkaz SqlPackage naimportuje AdventureWorks2008R2 databázi z místního úložiště do logického SQL serveru s názvem mynewserver20170403. Vytvoří novou databázi s názvem myMigratedDatabaseúrovně služby Premium a cílem služby P6 . Podle potřeby změňte tyto hodnoty pro vaše prostředí.

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

Důležité

Pokud se chcete připojit ke službě Azure SQL Database za podnikovou bránou firewall, musí mít brána firewall otevřený port 1433. Pokud se chcete připojit ke službě SQL Managed Instance, musíte mít připojení typu point-to-site nebo připojení expressroute.

Jako alternativu k uživatelskému jménu a heslu můžete použít ID Microsoft Entra (dříve Azure Active Directory). Služba Import/Export v současné době nepodporuje ověřování ID Microsoft Entra, pokud je vyžadováno vícefaktorové ověřování. Nahraďte parametry uživatelského jména a hesla za /ua:true a /tid:"yourdomain.onmicrosoft.com". Tento příklad ukazuje, jak importovat databázi pomocí sqlPackage s ověřováním Microsoft Entra:

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 je bezplatný opensourcový nástroj, který je k dispozici pro Windows, macOS a Linux. Rozšíření DACpac pro SQL Server poskytuje rozhraní průvodce pro operace SqlPackage, včetně exportu a importu. Další informace o instalaci a používání rozšíření najdete v dokumentaci k rozšíření dacpac sql Serveru.

Použití PowerShellu

Poznámka:

Spravovaná instance Azure SQL v současné době nepodporuje migraci databáze do databáze instance ze souboru bacpac pomocí Azure PowerShellu. Pokud chcete importovat do spravované instance SQL, použijte SQL Server Management Studio nebo SQLPackage.

Poznámka:

Počítače zpracovávající požadavky na import a export odeslané prostřednictvím portálu nebo PowerShellu musí uložit soubor bacpac i dočasné soubory generované rozhraním DacFX (Data-Tier Application Framework). Požadavky na místo na disku se výrazně liší mezi databázemi se stejnou velikostí a mohou zabírat až třikrát více, než je velikost databáze. Počítače, na kterých běží požadavek na import/export, mají jenom 450 GB místa na místním disku. V důsledku toho můžou některé požadavky selhat s chybou "Na disku není dostatek místa". V tomto případě je alternativním řešením spustit SqlPackage na počítači s dostatečným místem na místním disku. Při importu nebo exportu databází větších než 150 GB použijte SqlPackage, abyste se tomuto problému vyhnuli.

Důležité

Modul Azure Resource Manager (AzureRM) PowerShellu byl 29. února 2024 zastaralý. Veškerý budoucí vývoj by měl používat modul Az.Sql. Uživatelům se doporučuje migrovat z AzureRM do modulu Az PowerShell, aby se zajistila nepřetržitá podpora a aktualizace. Modul AzureRM se už neudržuje ani nepodporuje. Argumenty pro příkazy v modulu Az PowerShell a v modulech AzureRM jsou podstatně identické. Další informace o jejich kompatibilitě najdete v tématu Představujeme nový modul Az PowerShell.

Pomocí rutiny New-AzSqlDatabaseImport odešlete do Azure žádost o import databáze. V závislosti na velikosti databáze může dokončení importu nějakou dobu trvat. Model zřizování založený na DTU podporuje výběr hodnot maximální velikosti databáze pro každou úroveň. Při importu databáze použijte jednu z těchto podporovaných hodnot.

$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)

Pomocí rutiny Get-AzSqlDatabaseImportExportStatus můžete zkontrolovat průběh importu. Spuštění cmdletu bezprostředně po požadavku obvykle vrátí Status: InProgress. Import se dokončí, až se zobrazí 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

Tip

Další příklad skriptu najdete v tématu Import databáze ze souboru BACPAC.

Zrušení žádosti o import

Použijte databázové operace – Zrušení rozhraní API nebo příkaz PowerShellu Stop-AzSqlDatabaseActivity, jak je znázorněno v následujícím příkladu:

Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId

Oprávnění potřebná ke zrušení importu

Pokud chcete operaci importu zrušit, musíte být členem jedné z následujících rolí:

  • Role přispěvatele databáze SQL nebo
  • Vlastní role řízení přístupu na základě rolí (RBAC) v Azure s oprávněním Microsoft.Sql/servers/databases/operations

Úroveň kompatibility nové databáze

  • Úroveň kompatibility importované databáze je založená na úrovni kompatibility zdrojové databáze.
  • Po importu databáze můžete databázi provozovat na aktuální úrovni kompatibility nebo na vyšší úrovni. Další informace o důsledcích a možnostech provozu databáze na konkrétní úrovni kompatibility najdete v tématu Úroveň kompatibility ALTER DATABASE. Informace o dalších nastaveních na úrovni databáze souvisejících s úrovněmi kompatibility najdete také v tématu ALTER DATABASE SCOPED CONFIGURATION .

Omezení

  • Import do databáze v elastickém fondu se nepodporuje prostřednictvím webu Azure Portal, Azure PowerShellu nebo Azure CLI. Místo toho vytvořte databázi v elastickém fondu a pak použijte SQLPackage Importnebo importujte data pomocí libovolné metody do jedné databáze a pak databázi přesuňte do elastického fondu.
  • Když je povolení přístupu ke službám Azure nastavené na VYPNUTO, služba importu a exportu nefunguje. Problém ale můžete vyřešit ručním spuštěním SqlPackage z virtuálního počítače Azure nebo provedením exportu přímo v kódu pomocí rozhraní DAcFx API.
  • Import nepodporuje zadání redundance úložiště zálohování při vytváření nové databáze a databáze se vytvoří s výchozí geograficky redundantní redundancí úložiště zálohování. Pokud chcete tento problém obejít, nejprve vytvořte prázdnou databázi s požadovanou redundancí úložiště zálohování pomocí webu Azure Portal nebo PowerShellu a pak importujte soubor bacpac do této prázdné databáze.
  • Úložiště za bránou firewall aktuálně není podporováno.
  • Během procesu importu nevytvořte databázi se stejným názvem. Proces importu vytvoří novou databázi zadaného názvu.
  • Služba Import/Export v současné době nepodporuje ověřování ID Microsoft Entra, pokud je vyžadováno vícefaktorové ověřování.
  • Služby Import\Export podporují pouze ověřování SQL a ID Microsoft Entra. Import\Export není kompatibilní s registrací aplikace Microsoft Identity.

Další nástroje

Tyto průvodce můžete také použít.