Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Applies to:database SQL di Azure
Istanza gestita di SQL di Azure
Quando è necessario esportare un database per l'archiviazione o lo spostamento in un'altra piattaforma, è possibile esportare lo schema di database e i dati in un file BACPAC. Un file BACPAC è un file ZIP con estensione BACPAC contenente i metadati e i dati del database. Un file BACPAC può essere archiviato in archiviazione BLOB di Azure o nell'archiviazione locale e successivamente importato in database SQL di Azure, Istanza gestita di SQL di Azure o un'istanza SQL Server.
Considerazioni
Perché un'esportazione sia coerente dal punto di vista della transazione, è necessario assicurarsi che non abbiano luogo attività di scrittura durante l'esportazione o che l'esportazione sia eseguita da una copia coerente dal punto di vista della transazione dal database.
Se si sta eseguendo l'esportazione nell'archiviazione BLOB, la dimensione massima di un file BACPAC è 200 GB. Per archiviare un file BACPAC di dimensioni maggiori, eseguire l'esportazione in una risorsa di archiviazione locale con SqlPackage.
Importare o esportare un database SQL di Azure utilizzando la funzionalità Private Link è in anteprima.
Il nome del file Archiviazione di Azure non può terminare con . e non può contenere caratteri speciali come uno spazio o <, >, *, %, &, :, \, /, ?. Il nome file non deve superare i 128 caratteri in lunghezza.
Se l'operazione di esportazione dura oltre 20 ore, potrebbe essere annullata. Per migliorare le prestazioni durante l'esportazione è possibile:
Aumentare temporaneamente le risorse di calcolo.
Interrompere tutte le attività di lettura e scrittura durante l'esportazione.
Utilizzare un indice cluster con valori non null in tutte le tabelle di grandi dimensioni. Senza indici cluster, l'esportazione potrebbe non riuscire se dovesse durare più di 6 - 12 ore. Questo perché i servizi di esportazione devono completare la scansione della tabella prima di provare a esportarla per intero. Un buon modo per determinare se le tabelle sono ottimizzate per l'esportazione consiste nell'eseguire e assicurarsi che non sia Null e che il relativo valore abbia una distribuzione valida. Per informazioni dettagliate, vedere DBCC SHOW_STATISTICS (Transact-SQL).
Per i database di dimensioni superiori, l'esportazione/importazione di file BACPAC potrebbe richiedere tempo e potrebbe avere esito negativo per diversi motivi.
Nota
I BACPAC non devono essere usati per le operazioni di backup e ripristino. Azure crea automaticamente i backup per ogni database utente. Per informazioni dettagliate, vedere panoramica continuità aziendale e Backup automatici in database SQL di Azure o Backup automatici in Istanza gestita di SQL di Azure.
Esportare dal portale di Azure
- È possibile usare il portale di Azure per esportare un file BACPAC di un database in un server logico database SQL di Azure.
- L'uso del portale di Azure non è attualmente supportato per esportare un file BACPAC di un database da Istanza gestita di SQL di Azure.
Nota
I computer che elaborano le richieste di importazione/esportazione inviate tramite il portale di Azure o PowerShell devono archiviare il file BACPAC e i file temporanei generati da Data-Tier Application Framework (DacFX). Lo spazio su disco necessario varia significativamente tra i database con le stesse dimensioni. Potrebbe essere necessario spazio su disco fino a tre volte la dimensione del database. I computer che eseguono le richieste di importazione ed esportazione hanno solo 450 GB di spazio su disco locale. Di conseguenza, alcune richieste potrebbero non riuscire e generare un errore specifico. È possibile ovviare a questo problema eseguendo SqlPackage in un computer con spazio su disco locale sufficiente. Usare l'utilità SQLPackage per importare/esportare database di dimensioni superiori a 150 GB per evitare questo problema.
Per esportare un database usando il portale Azure, aprire la pagina per il database e selezionare Export sulla barra degli strumenti.
Screenshot che evidenzia il pulsante Esporta.
Specificare il nome file BACPAC, selezionare un account di archiviazione e un contenitore Azure esistenti per l'esportazione e quindi specificare le credenziali appropriate per l'accesso al database di origine. È necessario un account di accesso amministratore per SQL Server anche se sei l'amministratore di Azure, poiché essere amministratore di Azure non equivale ad avere i permessi di amministratore in database SQL di Azure o Istanza gestita di SQL di Azure.
Screenshot della pagina Esporta database con nome utente e password specificati.
Seleziona OK.
Per monitorare lo stato di avanzamento dell'operazione di esportazione, aprire la pagina per il server logico contenente il database da esportare. In Gestione dati, selezionare Cronologia di importazione/esportazione.
Esportare con autenticazione mediante identità gestita (anteprima)
È possibile esportare un database in database SQL di Azure in un file BACPAC usando identità gestita l'autenticazione per eliminare la necessità di fornire password di amministratore SQL o chiavi di accesso alle risorse di archiviazione.
Per un'esercitazione dettagliata, vedere Usare l'identità gestita con importazione ed esportazione (anteprima).
Per esportare un file BACPAC usando l'autenticazione dell'identità gestita, è necessaria la configurazione seguente:
- Un 'identità gestita assegnata dall'utente (UAMI) assegnata al server logico per database SQL di Azure.
- Il server ha l'identità gestita configurata come amministratore Microsoft Entra.
- Un'identità gestita viene assegnata al ruolo Archage Blob Data Contributor nell'account di Archiviazione di Azure di destinazione. Questa identità gestita può essere uguale a quella assegnata al server o a una diversa.
- Il server logico, l'identità gestita e l'account di archiviazione si trovano nello stesso tenant di Microsoft Entra.
Nota
L'esportazione con autenticazione dell'identità gestita è attualmente in preview e disponibile solo per database SQL di Azure.
Utilità SQLPackage
È consigliabile usare l'utilità SQLPackage per la scalabilità e le prestazioni nella maggior parte degli ambienti di produzione. L'esecuzione di più comandi SqlPackage in parallelo per subset di tabelle può accelerare le operazioni di importazione/esportazione.
Per esportare un database SQL tramite l'utilità della riga di comando SQLPackage, vedere la sezione relativa ai Parametri e proprietà dell'esportazione. L'utilità SQLPackage è disponibile per Windows, macOS e Linux.
Questo esempio illustra come esportare un database usando SqlPackage con Active Directory'autenticazione universale:
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
L'estensione MSSQL per Visual Studio Code è un'estensione open source gratuita disponibile per Windows, macOS e Linux. L'estensione include l'esperienza Applicazione livello dati (anteprima) per le operazioni SqlPackage, incluse l'esportazione e l'importazione. Per altre informazioni sull'installazione e l'uso dell'estensione, vedere l'estensione MSSQL per Visual Studio Code.
SQL Server Management Studio (SSMS)
SQL Server Management Studio fornisce una procedura guidata per esportare un database in database SQL di Azure o un database Istanza gestita di SQL in un file BACPAC. Consultare Esportare un'applicazione di livello dati.
PowerShell
L'esportazione di un file BACPAC di un database da Istanza gestita di SQL di Azure con PowerShell non è supportata. Si veda Considerazioni.
Usare il cmdlet New-AzSqlDatabaseExport per inviare una richiesta di esportazione del database al servizio database SQL di Azure. A seconda delle dimensioni del database, l'operazione di esportazione potrebbe richiedere del tempo.
$exportRequest = New-AzSqlDatabaseExport -ResourceGroupName $ResourceGroupName -ServerName $ServerName `
-DatabaseName $DatabaseName -StorageKeytype $StorageKeytype -StorageKey $StorageKey -StorageUri $BacpacUri `
-AdministratorLogin $creds.UserName -AdministratorLoginPassword $creds.Password
Per controllare lo stato della richiesta di esportazione, usare il cmdlet Get-AzSqlDatabaseImportExportStatus. L'esecuzione di questo cmdlet subito dopo la richiesta restituisce in genere Status: InProgress. Al termine dell'esportazione, il messaggio restituito è Status: Succeeded.
$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
Annullamento della richiesta di esportazione
Utilizzare l'API di cancellazione delle operazioni del database o il comando PowerShell Stop-AzSqlDatabaseActivity per annullare una richiesta di esportazione. Si riporta un esempio di comando di PowerShell:
Stop-AzSqlDatabaseActivity -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -OperationId $Operation.OperationId
Nota
Per annullare l'operazione di esportazione, è necessario avere uno dei ruoli seguenti:
- Ruolo Collaboratore SQL DB o
- Un ruolo personalizzato di Azure RBAC con permessi
Microsoft.Sql/servers/databases/operations
Limiti
- L'esportazione di un file BACPAC in Azure archiviazione Premium usando i metodi descritti in questo articolo non è supportata.
- L'archiviazione protetta da firewall attualmente non è supportata.
- L'archiviazione non modificabile non è attualmente supportata.
- Istanza gestita di SQL di Azure attualmente non supporta l'esportazione di un database in un file BACPAC usando il portale di Azure o Azure PowerShell. Per esportare un'istanza gestita in un file BACPAC, usare SQL Server Management Studio (SSMS) o SQLPackage.
- Attualmente, il servizio Importazione/Esportazione non supporta l'autenticazione Microsoft Entra ID quando è necessaria l'autenticazione MFA.
- I servizi Import\Export supportano solo l'autenticazione SQL e Microsoft Entra ID. Import\Export non è compatibile con la registrazione dell'applicazione Microsoft Identity.
Contenuto correlato
- backup di conservazione a lungo termine - database SQL di Azure e Istanza gestita di SQL di Azure
- backup di database di sola copia
- Importare un file BACPAC in un database SQL Server
- Esportazione di un'applicazione livello dati
- Migrare offline da SQL Server ad database SQL di Azure usando DMS
- Migrate un database di SQL Server in database SQL di Azure
- Raccomandazioni di sicurezza per l'archiviazione BLOB