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

PLATÍ PRO: Azure SQL Database spravovaná instance SQL Azure

Databázi můžete importovat SQL Server do Azure SQL Database nebo SQL instance pomocí souboru BACPAC. Data můžete importovat ze souboru BACPAC uloženého v úložišti objektů Blob v Azure (pouze standardní úložiště) nebo z místního úložiště v místním umístění. Pokud chcete maximalizovat rychlost importu tím, že poskytnete více a rychlejší prostředky, zmenšete databázi na vyšší úroveň služby a vypočítáte velikost během procesu importu. Po úspěšném importu pak můžete měřítko zmenšovat.

Poznámka:

Úroveň kompatibility importované databáze je založena na úrovni kompatibility zdrojové databáze.

Důležité:

Po importu databáze můžete databázi ovládat na aktuální úrovni kompatibility (úroveň 100 pro databázi AdventureWorks2008R2) nebo na vyšší úrovni. Další informace o důsledcích a možnostech pro provoz databáze na určité úrovni kompatibility najdete v tématu ALTER DATABASE Compatibility Level. Informace o dalších nastaveních na úrovni databáze souvisejících s úrovněmi kompatibility najdete také v článku ALTER DATABASE SCOPED CONFIGURATION .)

Používání portálu Azure Portal

V tomto videu se můžete podívat, jak importovat ze souboru BACPAC na portálu Azure Portal nebo pokračovat ve čtení níže:

Portál Azure portal podporujevytvoření jediné databáze v Azure SQL Database a jenom ze souboru BACPAC uloženého v úložišti objektů Blob v Azure.

Pokud chcete migrovat databázi do spravované instance Azure SQL ze souboru BACPAC, použijte SQL Server Management Studio nebo SQLPackage pomocí portálu Azure portal nebo Azure PowerShell není momentálně podporovaná.

Poznámka:

Počítače zpracovávající žádosti o import a export odeslané prostřednictvím portálu Azure portal nebo PowerShellu musí ukládat soubor BACPAC i dočasné soubory vygenerované rozhraním Data-Tier Application Framework (DacFX). Požadované místo na disku se výrazně liší v databázích se stejnou velikostí a může vyžadovat místo na disku až třikrát větší než databáze. Počítače s žádostí o import a export mají jenom 450 GB místa na místním disku. V důsledku toho se některé žádosti selžou s chybou There is not enough space on the disk . V tomto případě je alternativním řešením spuštění sqlpackage.exe na počítači s dostatečným místním prostorem na disku. Doporučujeme použít SqlPackage k importu a exportu databází větších než 150 GB, abyste se tomuto problému vyhnuli.

  1. Pokud chcete naimportovat ze souboru BACPAC do nové databáze pomocí portálu Azure Portal, otevřete příslušnou stránku serveru a potom na panelu nástrojů vyberte Importovat databázi.

    Database import1

  2. Vyberte účet úložiště a kontejner pro soubor BACPAC a pak vyberte soubor BACPAC, ze kterého chcete importovat.

  3. Zadejte novou velikost databáze (obvykle stejnou jako původní) 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 Vytvoření databáze.

    Database import2

  4. Klikněte na OK.

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

    Database import status

  6. Pokud chcete ověřit, jestli je databáze na serveru živá, vyberte SQL databáze a ověřte, jestli je nová databáze Online.

Použití SqlPackage

Pokud chcete importovat SQL Server databáze pomocí nástroje příkazového řádku SqlPackage, podívejte se na parametry a vlastnosti importu. SQL Server Management Studio a SQL Server datové nástroje pro Visual Studio sqlpackage. Nejnovější SqlPackage si taky můžete stáhnout z webu Microsoft Download Center.

Pro škálování a výkon doporučujeme používat SqlPackage ve většině produkčních prostředí, a ne na portálu Azure Portal. Další informace o SQL Server s migrací pomocí souborů najdete v článku Migrace z SQL Server na BACPACBACPAC.

Model zřizování založený na DTU podporuje hodnoty 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 importuje databázi AdventureWorks2008R2 z místního úložiště do logického SQL serveru s názvem mynewserver20170403. Vytvoří novou databázi s názvem myMigratedDatabase s Premium služby a cílem služby P6. Změňte tyto hodnoty podle svého prostředí.

sqlpackage.exe /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 Azure SQL Database za podnikovou bránou firewall, musí mít brána firewall otevřený port 1433. Pokud se chcete SQL spravované instance, musíte mít připojení typu point-to-site nebo připojení expresní trasy.

Tento příklad ukazuje, jak importovat databázi pomocí SqlPackage s univerzálním ověřováním služby Active Directory.

sqlpackage.exe /a:Import /sf:testExport.bacpac /tdn:NewDacFX /tsn:apptestserver.database.windows.net /ua:True /tid:"apptest.onmicrosoft.com"

Použití PowerShellu

Poznámka:

Spravovaná SQL instance aktuálně nepodporuje migraci databáze do databáze instance ze souboru BACPAC pomocí Azure PowerShell. Pokud chcete importovat do SQL spravované instance, použijte SQL Server Management Studio nebo SQLPackage.

Poznámka:

Počítače zpracovávající žádosti o import a export odeslané prostřednictvím portálu nebo PowerShellu musí ukládat soubor bacpac a dočasné soubory vygenerované Data-Tier Application Framework (DacFX). Požadované místo na disku se výrazně liší mezi objekty DBs se stejnou velikostí a může trvat až 3krát větší než velikost databáze. Počítače s žádostí o import a export mají jenom 450 GB místa na místním disku. V důsledku toho se některé žádosti selžou s chybou "Na disku není dost místa". V tomto případě je alternativním řešením spuštění sqlpackage.exe na počítači s dostatečným místním prostorem na disku. Při importu nebo exportu databází větších než 150 GB se tomuto problému vyhnete pomocí SqlPackage.

Důležité:

Modul PowerShell Azure Resource Manager (RM) je stále podporovaný, ale veškerý budoucí vývoj je pro modul Az.Sql. Modul AzureRM bude dostávat opravy chyb až do prosince 2020. Argumenty příkazů v modulu Az a v modulech AzureRm jsou podstatně shodné. Další informace o kompatibilitě najdete v tématu Představení nového modulu Azure PowerShell Az.

K odeslání žádosti o import databáze do Azure použijte rutinu New-AzSqlDatabaseImport. V závislosti na velikosti databáze může import trvat nějakou dobu. Model zřizování založený na DTU podporuje hodnoty 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 "Standard" -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 hned po vrácení žádosti obvykle 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 příkaz Operace databáze – Zrušit rozhraní API nebo Powershell Stop-AzSqlDatabaseActivity, tady je příklad příkazu powershellu.

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

Omezení

  • Import do databáze v elastickém fondu není podporovaný. Data můžete importovat do jedné databáze a pak databázi přesunout do pružného fondu.
  • Služba exportu importu nefunguje, pokud je možnost Povolit přístup ke službám Azure nastavená na vypnuto. Problém ale můžete vyřešit ručním spuštěním sqlpackage.exe virtuálního počítače Azure nebo provedením exportu přímo v kódu pomocí rozhraní DACFx API.
  • Import nepodporuje určení redundance záložního úložiště při vytváření nové databáze a vytváří se s výchozí geograficky redundantní redundancí záložního úložiště. Pokud chcete alternativní řešení vyřešit, vytvořte nejdřív prázdnou databázi s požadovanou redundancí záložního úložiště pomocí webu Azure Portal nebo PowerShellu a potom naimportujte BACPAC do této prázdné databáze.

Poznámka:

Azure SQL Database Možnost konfigurovatelného zálohování Storage redundance je momentálně dostupná ve verzi Public Preview jenom v oblasti Jihovýchodní Asie Azure.

Import pomocí průvodců

Můžete taky použít tyto průvodce.

Další kroky

  • Informace o tom, jak se připojit k databázi a dotazovat se na databázi v Azure SQL Database, najdete v tématu Rychlý start: Azure SQL Database:Použití SQL Server Management Studio pro připojení k datům a dotazování na data .
  • Blog týmu SQL Server customer advisory teamu o migraci pomocí souborů BACPAC najdete v tématu Migrace z SQL Server na Azure SQL Database pomocí souborů BACPAC.
  • Informace o celém procesu migrace SQL Server databáze, včetně doporučení k výkonu, najdete v tématu SQL Server migrace databáze do Azure SQL Database.
  • Informace o tom, jak bezpečně spravovat a sdílet klíče úložiště a sdílené přístupové podpisy, najdete v Azure Storage Security Guide.