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 Database Azure 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 Portal podporuje 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.

Upozorňující

Soubory Bacpac nad 4 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.

Pokud chcete migrovat databázi do azure SQL Managed Instance ze souboru bacpac, použijte SQL Server Management Studio nebo SQLPackage, pomocí webu Azure Portal nebo Azure PowerShellu se v současné době nepodporuje.

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 SqlPackage na počítači s dostatečným místem na místním disku. Doporučujeme použít SqlPackage k importu nebo 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 pro Windows, macOS nebo Linux si můžete stáhnout.

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 týmu poradce pro zákazníka s SQL Serverem o migraci pomocí BACPAC souborů najdete v tématu 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žadované místo na disku se výrazně liší mezi databázemi se stejnou velikostí a může trvat až třikrát velikosti 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 Manageru (RM) PowerShellu je stále podporovaný, ale veškerý budoucí vývoj je určený pro modul Az.Sql. Modul AzureRM bude dál dostávat opravy chyb až do alespoň prosince 2020. Argumenty pro příkazy v modulu Az a v modulech AzureRm jsou podstatně identické. Další informace o jejich kompatibilitě najdete v tématu Představení nového modulu Az Azure PowerShellu.

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í rutiny ihned 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ě role 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. Můžete importovat data do jednoúčelové databáze, kterou pak můžete přesunout 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 možnost zadat při vytváření databáze redundanci úložiště zálohování. Databáze se vytvoří s výchozím geograficky redundantní ú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 se v současné době nepodporuje.
  • 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 použít také.