Szybki start: importowanie pliku bacpac do bazy danych w usłudze Azure SQL Database lub azure SQL Managed Instance
Dotyczy: Azure SQL Database Azure 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 Portal obsługuje tylko tworzenie pojedynczej bazy danych w usłudze Azure SQL Database i tylko z pliku bacpac przechowywanego w usłudze Azure Blob Storage.
Ostrzeżenie
Pliki Bacpac wygenerowane na podstawie pakietu SqlPackage mogą nie zostać zaimportowane z witryny Azure Portal lub programu Azure PowerShell z komunikatem o błędzie z File contains corrupted data.
informacją o błędzie . Jest to wynik znanego problemu, a obejście polega na użyciu SqlPackage
narzędzia wiersza polecenia w celu zaimportowania pliku bacpac. Aby uzyskać więcej informacji, zobacz SqlPackage i dziennik problemów.
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.
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.
Wybierz pozycję Wybierz kopię zapasową. Wybierz konto magazynu hostujące bazę danych, a następnie wybierz plik bacpac, z którego chcesz zaimportować.
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.
Wybierz przycisk OK.
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 .
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.
- Kreator importowania aplikacji warstwy danych w programie SQL Server Management Studio.
- Kreator importu i eksportu programu SQL Server.
Powiązana zawartość
- Aby dowiedzieć się, jak nawiązać połączenie z usługą Azure SQL Database i wysyłać zapytania do usługi Azure SQL Database z poziomu programu Azure Data Studio, zobacz Szybki start: nawiązywanie połączeń z usługą Azure SQL Database i wykonywanie na nich zapytań.
- Aby dowiedzieć się, jak nawiązać połączenie z bazą danych i wysyłać do nich zapytania w usłudze Azure SQL Database, zobacz Szybki start: Azure SQL Database: Używanie programu SQL Server Management Studio do nawiązywania połączenia z danymi i wykonywania zapytań o nie.
- Aby uzyskać blog zespołu doradczego ds. klienta programu SQL Server na temat migrowania przy użyciu plików bacpac, zobacz Migrowanie z programu SQL Server do usługi Azure SQL Database przy użyciu plików BACPAC.
- Omówienie całego procesu migracji bazy danych programu SQL Server, w tym zaleceń dotyczących wydajności, można znaleźć w temacie SQL Server database migration to Azure SQL Database (Migracja bazy danych programu SQL Server do usługi Azure SQL Database).
- Aby dowiedzieć się, jak bezpiecznie zarządzać kluczami magazynu i udostępniać je oraz sygnatury dostępu współdzielonego, zobacz Przewodnik po zabezpieczeniach usługi Azure Storage.