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.
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.
Al termine della distribuzione, passare alla risorsa macchina virtuale.
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.
Selezionare Scarica file RDP.
Nota
È anche possibile usare SSH per connettersi alla macchina virtuale.
Chiudere il modulo Connettere la macchina virtuale.
Per connettersi alla VM, aprire il file RDP scaricato.
Quando richiesto, selezionare Connetti. In un Mac è necessario un client RDP come questo client Desktop remoto disponibile nel Mac App Store.
Immettere il nome utente e la password specificati al momento della creazione della macchina virtuale, quindi scegliere OK.
Durante il processo di accesso potrebbe essere visualizzato un avviso relativo al certificato. Scegliere Sì 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.
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.
Copiare il nome completamente qualificato del server da usare per connettersi al server e ai relativi database.
Selezionare Imposta firewall server sulla barra degli strumenti. Verrà visualizzata la pagina Impostazioni del firewall per il server.
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.
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.
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:
- 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.
- 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.
- Assicurarsi che ci siano indici cluster, in particolare per tabelle di grandi dimensioni.
- Le macchine virtuali (VM) devono trovarsi nella stessa area del database per evitare vincoli di rete.
- Le VM devono avere unità SSD con dimensioni adeguate per la generazione di artefatti temporanei prima del caricamento nell'archiviazione BLOB.
- 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
- Per informazioni su come connettersi ed eseguire query su un database SQL importato, vedere Avvio rapido: database SQL di Azure: usare SQL Server Management Studio per connettersi ed eseguire query sui dati.
- 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.
- Per una descrizione dell'intero processo di migrazione del database SQL Server, con raccomandazioni sulle prestazioni, vedere Migrazione di un database SQL Server al database SQL di Azure.
- Per informazioni su come gestire e condividere chiavi di archiviazione e firme di accesso condiviso in modo sicuro, vedere Guida alla sicurezza di Archiviazione di Azure.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per