Importare o esportare un database SQL di Azure senza consentire ai servizi di Azure di accedere al server

Si applica a:database SQL di Azure

Il presente articolo illustra come importare o esportare un database SQL di Azure quando Consenti servizi di Azure è impostato su OFF nel server. Il flusso di lavoro usa una macchina virtuale di Azure per eseguire SqlPackage per eseguire un'operazione di importazione o esportazione.

Accedere al portale di Azure

Accedere al portale di Azure.

Creare macchine virtuali Azure

Creare una macchina virtuale di Azure selezionando il pulsante Distribuisci in Azure.

Questo modello consente di distribuire una semplice macchina virtuale Windows usando alcune opzioni diverse per la versione di Windows con la versione più recente con patch. Verrà distribuita una VM di dimensione A2 nella posizione del gruppo di risorse e verrà restituito il nome della VM.

Image showing a button labeled

Per altre informazioni, vedere Distribuzione semplice di una VM Windows.

Connettersi alla macchina virtuale

La procedura seguente illustra come connettersi alla macchina virtuale con una connessione al desktop remoto.

  1. Al termine della distribuzione, passare alla risorsa macchina virtuale.

    Screenshot shows a virtual machine Overview page with a Connect button.

  2. Selezionare Connetti.

    Verrà visualizzato un file con estensione RDP (Remote Desktop Protocol) con l'indirizzo IP pubblico e il numero di porta per la macchina virtuale.

    Screenshot of Azure portal, connect to VM, with download RDP highlighted.

  3. Selezionare Scarica file RDP.

    Nota

    È anche possibile usare SSH per connettersi alla macchina virtuale.

  4. Chiudere il modulo Connettere la macchina virtuale.

  5. Per connettersi alla VM, aprire il file RDP scaricato.

  6. Quando richiesto, selezionare Connetti. In un Mac è necessario un client RDP come questo client Desktop remoto disponibile nel Mac App Store.

  7. Immettere il nome utente e la password specificati al momento della creazione della macchina virtuale, quindi scegliere OK.

  8. Durante il processo di accesso potrebbe essere visualizzato un avviso relativo al certificato. Scegliere o Continua per procedere con la connessione.

Installare SqlPackage

Scaricare e installare l’ultima versione di SqlPackage.

Per altre informazioni, vedere SqlPackage.

Creare una regola del firewall per consentire l'accesso della VM al database

Aggiungere l’indirizzo IP pubblico della macchina virtuale al firewall del server.

La seguente procedura crea una regola del firewall IP a livello di server per l'indirizzo IP pubblico della macchina virtuale e abilita la connettività dalla macchina virtuale.

  1. Scegliere Database SQL dal menu a sinistra, quindi scegliere il database nella pagina Database SQL. Verrà visualizzata la pagina di panoramica del database, che mostra il nome server completo (come servername.database.windows.net) e offre opzioni per operazioni di configurazione aggiuntive.

  2. Copiare il nome completamente qualificato del server da usare per connettersi al server e ai relativi database.

    Screenshot of the Azure portal, database overview page, with the server name highlighted.

  3. Selezionare Imposta firewall server sulla barra degli strumenti. Verrà visualizzata la pagina Impostazioni del firewall per il server.

    Screenshot of the Azure portal, showing the firewall page, with server-level IP firewall rule highlighted.

  4. Scegliere Aggiungi IP client sulla barra degli strumenti per aggiungere l'indirizzo IP pubblico della macchina virtuale a una nuova regola del firewall IP a livello di server. Una regola del firewall IP a livello di server può aprire la porta 1433 per un singolo indirizzo IP o un intervallo di indirizzi IP.

  5. Selezionare Salva. Viene creata una regola del firewall IP a livello di server per l'indirizzo IP pubblico della macchina virtuale che apre la porta 1433 nel server.

  6. Chiudere la pagina Impostazioni del firewall.

Esportazione di un database usando SqlPackage

Per esportare un database SQL di Azure tramite l'utilità della riga di comando SqlPackage, vedere la sezione relativa ai Parametri e proprietà dell'esportazione. L'utilità SqlPackage viene offerta con le versioni più recenti di SQL Server Management Studio e SQL Server Data Tools. È tuttavia possibile scaricare la versione più recente di SqlPackage.

È consigliabile usare l'utilità SQLPackage per la scalabilità e le prestazioni nella maggior parte degli ambienti di produzione. Per informazioni 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.

Questo esempio illustra come esportare un database usando SqlPackage con l'autenticazione universale di Active Directory. Sostituire con i valori specifici per l'ambiente in uso.

SqlPackage /a:Export /tf:testExport.bacpac /scs:"Data Source=<servername>.database.windows.net;Initial Catalog=MyDB;" /ua:True /tid:"apptest.onmicrosoft.com"

Importazione di un database usando 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. SqlPackage include le versioni più recenti di SQL Server Management Studio e SQL Server Data Tools. È inoltre possibile scaricare la versione più recente di SqlPackage.

Per la scalabilità e le prestazioni, è consigliabile usare SqlPackage, anziché il portale di Azure, nella maggior parte degli ambienti di produzione. 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.

Il comando SqlPackage seguente importa il database AdventureWorks2022 dall'archiviazione locale a un server di database SQL di Azure. Crea un nuovo database chiamato myMigratedDatabase con un livello di servizio Premium e un obiettivo di servizio P6. Modificare questi valori in base alle esigenze specifiche dell'ambiente.

SqlPackage /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=myMigratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2022.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.

Questo esempio illustra come importare un database usando SqlPackage con l'autenticazione universale di Active Directory.

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

Considerazioni sulle prestazioni

La velocità di esportazione varia a causa di molti fattori (ad esempio, forma dei dati) in modo che sia impossibile prevedere la velocità prevista. SqlPackage potrebbe richiedere molto tempo, in particolare per i database di grandi dimensioni.

Per ottenere prestazioni ottimali, è possibile tentare le strategie seguenti:

  1. Assicurarsi che nessun altro carico di lavoro sia in esecuzione nel database. Creare una copia prima dell'esportazione potrebbe essere la soluzione più indicata per verificare che non vi siano altri carichi di lavoro in esecuzione.
  2. Aumentare l’obiettivo di livello del servizio (SLO) del database per gestire meglio il carico di lavoro di esportazione (principalmente operazioni di I/O di lettura). Se il database è attualmente GP_Gen5_4, un livello Business Critical potrebbe essere utile per la lettura del carico di lavoro.
  3. Assicurarsi che ci siano indici cluster, in particolare per tabelle di grandi dimensioni.
  4. Le macchine virtuali (VM) devono trovarsi nella stessa area del database per evitare vincoli di rete.
  5. Le VM devono avere unità SSD con dimensioni adeguate per la generazione di artefatti temporanei prima del caricamento nell'archiviazione BLOB.
  6. Le VM devono avere una configurazione di core e memoria adeguata per il database specifico.

Archiviare il file .BACPAC importato o esportato

Il file .BACPAC può essere archiviato in BLOB di Azure o File di Azure.

Per ottenere prestazioni ottimali usare File di Azure. SqlPackage opera con il file system in modo che possa accedere direttamente a File di Azure.

Per ridurre le spese, usare BLOB di Azure, che costa meno di una condivisione File di Azure Premium. Tuttavia, sarà necessario copiare il File .BACPAC tra il BLOB e il file system locale prima dell'operazione di importazione o esportazione. Di conseguenza, il processo richiede più tempo.

Per caricare o scaricare file BACPAC, vedere Trasferire dati con AzCopy e archiviazione BLOB e Trasferire dati con AzCopy e archiviazione dei file.

A seconda dell'ambiente, potrebbe essere necessario Configurare firewall di Azure Storage e reti virtuali.

Passaggi successivi