Spostare i dati in Istanza gestita di SQL
Molte migrazioni comportano un periodo in cui il database locale e il database cloud devono essere mantenuti sincronizzati. Ad esempio, potrebbe verificarsi un momento in cui i client apportano modifiche a entrambi i database.
È stata eseguita la migrazione del database dei prodotti di vendita al dettaglio sportivo in Istanza gestita di SQL di Azure. Il sito Web usa già il database cloud. Si sta iniziando a riconfigurare i client per l'uso del nuovo database. Si è deciso di eseguire la transizione degli utenti al nuovo sistema in batch. Per ogni team, è necessario tempo per risolvere eventuali problemi prima di eseguire la migrazione degli utenti successivi. Questo approccio consente la risoluzione dei problemi e la risoluzione dei problemi senza interrompere tutti gli utenti contemporaneamente. Successivamente, si riconfigurerà il sistema di analisi dei dati per usare il nuovo database in Azure. Durante questo periodo, si vuole assicurarsi che i database cloud e locali vengano 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 si vogliono mantenere sincronizzati i dati nei database locali con Istanza gestita di SQL di Azure. È consigliabile eseguire la migrazione delle applicazioni client al nuovo database in modo graduale, ad esempio c'è un periodo in cui i client si connettono a entrambi i database.
Prima di scegliere un metodo di sincronizzazione dei dati, è importante assicurarsi di disporre di connettività sicura. Sono disponibili tre diverse opzioni di connettività per stabilire la comunicazione tra computer locali e risorse in Azure.
- Da punto a sito. Una connessione gateway VPN da punto a sito 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 locale o l'infrastruttura in un ambiente di condivisione. Le connessioni ExpressRoute non passano tramite La rete Internet pubblica e offrono maggiore affidabilità, velocità più veloci, latenze inferiori e maggiore sicurezza rispetto alle connessioni Internet tipiche.
Endpoint pubblico
L'endpoint pubblico per Istanza gestita di SQL consente di connettersi al database da Internet senza usare una VPN ed è progettato solo per la comunicazione dei dati. L'endpoint pubblico per i dati può coesistere contemporaneamente con l'endpoint privato. Per motivi di sicurezza, l'implementazione consente la separazione dei compiti (SoD) 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 completare questi passaggi relativi alla Segregazione dei Compiti (SoD), sono necessari due ruoli separati, con le seguenti autorizzazioni di database e di rete:
- Un amministratore di database con autorizzazioni di controllo degli accessi in base al ruolo nell'ambito Microsoft.Sql/managedInstances/* deve eseguire uno script di PowerShell per abilitare l'endpoint pubblico per l'istanza gestita.
- 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 e fornire una route UDR per evitare il routing asimmetrico.
Scegliere un metodo di sincronizzazione
È possibile usare molti metodi per sincronizzare i dati da un'istanza gestita di database SQL a un server locale e vice-
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.You can restore a database in Azure SQL Managed Instance from an Azure BLOB Storage file using Shared Access Signature (SAS).
Ciò comporta la creazione di una credenziale con accesso ad "Azure Blob Storage" e quindi l'uso del comando BACKUP DATABASE con l'opzione COPY_ONLY. Se il database è maggiore di 200 GB, è possibile usare un backup con suddivisione 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'
Creazione di un file BACPAC utilizzando SqlPackage
Un file BACPAC è essenzialmente una versione compressa dei metadati e dei dati del database. Sebbene 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, l'utilità SQLPackage deve essere usata con il file BACPAC.
Programma di 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 tornare indietro.
Azure Data Factory (ADF)
Azure Data Factory è progettato per lo spostamento e l'orchestrazione dei dati, con particolare attenzione all'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 l'istanza gestita di SQL.
Replicazione 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 e dei dati del database di pubblicazione. Dopo l'acquisizione dello snapshot iniziale, le modifiche successive apportate ai dati o allo schema nel server di pubblicazione vengono in genere recapitate a Istanza gestita di SQL di Azure quasi in tempo reale man mano che si verificano.
SQL Managed Instance è flessibile perché può fungere da server di pubblicazione, server di distribuzione e sottoscrittore.
La replica è una delle poche tecnologie che consentono di replicare parti di una tabella. Si fa riferimento a queste parti della tabella come articoli. Questi dati vengono quindi inviati a un distributore, che è un fornitore dei dati a un numero qualsiasi di 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.
- Aprire la porta 445 (TCP in uscita) nelle regole di sicurezza della subnet dell'istanza gestita per accedere alla condivisione file di Azure.
- Aprire la porta 1433 (TCP in uscita) se il server di pubblicazione o il server di distribuzione si trova in un'istanza gestita e il sottoscrittore è locale.
Connessione di applicazioni a un'istanza gestita di SQL
Un'istanza gestita di SQL deve essere inserita all'interno di una subnet di rete virtuale di Azure dedicata alle istanze gestite. Questa distribuzione offre un indirizzo IP privato sicuro e la possibilità di connettersi alle reti locali.
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 con certificati. Per verificare l'attendibilità delle parti di comunicazione, le istanze gestite verificano costantemente questi certificati tramite elenchi di revoche di certificati. Se i certificati vengono revocati, l'istanza gestita di SQL chiude le connessioni per proteggere i dati.