Szybki start: importowanie pliku bacpac do bazy danych w usłudze Azure SQL Database lub azure SQL Managed Instance

Dotyczy: Azure SQL DatabaseAzure SQL Managed Instance

Bazę danych programu SQL Server można zaimportować do usługi Azure SQL Database lub wystąpienia zarządzanego SQL przy użyciu pliku bacpac . Dane można zaimportować z pliku bacpac przechowywanego w usłudze Azure Blob Storage (tylko magazyn w warstwie Standardowa) lub z magazynu lokalnego w lokalizacji lokalnej. Aby maksymalnie zwiększyć szybkość importowania przez zapewnienie większej ilości szybszych zasobów, przeprowadź skalowanie bazy danych do wyższej warstwy usługi i rozmiaru obliczeniowego na czas trwania procesu importowania. Po pomyślnym zakończeniu importowania możesz przeprowadzić skalowanie w dół.

Uwaga

Importowanie i eksportowanie przy użyciu usługi Private Link jest dostępne w wersji zapoznawczej.

Korzystanie z witryny Azure Portal

Obejrzyj to wideo, aby zobaczyć, jak zaimportować plik bacpac w witrynie Azure Portal lub kontynuować czytanie:

Witryna Azure Portalobsługuje tylko tworzenie pojedynczej bazy danych w usłudze Azure SQL Database i tylko z pliku bacpac przechowywanego w usłudze Azure Blob Storage.

Aby przeprowadzić migrację bazy danych do usługi Azure SQL Managed Instance z pliku bacpac, użyj programu SQL Server Management Studio lub sqlPackage, korzystając z witryny Azure Portal lub programu Azure PowerShell, nie jest obecnie obsługiwane.

Uwaga

Maszyny przetwarzają żądania importu/eksportu przesłane za pośrednictwem witryny Azure Portal lub programu PowerShell, muszą przechowywać plik bacpac, a także pliki tymczasowe generowane przez strukturę aplikacji warstwy danych (DacFX). Wymagane miejsce na dysku różni się znacznie między bazami danych o tym samym rozmiarze i może wymagać miejsca na dysku do trzech razy więcej niż rozmiar bazy danych. Maszyny z uruchomionym żądaniem importu/eksportu mają tylko 450 GB miejsca na dysku lokalnym. W związku z tym niektóre żądania mogą zakończyć się niepowodzeniem z powodu błędu There is not enough space on the disk. W takim przypadku obejściem jest uruchomienie pakietu SqlPackage na maszynie z wystarczającą ilością miejsca na dysku lokalnym. Zalecamy użycie pakietu SqlPackage do importowania/eksportowania baz danych większych niż 150 GB, aby uniknąć tego problemu.

  1. Aby zaimportować plik bacpac do nowej pojedynczej bazy danych przy użyciu witryny Azure Portal, otwórz odpowiednią stronę serwera, a następnie na pasku narzędzi wybierz pozycję Importuj bazę danych.

    Screenshot of the Azure portal, logical server overview page, with database import selected.

  2. Wybierz pozycję Wybierz kopię zapasową. Wybierz konto magazynu hostujące bazę danych, a następnie wybierz plik bacpac, z którego chcesz zaimportować.

  3. Określ nowy rozmiar bazy danych (zazwyczaj taki sam jak źródło) i podaj docelowe poświadczenia programu SQL Server. Aby uzyskać listę możliwych wartości dla nowej bazy danych w usłudze Azure SQL Database, zobacz Tworzenie bazy danych.

    Screenshot of the Azure portal, Database import page.

  4. Wybierz przycisk OK.

  5. Aby monitorować postęp importowania, otwórz stronę serwera bazy danych, a następnie w obszarze Ustawienia wybierz pozycję Importuj/Eksportuj historię. Po pomyślnym zakończeniu importowanie ma stan Ukończono .

    Screenshot of the Azure portal, server overview page, showing the database import status.

  6. Aby sprawdzić, czy baza danych jest aktywna na serwerze, wybierz pozycję Bazy danych SQL i sprawdź, czy nowa baza danych jest w trybie online.

Korzystanie z pakietu SqlPackage

Aby zaimportować bazę danych programu SQL Server przy użyciu narzędzia wiersza polecenia SqlPackage , zobacz importowanie parametrów i właściwości. Możesz pobrać najnowszą wersję pakietu SqlPackage dla systemów Windows, macOS lub Linux.

W przypadku skalowania i wydajności zalecamy używanie pakietu SqlPackage w większości środowisk produkcyjnych, a nie przy użyciu witryny Azure Portal. Aby uzyskać blog zespołu doradczego ds. klienta programu SQL Server na temat migrowania przy użyciu BACPAC plików, zobacz migrowanie z programu SQL Server do usługi Azure SQL Database przy użyciu plików BACPAC.

Model aprowizacji oparty na jednostkach DTU obsługuje wybieranie maksymalnych wartości rozmiaru bazy danych dla każdej warstwy. Podczas importowania bazy danych użyj jednej z tych obsługiwanych wartości.

Następujące polecenie SqlPackage importuje AdventureWorks2008R2 bazę danych z magazynu lokalnego do logicznego serwera SQL o nazwie mynewserver20170403. Tworzy nową bazę danych o nazwie myMigratedDatabase z warstwą usługi Premium i celem usługi P6 . Zmień te wartości zgodnie z potrzebami środowiska.

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

Ważne

Aby nawiązać połączenie z usługą Azure SQL Database zza zapory firmowej, zapora musi mieć otwarty port 1433. Aby nawiązać połączenie z usługą SQL Managed Instance, musisz mieć połączenie typu punkt-lokacja lub połączenie usługi Express Route.

Alternatywą dla nazwy użytkownika i hasła jest użycie identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory). Obecnie usługa Import/Export nie obsługuje uwierzytelniania identyfikatora Entra firmy Microsoft, gdy jest wymagana uwierzytelnianie wieloskładnikowe. Zastąp parametry nazwy użytkownika i hasła dla /ua:true i /tid:"yourdomain.onmicrosoft.com". W tym przykładzie pokazano, jak zaimportować bazę danych przy użyciu pakietu SqlPackage z uwierzytelnianiem firmy 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 to bezpłatne narzędzie typu open source i jest dostępne dla systemów Windows, macOS i Linux. Rozszerzenie "SQL Server dacpac" udostępnia interfejs kreatora dla operacji SqlPackage, w tym eksportowanie i importowanie. Aby uzyskać więcej informacji na temat instalowania i używania rozszerzenia, zobacz dokumentację rozszerzenia dacpac programu SQL Server.

Użyj PowerShell

Uwaga

Usługa Azure SQL Managed Instance nie obsługuje obecnie migrowania bazy danych do bazy danych wystąpienia z pliku bacpac przy użyciu programu Azure PowerShell. Aby zaimportować je do wystąpienia zarządzanego SQL, użyj programu SQL Server Management Studio lub SQLPackage.

Uwaga

Maszyny przetwarzają żądania importu/eksportu przesłane za pośrednictwem portalu lub programu PowerShell muszą przechowywać plik bacpac, a także pliki tymczasowe generowane przez platformę Application Framework warstwy danych (DacFX). Wymagane miejsce na dysku różni się znacznie między bazami danych o tym samym rozmiarze i może potrwać do trzech razy więcej niż rozmiar bazy danych. Maszyny z uruchomionym żądaniem importu/eksportu mają tylko 450 GB miejsca na dysku lokalnym. W związku z tym niektóre żądania mogą zakończyć się niepowodzeniem z powodu błędu "Za mało miejsca na dysku". W takim przypadku obejściem jest uruchomienie pakietu SqlPackage na maszynie z wystarczającą ilością miejsca na dysku lokalnym. Podczas importowania/eksportowania baz danych większych niż 150 GB użyj pakietu SqlPackage, aby uniknąć tego problemu.

Ważne

Moduł Azure Resource Manager (RM) programu PowerShell jest nadal obsługiwany, ale wszystkie przyszłe programowanie dotyczy modułu Az.Sql. Moduł AzureRM będzie nadal otrzymywać poprawki błędów do co najmniej grudnia 2020 r. Argumenty poleceń w module Az i modułach AzureRm są zasadniczo identyczne. Aby uzyskać więcej informacji na temat ich zgodności, zobacz Wprowadzenie do nowego modułu Az programu Azure PowerShell.

Użyj polecenia cmdlet New-AzSqlDatabaseImport, aby przesłać żądanie importowej bazy danych na platformę Azure. W zależności od rozmiaru bazy danych importowanie może zająć trochę czasu. Model aprowizacji oparty na jednostkach DTU obsługuje wybieranie maksymalnych wartości rozmiaru bazy danych dla każdej warstwy. Podczas importowania bazy danych użyj jednej z tych obsługiwanych wartości.

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

Aby sprawdzić postęp importowania, możesz użyć polecenia cmdlet Get-AzSqlDatabaseImportExportStatus . Uruchomienie polecenia cmdlet natychmiast po żądaniu zwykle zwraca wartość Status: InProgress. Importowanie zostanie ukończone po wyświetleniu komunikatu 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

Napiwek

Aby zapoznać się z innym przykładem skryptu, zobacz Importowanie bazy danych z pliku BACPAC.

Anulowanie żądania importu

Użyj polecenia Operacje bazy danych — Anuluj interfejs API lub Stop-AzSqlDatabaseActivity programu PowerShell, jak w poniższym przykładzie:

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

Uprawnienia wymagane do anulowania importu

Aby anulować operację importowania, musisz być członkiem jednej z następujących ról:

  • Rola Współautor bazy danych SQL LUB
  • Niestandardowa rola kontroli dostępu opartej na rolach platformy Azure z uprawnieniami Microsoft.Sql/servers/databases/operations

Poziom zgodności nowej bazy danych

  • Poziom zgodności zaimportowanych baz danych jest oparty na poziomie zgodności źródłowej bazy danych.
  • Po zaimportowaniu bazy danych można wybrać obsługę bazy danych na bieżącym poziomie zgodności lub na wyższym poziomie. Aby uzyskać więcej informacji o implikacjach i opcjach związanych z używaniem bazy danych na określonym poziomie zgodności, zobacz ALTER DATABASE Compatibility Level (Instrukcja ALTER DATABASE — poziom zgodności). Zobacz również ALTER DATABASE SCOPED CONFIGURATION (ALTER DATABASE SCOPED CONFIGURATION ), aby uzyskać informacje o innych ustawieniach na poziomie bazy danych związanych z poziomami zgodności.

Ograniczenia

  • Importowanie do bazy danych w elastycznej puli nie jest obsługiwane. Dane można importować do pojedynczej bazy danych, a następnie przenieść ją do elastycznej puli.
  • Usługa importowania i eksportowania nie działa, gdy ustawienie Zezwalaj na dostęp do usług platformy Azure ma wartość WYŁ. Można jednak obejść ten problem, ręcznie uruchamiając pakiet SqlPackage z maszyny wirtualnej platformy Azure lub wykonując eksport bezpośrednio w kodzie przy użyciu interfejsu API DacFx.
  • Importowanie nie obsługuje określania nadmiarowości magazynu kopii zapasowych podczas tworzenia nowej bazy danych i tworzy z domyślną nadmiarowością magazynu kopii zapasowych nadmiarową geograficznie. Aby obejść ten proces, najpierw utwórz pustą bazę danych z wymaganą nadmiarowością magazynu kopii zapasowych przy użyciu witryny Azure Portal lub programu PowerShell, a następnie zaimportuj plik bacpac do tej pustej bazy danych.
  • Usługa Storage za zaporą nie jest obecnie obsługiwana.
  • Podczas procesu importowania nie należy tworzyć bazy danych o tej samej nazwie. Proces importowania tworzy nową bazę danych o określonej nazwie.
  • Obecnie usługa Import/Export nie obsługuje uwierzytelniania identyfikatora Entra firmy Microsoft, gdy jest wymagana uwierzytelnianie wieloskładnikowe.
  • Usługi Import\Export obsługują tylko uwierzytelnianie SQL i identyfikator Entra firmy Microsoft. Import\Export nie jest zgodny z rejestracją aplikacji tożsamości firmy Microsoft.

Dodatkowe narzędzia

Możesz również użyć tych kreatorów.