Sdílet prostřednictvím


Rychlý start: Import souboru BACPAC do databáze v Azure SQL Database nebo Azure SQL Managed Instance

Applies to:Azure SQL DatabaseAzure SQL Managed Instance

Databázi SQL Server 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 (pouze ú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.

Použití portálu Azure

V tomto videu se dozvíte, jak importovat ze souboru BACPAC na portálu Azure nebo pokračovat ve čtení:

  • Portál Azure podporuje pouze vytvoření jednotlivé databáze v Azure SQL Database a pouze ze souboru BACPAC uloženého v úložišti objektů blob Azure.
  • 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. Portál Azure 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 portálu Azure nebo Azure PowerShell 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 portálu Azure nebo PowerShellu musí uložit soubor BACPAC a také dočasné soubory generované rozhraním 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í portálu Azure, otevřete příslušnou stránku serveru a potom na panelu nástrojů vyberte Import databáze.

    Screenshot portálu Azure, stránka přehledu logického serveru s 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é SQL Server přihlašovací údaje. Seznam možných hodnot pro novou databázi v Azure SQL Database najdete v tématu Create Database.

    Screenshot portálu Azure, stránka 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 .

    Screenshot portálu Azure, stránka 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.

Import s využitím ověřování spravovaných identit (Preview)

Azure SQL Database podporuje import souboru BACPAC pomocí ověřování managed identity. Tato možnost umožňuje plně operace importu bez přihlašovacích údajů a doporučuje se pro prostředí, která zakazují ověřování SQL nebo vynucují ověřování pouze Microsoft Entra.

Databázi můžete importovat do nové databáze nebo do existující prázdné databáze.

Podrobný kurz najdete v tématu Použití spravované identity s importem a exportem (Preview).

K importu souboru BACPAC pomocí ověřování spravované identity se vyžaduje následující konfigurace:

  • Spravovaná identita přiřazená uživatelem (UAMI), přiřazená logickému serveru pro Azure SQL Database.
  • Server má spravovanou identitu nakonfigurovanou jako správce Microsoft Entra.
  • Spravovaná identita se přiřadí k roli Storage Blob Data Reader ve zdrojovém účtu Azure Storage. Tato spravovaná identita může být stejná jako identita přiřazená k serveru nebo jiná.
  • Logický server, spravovaná identita a účet úložiště jsou ve stejném tenantovi Microsoft Entra.

Následující scénáře nejsou podporovány:

  • Operace importu mezi tenanty
  • Spravovaná identita přiřazena pouze na úrovni konkrétní databáze.

Poznámka:

Import s ověřováním spravované identity je aktuálně v preview a je dostupný jenom pro Azure SQL Database.

Použití balíčku SqlPackage

Pokud chcete importovat databázi SQL Server pomocí nástroje příkazového řádku SqlPackage, viz importní parametry a vlastnosti. 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í portálu Azure. Blog poradenského týmu pro zákazníky SQL Server o migraci pomocí souborů BACPAC najdete v příspěvku migrace ze SQL Server do 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é

Pro připojení k Azure SQL Database za firewallem společnosti, musí být na firewalle otevřen port 1433. Pokud se chcete připojit k 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 Microsoft Entra ID (formerly Azure Active Directory). Služba Import/Export v současné době nepodporuje ověřování Microsoft Entra ID, pokud je vyžadováno vícefaktorové ověřování. Nahraďte parametry uživatelského jména a hesla pro /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"

Visual Studio Code

Rozšíření MSSQL pro Visual Studio Code je bezplatné opensourcové rozšíření dostupné pro Windows, macOS a Linux. Rozšíření zahrnuje prostředí databázové aplikace (Preview) pro operace SqlPackage, včetně exportu a importu. Další informace o instalaci a používání rozšíření najdete v rozšíření MSSQL pro Visual Studio Code.

Použití PowerShellu

Poznámka:

Azure SQL Managed Instance aktuálně nepodporuje migraci databáze do instance ze souboru BACPAC pomocí Azure PowerShell. K importu do spravované instance SQL použijte SQL Server Management Studio nebo SQLPackage.

Poznámka:

Počítače zpracovávající požadavky importu a exportu odeslané prostřednictvím portálu nebo PowerShellu musí ukládat soubor BACPAC a dočasné soubory generované rozhraním Data-Tier Application Framework (DacFX). 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 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. 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é

Bylo oznámeno, že modul PowerShell Azure Resource Manager (AzureRM) dosáhne zastarání k 29. únoru 2024. 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 žádost o import databáze do Azure. 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

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

Ú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 dopadech a možnostech pro provoz databáze na konkrétní úrovni kompatibility najdete v tématu O úrovni kompatibility ALTER DATABASE. Informace o dalších nastaveních na úrovni databáze souvisejících s úrovněmi kompatibility naleznete v tématu ALTER DATABASE SCOPED CONFIGURATION.

Omezení

  • Import do databáze v elastickém fondu se nepodporuje prostřednictvím portálu Azure, Azure PowerShell 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.
  • Služba importu exportu nefunguje, pokud je možnost Povolit přístup ke službám Azure vypnutá. 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ávání redundance úložiště zálohování při vytváření nové databáze a vytváření 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í portálu Azure 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í Microsoft Entra ID, pokud je vyžadováno vícefaktorové ověřování.
  • Služby Import\Export podporují pouze ověřování SQL a Microsoft Entra ID. Import\Export není kompatibilní s registrací aplikace Microsoft Identity.

Další nástroje

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