Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Applies to:Azure SQL Database
Azure SQL Managed Instance
Jeśli musisz wyeksportować bazę danych do archiwizacji lub przenieść na inną platformę, możesz wyeksportować schemat bazy danych i dane do pliku BACPAC . Plik BACPAC to plik ZIP z rozszerzeniem BACPAC zawierającym metadane i dane z bazy danych. Plik BACPAC może być przechowywany w usłudze Azure Blob Storage lub w lokalnym magazynie na miejscu, a później zaimportowany z powrotem do Azure SQL Database, Azure SQL Managed Instance lub instancji SQL Server.
Kwestie wymagające rozważenia
Aby eksport był spójny transakcyjnie, upewnij się, że żadne działanie zapisu nie występuje podczas eksportu lub że eksportujesz z transakcyjnie spójnej kopii bazy danych.
Jeśli eksportujesz do magazynu obiektów blob, maksymalny rozmiar pliku BACPAC wynosi 200 GB. Aby zarchiwizować większy plik BACPAC, wyeksportuj do magazynu lokalnego za pomocą pakietu SqlPackage.
Importuj lub eksportuj bazę danych Azure SQL przy użyciu prywatnego łącza jest w wersji zapoznawczej.
Nazwa pliku Azure Storage nie może kończyć się . i nie może zawierać znaków specjalnych, takich jak znak spacji lub <, >, *, %, &, :, \, /, ?. Nazwa pliku powinna być mniejsza niż 128 znaków.
Jeśli operacja eksportowania trwa ponad 20 godzin, może zostać anulowana. Aby zwiększyć wydajność podczas eksportowania, możesz wykonać następujące czynności:
Tymczasowo zwiększ rozmiar obliczeniowy.
Zatrzymaj wszystkie działania odczytu i zapisu podczas eksportu.
Użyj indeksu klastrowanego z wartościami innych niż null we wszystkich dużych tabelach. Bez indeksów klastrowanych eksport może zakończyć się niepowodzeniem, jeśli trwa dłużej niż 6–12 godzin. Jest to spowodowane tym, że usługa eksportu musi ukończyć skanowanie tabeli, aby spróbować wyeksportować całą tabelę. Dobrym sposobem określenia, czy tabele są zoptymalizowane pod kątem eksportu, jest uruchomienie
DBCC SHOW_STATISTICSi upewnienie się, żeRANGE_HI_KEYnie ma wartości null, a jej wartość ma dobrą dystrybucję. Aby uzyskać szczegółowe informacje, zobacz DBCC SHOW_STATISTICS (Transact-SQL).W przypadku większych baz danych eksportowanie/importowanie pliku BACPAC może z różnych powodów zakończyć się niepowodzeniem.
Uwaga
Pliki BACPACs nie są przeznaczone do wykonywania operacji tworzenia kopii zapasowych i przywracania. Azure automatycznie tworzy kopie zapasowe dla każdej bazy danych użytkownika. Aby uzyskać szczegółowe informacje, zobacz omówienie ciągłości działania oraz automatyczne kopie zapasowe w Azure SQL Database lub automatyczne kopie zapasowe w Azure SQL Managed Instance.
Eksportowanie z portalu Azure
- Za pomocą portalu Azure można wyeksportować plik BACPAC bazy danych na logicznym serwerze Azure SQL Database.
- Korzystanie z portalu Azure nie jest obecnie obsługiwane w celu wyeksportowania pliku BACPAC bazy danych z Azure SQL Managed Instance.
Uwaga
Maszyny przetwarzają żądania importu/eksportu przesłane za pośrednictwem portalu Azure lub programu PowerShell muszą przechowywać plik BACPAC i pliki tymczasowe generowane przez Data-Tier Application Framework (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. Użyj narzędzia SQLPackage , aby zaimportować/wyeksportować bazy danych większe niż 150 GB, aby uniknąć tego problemu.
Aby wyeksportować bazę danych przy użyciu portalu Azure otwórz stronę bazy danych i wybierz pozycję Export na pasku narzędzi.
Określ nazwę pliku BACPAC, wybierz istniejące konto magazynu Azure i kontener dla eksportu, a następnie podaj odpowiednie poświadczenia dostępu do bazy danych źródłowej. W tym miejscu potrzebny jest identyfikator logowania administratora serwera SQL, nawet jeśli jesteś administratorem Azure, ponieważ bycie administratorem Azure nie oznacza posiadania uprawnień administratora dla Azure SQL Database lub Azure SQL Managed Instance.
Kliknij przycisk OK.
Aby monitorować postęp operacji eksportowania, otwórz stronę serwera zawierającego eksportowaną bazę danych. W obszarze Zarządzanie danymi wybierz pozycję Importuj/Eksportuj historię.
Eksportowanie przy użyciu uwierzytelniania tożsamości zarządzanej (wersja zapoznawcza)
Bazę danych można wyeksportować w Azure SQL Database do pliku BACPAC przy użyciu zarządzanej tożsamości aby wyeliminować konieczność podania haseł administratora SQL lub kluczy dostępu do magazynu.
Aby uzyskać szczegółowy samouczek, zobacz Używanie tożsamości zarządzanej z importowaniem i eksportowaniem (wersja zapoznawcza).
Aby wyeksportować plik BACPAC przy użyciu uwierzytelniania tożsamości zarządzanej, wymagana jest następująca konfiguracja:
- Tożsamość zarządzana przypisana przez użytkownika (UAMI) przypisana do logicznego serwera Azure SQL Database.
- Serwer ma tożsamość zarządzaną skonfigurowaną jako Microsoft Entra administrator.
- Tożsamość zarządzana jest przypisywana do roli współautora danych obiektu blob Storage na koncie docelowym Azure Storage. Ta tożsamość zarządzana może być taka sama jak tożsamość przypisana do serwera lub może być inna.
- Serwer logiczny, tożsamość zarządzana i konto magazynu znajdują się w tej samej dzierżawie Microsoft Entra.
Uwaga
Eksportowanie przy użyciu uwierzytelniania tożsamości zarządzanej jest obecnie w wersji zapoznawczej i dostępne tylko dla Azure SQL Database.
Narzędzie SQLPackage
Zalecamy użycie narzędzia SQLPackage, które zapewnia skalowanie i wydajność w większości środowisk produkcyjnych. Można uruchomić wiele poleceń SqlPackage równolegle dla podzestawów tabel, aby przyspieszyć operacje importowania/eksportowania.
Aby wyeksportować bazę danych w usłudze SQL Database przy użyciu narzędzia wiersza polecenia SQLPackage , zobacz Eksportowanie parametrów i właściwości. Narzędzie
W tym przykładzie pokazano, jak wyeksportować bazę danych przy użyciu pakietu SqlPackage z Active Directory uwierzytelnianiem uniwersalnym:
SqlPackage /a:Export /tf:testExport.bacpac /scs:"Data Source=apptestserver.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"
Visual Studio Code
Rozszerzenie MSSQL dla Visual Studio Code to bezpłatne rozszerzenie typu open source dostępne dla Windows, macOS i Linux. Rozszerzenie obejmuje środowisko Data-tier Application (Preview) dla operacji SqlPackage, w tym eksport i import. Aby uzyskać więcej informacji na temat instalowania i używania rozszerzenia, zobacz rozszerzenie MSSQL dla Visual Studio Code.
SQL Server Management Studio (SSMS)
SQL Server Management Studio udostępnia kreatora do eksportowania bazy danych z Azure SQL Database lub bazy danych SQL Managed Instance do pliku BACPAC. Zobacz Eksport aplikacji warstwy danych.
PowerShell
Eksportowanie pliku BACPAC bazy danych z Azure SQL Managed Instance przy użyciu programu PowerShell nie jest obsługiwane. Zobacz Zagadnienia.
Użyj polecenia cmdlet New-AzSqlDatabaseExport aby przesłać żądanie eksportu bazy danych do usługi Azure SQL Database. W zależności od rozmiaru bazy danych operacja eksportowania może zająć trochę czasu.
$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
Aby sprawdzić stan żądania eksportu, użyj polecenia cmdlet Get-AzSqlDatabaseImportExportStatus . Uruchomienie polecenia cmdlet natychmiast po żądaniu zazwyczaj zwraca Status: InProgress. Gdy zobaczysz Stan: Zakończono pomyślnie, eksport został zakończony.
$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write("Exporting")
while ($exportStatus.Status -eq "InProgress")
{
Start-Sleep -s 10
$exportStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $exportRequest.OperationStatusLink
[Console]::Write(".")
}
[Console]::WriteLine("")
$exportStatus
Anulowanie żądania eksportu
Użyj interfejsu API Database Operations - Cancel lub polecenia programu PowerShell Stop-AzSqlDatabaseActivity, aby anulować żądanie eksportu. Oto przykładowe polecenie programu PowerShell:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Uwaga
Aby anulować operację eksportowania, musisz mieć jedną z następujących ról:
- Rola współautora bazy danych SQL
- Rola Azure custom RBAC z uprawnieniem
Microsoft.Sql/servers/databases/operations
Ograniczenia
- Eksportowanie pliku BACPAC przy użyciu metod omówionych w tym artykule do usługi magazynowania w warstwie Premium Azure nie jest obsługiwane.
- Przechowywanie za zaporą ogniową nie jest obecnie wspierane.
- Przechowywanie niezmienne nie jest obecnie obsługiwane.
- Azure SQL Managed Instance obecnie nie obsługuje eksportowania bazy danych do pliku BACPAC przy użyciu portalu Azure lub Azure PowerShell. Aby wyeksportować wystąpienie zarządzane do pliku BACPAC, użyj SQL Server Management Studio (SSMS) lub SQLPackage.
- Obecnie usługa Import/Export nie obsługuje Microsoft Entra ID, gdy jest wymagane uwierzytelnienie wieloskładnikowe.
- Usługi Import\Export obsługują tylko uwierzytelnianie SQL i Microsoft Entra ID. Import\Eksport nie jest zgodny z rejestracją aplikacji Microsoft Identity.
Powiązana zawartość
- Długoterminowe kopie zapasowe przechowywania — Azure SQL Database i Azure SQL Managed Instance
- kopie zapasowe bazy danych tylko do kopiowania
- Importuj plik BACPAC do bazy danych SQL Server
- Eksportowanie aplikacji warstwy danych
- Offline migracja z SQL Server do Azure SQL Database przy użyciu DMS
- Migrate a SQL Server database to Azure SQL Database
- Zalecenia dotyczące zabezpieczeń usługi Blob Storage