Spostare i dati in Istanza gestita di SQL

Completato

Molte migrazioni richiedono un periodo di tempo in cui è necessario mantenere sincronizzati i database locali e cloud. Ad esempio, può essere necessario un momento in cui i client apportano modifiche a entrambi i database.

È stata eseguita la migrazione del database dei prodotti sportivi venduti al dettaglio in Istanza gestita di SQL di Azure. Il sito Web sta già usando il database cloud. Si sta iniziando a riconfigurare i client per l'uso del nuovo database. Si è deciso di spostare gli utenti nel nuovo sistema in batch. Per ogni team, occorrerà un periodo di tempo per risolvere eventuali problemi prima di eseguire la migrazione degli utenti successivi. Questo approccio consente la risoluzione dei problemi senza interrompere l’attività di tutti gli utenti contemporaneamente. Successivamente, verrà riconfigurato il sistema di analisi dei dati per usare il nuovo database in Azure. Durante questo periodo, è necessario assicurarsi che i database cloud e locali siano sincronizzati ogni ora.

Verranno esaminati vari metodi per implementare la sincronizzazione dei dati. Questi metodi possono essere usati anche per eseguire la migrazione selettiva dei dati, se è necessario trasferire solo un subset delle tabelle. Questa flessibilità consente un approccio più personalizzato alla migrazione dei dati.

Opzioni di connettività con server locali

Spesso è necessario mantenere i dati nei database locali sincronizzati con Istanza gestita di SQL di Azure. È possibile, ad esempio, che si voglia eseguire lo staging della migrazione delle applicazioni client al nuovo database. In questo modo, si originerà un momento in cui i client si connettono a entrambi i database.

Prima di scegliere un metodo di sincronizzazione dei dati, è importante assicurarsi di disporre di un'opzione di connettività sicura. Sono disponibili tre diverse opzioni di connettività per stabilire la comunicazione tra i computer locali e le risorse in Azure.

  • Da punto a sito. Una connessione gateway VPN da punto a sito (P2S) consente di creare una connessione sicura alla rete virtuale da un singolo computer client.
  • Da sito a sito. Un gateway VPN da sito a sito viene usato per connettere un intero sito locale alla rete di Azure.
  • ExpressRoute. Azure ExpressRoute consente di creare connessioni private tra i data center di Azure e l'infrastruttura disponibile localmente o in un ambiente con percorso condiviso. Le connessioni ExpressRoute non sfruttano la rete Internet pubblica e offrono un livello di sicurezza superiore, maggiore affidabilità, velocità più elevate e minori latenze rispetto alle connessioni Internet tradizionali.

Endpoint pubblico

L'endpoint pubblico per Istanza gestita di SQL di Azure consente di connettersi al database dalla rete Internet senza usare una VPN ed è progettato solo per la comunicazione dati. L'endpoint pubblico per i dati può coesistere simultaneamente con l'endpoint privato. Per motivi di sicurezza, l'implementazione consente la separazione delle mansioni tra un amministratore di database e un amministratore di rete quando si abilita l'endpoint pubblico.

Per abilitare l'endpoint pubblico per l'istanza gestita, sono necessari due passaggi. Per la separazione delle mansioni, sono necessari due ruoli distinti, con le autorizzazioni di database e di rete seguenti, per completare questi passaggi:

  1. Un amministratore del database che dispone di autorizzazioni di Controllo degli accessi in base al ruolo nell'ambito Microsoft.Sql/managedInstances/* deve eseguire uno script PowerShell per abilitare l'endpoint pubblico per l'istanza gestita.
  2. Un amministratore di rete che dispone di autorizzazioni di Controllo degli accessi in base al ruolo nell'ambito Microsoft.Network/* deve aprire la porta 3342 usata dall'endpoint pubblico nel gruppo di sicurezza di rete (NSG) e fornire una route definita dall'utente per evitare il routing asimmetrico.

Scegliere un metodo di sincronizzazione

È possibile usare diversi metodi per sincronizzare i dati da un'istanza gestita di database SQL a un server locale e viceversa.

Backup e ripristino nativi

È possibile ripristinare un database in Istanza gestita di SQL di Azure da un file di archiviazione BLOB di Azure usando la firma di accesso condiviso.

Ciò comporta la creazione di credenziali con accesso all'archiviazione BLOB di Azure e quindi l'uso del comando BACKUP DATABASE con l'opzione COPY_ONLY. Se le dimensioni del database sono maggiori di 200 GB, è possibile usare un backup con striping fornendo diversi percorsi URL.

BACKUP DATABASE YourDatabase TO URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak' WITH COPY_ONLY

Per ripristinare il database in Istanza gestita di SQL:

RESTORE DATABASE YourDatabase FROM URL = 'https://youraccount.blob.core.windows.net/yourcontainer/yourdatabase.bak'

File BACPAC usando SqlPackage

Un file BACPAC è essenzialmente una versione compressa dei metadati e dei dati del database’. Benché questo metodo di distribuzione sia compatibile con il database SQL, Istanza gestita di SQL non supporta la migrazione tramite BACPAC nel portale di Azure. In alternativa, è necessario usare l'utilità SQLPackage con il file BACPAC.

Programma per la copia bulk (BCP)

L'utilità BCP è uno strumento da riga di comando che esporta tabelle in file in modo da poterle importare. Usare questo approccio per eseguire la migrazione da un singolo database SQL a Istanza gestita di SQL e viceversa.

Azure Data Factory

Azure Data Factory è progettato per lo spostamento e l'orchestrazione dei dati, con particolare attenzione alla fase di inserimento. Azure Data Factory dispone del supporto del runtime di integrazione per l'esecuzione di pacchetti SSIS e del supporto della rete Internet pubblica per Istanza gestita di SQL.

Replica transazionale

La replica transazionale è un modo per spostare i dati tra server di database connessi in modo continuo.

Il processo inizia con uno snapshot degli oggetti di database di pubblicazione e i dati. Dopo aver eseguito lo snapshot iniziale, le modifiche successive ai dati o allo schema nel server di pubblicazione vengono in genere recapitate a Istanza gestita di SQL di Azure quasi in tempo reale.

Istanza gestita di SQL di Azure è flessibile perché può essere come server di pubblicazione, database di distribuzione e database sottoscrittore.

La replica è una delle poche tecnologie che consente la replica di parti di una tabella. Si fa riferimento a queste parti della tabella come articoli. Questi dati vengono quindi inviati a un database di distribuzione, ovvero un fornitore di dati a un numero qualsiasi di database sottoscrittori.

Requisiti

  • Per la connettività viene usata l'autenticazione SQL tra i partecipanti alla replica.
  • Una condivisione di account di archiviazione di Azure per la directory di lavoro usata dalla replica.
  • La porta 445 (TCP in uscita) deve essere aperta nelle regole di sicurezza della subnet dell'istanza gestita per accedere alla condivisione file di Azure
  • La porta 1433 (TCP in uscita) deve essere aperta se il server di pubblicazione o il database di distribuzione si trova in un'istanza gestita e il database sottoscrittore è locale.

Connettere le applicazioni a un'istanza di Istanza gestita di SQL

Un'istanza di Istanza gestita di SQL deve essere inserita in una subnet della rete virtuale di Azure dedicata alle istanze gestite. Questa distribuzione offre un indirizzo IP privato sicuro e la possibilità di connettersi alle reti locali.

Diagramma che mostra come viene eseguita la connettività in Istanza gestita di SQL di Azure.

Gli utenti e le applicazioni client possono connettersi al database dell'istanza gestita tramite il portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure e l'API REST.

Tutte le comunicazioni vengono crittografate e firmate mediante certificati. Per verificare l'affidabilità delle parti che comunicano, le istanze gestite controllano costantemente questi certificati rispetto agli elenchi di revoche dei certificati. Se i certificati vengono revocati, Istanza gestita di SQL chiude le connessioni per proteggere i dati.