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

Si applica a: Database SQL di Azure

Questo articolo illustra come importare o esportare un database Azure SQL 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 l'operazione di importazione o esportazione.

Accedere al portale di Azure

Accedere al portale di Azure.

Creare la macchina virtuale di 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, usando la versione più recente con patch. Verrà distribuita una macchina virtuale di dimensioni A2 nel percorso del gruppo di risorse e restituirà il nome di dominio completo della macchina virtuale.

Immagine che mostra il pulsante

Per altre informazioni, vedere Distribuzione molto semplice di una macchina virtuale Windows.

Connettersi alla macchina virtuale

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

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

    Screenshot che mostra una pagina Panoramica della macchina virtuale con un pulsante Connetti.

  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.

    Modulo RDP

  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 Connect (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 e 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 la versione più recente di SqlPackage.

Per altre informazioni, vedere SqlPackage.exe.

Creare una regola del firewall per consentire l'accesso alla macchina virtuale al database

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

I passaggi seguenti creano 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. Selezionare database SQL dal menu a sinistra e quindi selezionare il database nella pagina Database SQL . Viene visualizzata la pagina di panoramica del database che mostra il nome completo del server (ad esempio servername.database.windows.net) e offre opzioni per ulteriori configurazioni.

  2. Copiare questo nome del server completo da usare durante la connessione al server e ai relativi database.

    Nome del server

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

    regola del firewall IP a livello di server

  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.

Esportare un database con SqlPackage

Per esportare un database Azure SQL usando l'utilità della riga di comando SqlPackage, vedere Esportare parametri e proprietà. L'utilità SqlPackage viene fornita con le versioni più recenti di SQL Server Management Studio e SQL Server Data Tools oppure è 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.

In questo esempio viene illustrato come esportare un database usando SqlPackage.exe con l'autenticazione universale di Active Directory. Sostituire con valori specifici dell'ambiente.

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

Importare un database con 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 SQL Server Management Studio e le SQL Server Data Tools più recenti. È anche 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 AdventureWorks2017 dall'archiviazione locale a un database Azure SQL. Crea un nuovo database denominato myMigratedDatabase con un livello di servizio Premium e un obiettivo di servizio P6. Modificare questi valori in base alle esigenze specifiche dell'ambiente.

sqlpackage.exe /a:import /tcs:"Data Source=<serverName>.database.windows.net;Initial Catalog=myMigratedDatabase>;User Id=<userId>;Password=<password>" /sf:AdventureWorks2017.bacpac /p:DatabaseEdition=Premium /p:DatabaseServiceObjective=P6

Importante

Per connettersi a tAzure database SQL da dietro un firewall aziendale, il firewall deve avere la porta 1433 aperta.

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

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

Considerazioni sulle prestazioni

Le velocità di esportazione variano a causa di molti fattori (ad esempio, forma dati) in modo che non sia possibile prevedere la velocità prevista. SqlPackage può richiedere molto tempo, in particolare per i database di grandi dimensioni.

Per ottenere le migliori prestazioni, è possibile provare le strategie seguenti:

  1. Assicurarsi che nessun altro carico di lavoro sia in esecuzione nel database. Creare una copia prima dell'esportazione può essere la soluzione migliore per assicurarsi che nessun altro carico di lavoro sia in esecuzione.
  2. Aumentare l'obiettivo del livello di servizio del database (SLO) per gestire meglio il carico di lavoro di esportazione (principalmente lettura I/O). Se il database è attualmente GP_Gen5_4, potrebbe essere utile un livello business critical con il carico di lavoro di lettura.
  3. Assicurarsi che ci siano indici cluster, in particolare per tabelle di grandi dimensioni.
  4. Le macchine virtuali devono trovarsi nella stessa area del database per evitare vincoli di rete.
  5. Le macchine virtuali devono disporre di SSD con dimensioni adeguate per la generazione di artefatti temp prima del caricamento nell'archiviazione BLOB.
  6. Le macchine virtuali devono avere una configurazione di base e memoria adeguata per il database specifico.

Archiviare l'oggetto importato o esportato. File BACPAC

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

Per ottenere le migliori prestazioni, usare File di Azure. SqlPackage funziona con il file system in modo che possa accedere direttamente File di Azure.

Per ridurre i costi, usare BLOB di Azure, che costano meno di una condivisione file premium di Azure. Tuttavia, sarà necessario copiare l'oggetto . File BACPAC tra il BLOB e il file system locale prima dell'operazione di importazione o esportazione. Di conseguenza, il processo richiederà più tempo.

Per caricare o scaricare . File BACPAC, vedere Trasferire dati con AzCopy e archiviazione BLOBe Trasferire i dati con AzCopy e archiviazione file.

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

Passaggi successivi