Avvio rapido: Importare un file BACPAC in un database in Database SQL di Azure o in Istanza gestita di SQL di AzureQuickstart: Import a BACPAC file to a database in Azure SQL Database or Azure SQL Managed Instance

SI APPLICA A: Database SQL di Azure Istanza gestita di SQL di Azure

È possibile importare un database SQL Server in Database SQL di Azure o in Istanza gestita di SQL usando un file BACPAC.You can import a SQL Server database into Azure SQL Database or SQL Managed Instance using a BACPAC file. È possibile importare i dati da un file BACPAC archiviato in un archiviazione BLOB di Azure (solo archiviazione Standard) o da una risorsa di archiviazione locale in una posizione locale.You can import the data from a BACPAC file stored in Azure Blob storage (standard storage only) or from local storage in an on-premises location. Per ottimizzare la velocità di importazione fornendo un maggior numero di risorse più veloci, ridimensionare il database a un livello di servizio e dimensioni di calcolo superiori durante il processo di importazione.To maximize import speed by providing more and faster resources, scale your database to a higher service tier and compute size during the import process. Al termine dell'importazione, sarà quindi possibile ridurre le caratteristiche.You can then scale down after the import is successful.

Nota

Il livello di compatibilità del database importato si basa sul livello di compatibilità del database di origine.The imported database's compatibility level is based on the source database's compatibility level.

Importante

Dopo aver importato il database, è possibile scegliere di usare il database al livello di compatibilità corrente (livello 100 per il database AdventureWorks2008R2) o a un livello superiore.After importing your database, you can choose to operate the database at its current compatibility level (level 100 for the AdventureWorks2008R2 database) or at a higher level. Per altre informazioni sulle implicazioni e le opzioni per il funzionamento di un database a un livello di compatibilità specifico, vedere ALTER DATABASE Compatibility Level (Livello di compatibilità ALTER DATABASE).For more information on the implications and options for operating a database at a specific compatibility level, see ALTER DATABASE Compatibility Level. Vedere anche ALTER DATABASE SCOPED CONFIGURATION per informazioni sulle impostazioni a livello di database aggiuntive relative ai livelli di compatibilità.See also ALTER DATABASE SCOPED CONFIGURATION for information about additional database-level settings related to compatibility levels.

Uso del portale di AzureUsing Azure portal

Guardare questo video per informazioni su come eseguire l'importazione da un file BACPAC nel portale di Azure oppure continuare a leggere:Watch this video to see how to import from a BACPAC file in the Azure portal or continue reading below:

Il portale di Azure supporta solo la creazione di un database singolo nel database SQL di Azure e solo da un file BACPAC salvato nell'archivio BLOB di Azure.The Azure portal only supports creating a single database in Azure SQL Database and only from a BACPAC file stored in Azure Blob storage.

Per eseguire la migrazione di un database in un'istanza gestita di SQL di Azure da un file BACPAC, usare SQL Server Management Studio o SqlPackage. L'uso del portale di Azure o di Azure PowerShell non è attualmente supportato.To migrate a database into an Azure SQL Managed Instance from a BACPAC file, use SQL Server Management Studio or SQLPackage, using the Azure portal or Azure PowerShell is not currently supported.

Nota

Nei computer che elaborano le richieste di importazione ed esportazione inviate tramite il portale di Azure o PowerShell deve essere archiviato il file BACPAC, oltre ai file temporanei generati da Data-Tier Application Framework (DacFX).Machines processing import/export requests submitted through the Azure portal or PowerShell need to store the BACPAC file as well as temporary files generated by the 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 3 volte la dimensione del database.The disk space required varies significantly among databases with the same size and can require disk space up to 3 times the size of the database. I computer che eseguono le richieste di importazione ed esportazione hanno solo 450 GB di spazio su disco locale.Machines running the import/export request only have 450GB local disk space. Di conseguenza, alcune richieste potrebbero non riuscire restituendo l'errore There is not enough space on the disk.As a result, some requests may fail with the error There is not enough space on the disk. È possibile ovviare a questo problema eseguendo sqlpackage.exe in un computer con spazio su disco locale sufficiente.In this case, the workaround is to run sqlpackage.exe on a machine with enough local disk space. Per evitare il problema, è consigliabile usare SqlPackage per importare/esportare database di dimensioni superiori a 150 GB.We encourage using SqlPackage to import/export databases larger than 150GB to avoid this issue.

  1. Per eseguire l'importazione da un file BACPAC in un nuovo database singolo usando il portale di Azure, aprire la pagina del server appropriato e quindi selezionare Importa database sulla barra degli strumenti.To import from a BACPAC file into a new single database using the Azure portal, open the appropriate server page and then, on the toolbar, select Import database.

    Importazione database 1

  2. Selezionare l'account di archiviazione e il contenitore per il file BACPAC e quindi selezionare il file BACPAC da cui eseguire l'importazione.Select the storage account and the container for the BACPAC file and then select the BACPAC file from which to import.

  3. Specificare la nuova dimensione del database (generalmente uguale all'origine) e specificare le credenziali dell'istanza SQL Server di destinazione.Specify the new database size (usually the same as origin) and provide the destination SQL Server credentials. Per un elenco di valori possibili per un nuovo database in Database SQL di Azure, vedere CREATE DATABASE.For a list of possible values for a new database in Azure SQL Database, see Create Database.

    Importazione database 2

  4. Fare clic su OK.Click OK.

  5. Per monitorare lo stato di avanzamento dell'importazione, aprire la pagina del server del database e in Impostazioni selezionare Cronologia importazioni/esportazioni.To monitor an import's progress, open the database's server page, and, under Settings, select Import/Export history. Se l'operazione ha esito positivo, l'importazione visualizzerà lo stato Completato.When successful, the import has a Completed status.

    Stato di importazione del database

  6. Per verificare che il database sia attivo sul server, selezionare Database SQL e verificare che il nuovo database sia Online.To verify the database is live on the server, select SQL databases and verify the new database is Online.

Uso di SqlPackageUsing SqlPackage

Per importare un database SQL Server tramite l'utilità della riga di comando SqlPackage, vedere la sezione relativa a parametri e proprietà dell'importazione.To import a SQL Server database using the SqlPackage command-line utility, see import parameters and properties. SqlPackage è incluso in SQL Server Management Studio e SQL Server Data Tools per Visual Studio.SQL Server Management Studio and SQL Server Data Tools for Visual Studio include SqlPackage. È possibile scaricare la versione più recente di SqlPackage anche dall'Area download Microsoft.You can also download the latest SqlPackage from the Microsoft download center.

Per la scalabilità e le prestazioni, è consigliabile usare SqlPackage, anziché il portale di Azure, nella maggior parte degli ambienti di produzione.For scale and performance, we recommend using SqlPackage in most production environments rather than using the Azure portal. Per informazioni da parte del team di consulenza clienti di SQL Server sull'uso di file BACPAC per la migrazione, vedere l'articolo Migrating from SQL Server to Azure SQL Database using BACPAC Files (Migrazione da SQL Server al database SQL di Azure con file BACPAC) del blog del Customer Advisory Team di SQL Server.For a SQL Server Customer Advisory Team blog about migrating using BACPAC files, see migrating from SQL Server to Azure SQL Database using BACPAC Files.

Il modello di provisioning basato su unità di elaborazione di database supporta valori per le dimensioni massime del database specifici per ogni livello.The DTU based provisioning model supports select database max size values for each tier. Quando si importa un database usare uno di questi valori supportati.When importing a database use one of these supported values.

Il comando di SqlPackage seguente importa il database AdventureWorks2008R2 dall'archivio locale in un server SQL logico denominato mynewserver20170403.The following SqlPackage command imports the AdventureWorks2008R2 database from local storage to a logical SQL server named mynewserver20170403. Crea un nuovo database denominato myMigratedDatabase con un livello di servizio Premium e un obiettivo di servizio P6.It creates a new database called myMigratedDatabase with a Premium service tier and a P6 Service Objective. Modificare questi valori in base alle esigenze specifiche dell'ambiente.Change these values as appropriate for your environment.

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

Importante

Per connettersi a un database SQL di Azure protetto da un firewall aziendale, è necessario che nel firewall sia aperta la porta 1433.To connect to Azure SQL Database from behind a corporate firewall, the firewall must have port 1433 open. Per connettersi a un'istanza gestita di SQL, è necessario disporre di una connessione da punto a sito o una connessione ExpressRoute.To connect to SQL Managed Instance, you must have a point-to-site connection or an express route connection.

Questo esempio illustra come importare un database usando SqlPackage con l'autenticazione universale di Active Directory.This example shows how to import a database using SqlPackage with Active Directory Universal Authentication.

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

Utilizzo di PowerShellUsing PowerShell

Nota

Un'istanza gestita di SQL non supporta attualmente la migrazione di un database in un database dell'istanza da un file BACPAC tramite Azure PowerShell.A SQL Managed Instance does not currently support migrating a database into an instance database from a BACPAC file using Azure PowerShell. Per eseguire l'importazione in un'istanza gestita di SQL, usare SQL Server Management Studio o SQLPackage.To import into a SQL Managed Instance, use SQL Server Management Studio or SQLPackage.

Nota

Nei computer che elaborano le richieste di importazione ed esportazione inviate tramite il portale o PowerShell deve essere archiviato il file BACPAC, oltre ai file temporanei generati da Data-Tier Application Framework (DacFX).The machines processing import/export requests submitted through portal or Powershell need to store the bacpac file as well as temporary files generated by Data-Tier Application Framework (DacFX). Lo spazio su disco necessario varia notevolmente tra i database con le stesse dimensioni. Potrebbe essere necessario spazio su disco fino a 3 volte la dimensione del database.The disk space required varies significantly among DBs with same size and can take up to 3 times of the database size. I computer che eseguono le richieste di importazione ed esportazione hanno solo 450 GB di spazio su disco locale.Machines running the import/export request only have 450GB local disk space. Di conseguenza, alcune richieste potrebbero non riuscire con l'errore "Non c'è spazio sufficiente sul disco".As result, some requests may fail with "There is not enough space on the disk" error. È possibile ovviare a questo problema eseguendo sqlpackage.exe in un computer con spazio su disco locale sufficiente.In this case, the workaround is to run sqlpackage.exe on a machine with enough local disk space. Se occorre importare o esportare database di dimensioni superiori a 150 GB, usare SqlPackage per evitare questo problema.When importing/exporting databases larger than 150GB, use SqlPackage to avoid this issue.

Importante

Il modulo Azure Resource Manager di PowerShell è ancora supportato, ma tutte le attività di sviluppo future sono incentrate sul modulo Az.Sql.The PowerShell Azure Resource Manager (RM) module is still supported, but all future development is for the Az.Sql module. Il modulo AzureRM continuerà a ricevere correzioni di bug almeno fino a dicembre 2020.The AzureRM module will continue to receive bug fixes until at least December 2020. Gli argomenti per i comandi nei moduli Az e AzureRm sono sostanzialmente identici.The arguments for the commands in the Az module and in the AzureRm modules are substantially identical. Per altre informazioni sulla compatibilità, vedere Introduzione del nuovo modulo Az di Azure PowerShell.For more about their compatibility, see Introducing the new Azure PowerShell Az module.

Usare il cmdlet New-AzSqlDatabaseImport per inviare una richiesta di importazione database ad Azure.Use the New-AzSqlDatabaseImport cmdlet to submit an import database request to Azure. A seconda delle dimensioni del database, l'importazione può richiedere del tempo.Depending on database size, the import may take some time to complete. Il modello di provisioning basato su unità di elaborazione di database supporta valori per le dimensioni massime del database specifici per ogni livello.The DTU based provisioning model supports select database max size values for each tier. Quando si importa un database usare uno di questi valori supportati.When importing a database use one of these supported values.

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

È possibile usare il cmdlet Get-AzSqlDatabaseImportExportStatus per controllare lo stato dell'importazione.You can use the Get-AzSqlDatabaseImportExportStatus cmdlet to check the import's progress. L'esecuzione di questo cmdlet subito dopo la richiesta restituisce in genere Status: InProgress.Running the cmdlet immediately after the request usually returns Status: InProgress. L'importazione è completa quando viene visualizzato il messaggio Status: Succeeded.The import is complete when you see 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

Suggerimento

Per un altro esempio di script, vedere Importare un database da un file BACPAC.For another script example, see Import a database from a BACPAC file.

Annullare la richiesta di importazioneCancel the import request

Usare l'API Database Operations - Cancel o il comando Stop-AzSqlDatabaseActivitydi PowerShell, un esempio di comando di PowerShell.Use the Database Operations - Cancel API or the Powershell Stop-AzSqlDatabaseActivity command, here an example of powershell command.

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

LimitazioniLimitations

  • L'importazione in un database nel pool elastico non è supportata.Importing to a database in elastic pool isn't supported. È possibile importare i dati in un database singolo e quindi spostare quest'ultimo in un pool elastico.You can import data into a single database and then move the database to an elastic pool.
  • Il servizio di importazione/esportazione non funziona quando l'opzione Consenti l'accesso a Servizi di Azure è disattivata.Import Export Service does not work when Allow access to Azure services is set to OFF. È però possibile aggirare il problema eseguendo manualmente sqlpackage.exe da una macchina virtuale di Azure o eseguendo l'esportazione direttamente nel codice usando l'API DACFx.However you can work around the problem by manually running sqlpackage.exe from an Azure VM or performing the export directly in your code by using the DACFx API.
  • L'importazione non supporta la specifica di una ridondanza di archiviazione di backup durante la creazione di un nuovo database, quindi viene usata la ridondanza geografica predefinita.Import does not support specifying a backup storage redundancy while creating a new database and creates with the default geo-redundant backup storage redundancy. Per aggirare il problema, creare prima di tutto un database vuoto con la ridondanza dell'archiviazione di backup desiderata usando il portale di Azure o PowerShell, quindi importare il file BACPAC in questo database vuoto.To workaround, first create an empty database with desired backup storage redundancy using Azure portal or PowerShell and then import the BACPAC into this empty database.

Nota

La ridondanza dell'archivio di backup configurabile del database SQL di Azure è attualmente disponibile in anteprima pubblica solo nell'area di Azure Asia sud-orientale.Azure SQL Database Configurable Backup Storage Redundancy is currently available in public preview in Southeast Asia Azure region only.

Importazione con procedure guidateImport using wizards

È anche possibile usare queste procedure guidate.You can also use these wizards.

Passaggi successiviNext steps