Cos'è la replicazione dei dati?
La replicazione dei dati si ha quando gli stessi dati sono intenzionalmente memorizzati in più di un sito o server. Ci sono diverse ragioni per cui le aziende replicano i dati. Permette ai dati di essere disponibili senza soluzione di continuità in caso di periodo di inattività del server o di traffico pesante verso il server. I dati diventano accessibili agli utenti in modo coerente senza interferire o rallentare l'accesso degli altri utenti. Per le applicazioni cloud, la replicazione dei dati permette di accedere a una copia dei dati su un database locale con prestazioni molto più elevate rispetto all'accesso ai dati attraverso l'API dell'applicazione cloud, particolarmente utile per l'analisi dei dati e la scienza dei dati. La replicazione dei dati può anche consentire di evitare i limiti delle transazioni API e la limitazione che alcune applicazioni cloud hanno.
La replicazione dei dati non è la stessa di un normale backup e fa di più. Il server da cui provengono i dati è chiamato editore e quello a cui i dati vengono replicati è chiamato abbonato. Nella replicazione dei dati, la transazione fatta sull'editore si sincronizza con l'abbonato e aggiorna i dati automaticamente. Qualsiasi cambiamento dei dati sull'editore si riflette automaticamente anche sull'abbonato.
Può essere presente una replicazione completa o una replicazione parziale. In caso di replicazione completa, tutti i dati di origine sono memorizzati in tutti i siti replicati. In caso di replicazione parziale, solo i dati frequentemente accessibili vengono copiati, mentre gli altri dati rimangono all'origine.
Tipi di replicazione dei dati
Ci sono tre tipi principali di replicazione dei dati.
Replicazione transazionale
Nella replicazione transazionale, i cambiamenti frequenti dei dati sono automatizzati e distribuiti tra i server. La replicazione dei cambiamenti dall'editore al sottoscrittore avviene quasi in tempo reale. Non replica semplicemente il risultato finale della transazione, ma registra ogni passo della transazione e l'ordine in cui i cambiamenti avvengono.
Per esempio, nel caso delle transazioni ATM, la replicazione dall'editore all'abbonato non è solo il saldo finale registrato, ma tutte le singole transazioni fatte in mezzo. Un'altra caratteristica chiave della replicazione transazionale è che mentre i cambiamenti di dati al publisher sono replicati al sottoscrittore, non funziona il contrario. Le modifiche ai dati non avvengono a livello di sottoscrittore per impostazione predefinita.
Replicazione istantanea
La replicazione istantanea sincronizza i dati tra l'editore e l'abbonato in un dato momento. Sposta pezzi di dati dall'editore all'abbonato in una singola transazione. Gli aggiornamenti in una replicazione istantanea non sono così frequenti come la replicazione transazionale. Può essere fatto prima della replicazione transazionale per stabilire uno stato di base dei due server. Non aggiorna ogni transazione tra i server né l'ordine di cambiamento dei dati.
Questo processo è usato per sincronizzare i dati che cambiano in un periodo di tempo. Per esempio, molte aziende replicano dati come account, contatti e opportunità da un CRM cloud a un database locale per scopi di reporting. Questo può essere fatto ogni 15 minuti, una volta all'ora o una volta al giorno, a seconda di quanto frequentemente i dati cambiano. Per l'efficienza, il processo di replicazione può rilevare i dati che sono cambiati nel publisher e replicare solo i cambiamenti invece di prendere un'istantanea completa ad ogni intervallo di replicazione.
Replicazione a fusione
La replicazione a fusione è una forma leggermente più complessa di replicazione. La sincronizzazione iniziale dall'editore è una replicazione istantanea. Tuttavia, in questa forma, permette ai cambiamenti di dati di verificarsi sia a livello di editore che di abbonato. I dati aggiornati vengono poi inviati ad un agent di fusione, che è installato su tutti i server. Il merge agent usa algoritmi di risoluzione dei conflitti per aggiornare e distribuire i dati.
Per esempio, se un dipendente stava modificando un documento direttamente salvato su un server cloud (editore) sul proprio portatile o telefono (abbonato) mentre era online, questa sarebbe una replicazione transazionale poiché il documento viene salvato quasi in tempo reale. Tuttavia, se il documento è stato scaricato dal server cloud e aggiornato offline sul portatile o sul telefono, ci sarebbe un conflitto, poiché i dati sono stati aggiornati dal lato abbonato. Una volta tornato online, passerebbe attraverso un agente di fusione, che userebbe un sistema di risoluzione dei conflitti per aggiornare il documento all'editore confrontando i due file.
La replicazione a fusione viene utilizzata in diversi scenari in cui un utente non ha accesso diretto all'editore in ogni momento, come nel caso di utenti mobili dove è possibile andare offline mentre i dati vengono aggiornati. Sarebbe anche usato in un caso in cui più abbonati potrebbero accedere e aggiornare gli stessi dati in vari momenti e sincronizzarli con l'editore o con altri abbonati. Potrebbe anche essere usato dove gli stessi dati dall'editore sono aggiornati in parti da più abbonati allo stesso tempo.
Componenti importanti della rete di replicazione dei dati
Oltre all'editore e all'abbonato, la rete dispone anche di alcuni elementi chiave che sono necessari per avere successo.
Distributore
Per cambiare una configurazione di replicazione, il distributore deve essere prima configurato. Il distributore è un server nella rete di replicazione che controlla il database di distribuzione e memorizza i metadati e la storia di tutte le replicazioni. Memorizza anche le transazioni e le istantanee destinate alla replicazione. Il distributore può essere lo stesso del server editore (distributore locale) o anche un distributore remoto a seconda del tipo di replicazione.
Un distributore remoto è generalmente usato quando un singolo distributore si rivolge a più editori o quando è richiesto di fare l'elaborazione su un computer separato per non influenzare il movimento dei dati sull'editore. Questo è generalmente usato nella replicazione transazionale dove la frequenza degli aggiornamenti è molto più alta e potrebbe influenzare la velocità di elaborazione del distributore se si trova sullo stesso server. La replicazione a fusione può essere fatta con un distributore locale poiché la frequenza di replicazione e di aggiornamenti non è così frequente come la replicazione transazionale. Aiuta anche il fatto che i dati aggiornati dal sottoscrittore dopo la fusione devono essere sincronizzati con l'editore alla fine.
Agenti di replicazione
Gli agenti di replicazione sono il cuore della replicazione e variano a seconda del tipo di replicazione installato. Sono programmi che eseguono vari compiti come il rilevamento e l'aggiornamento dei database di editore e abbonato, la creazione di copie e la risoluzione dei conflitti. Gli agenti di replicazione sono generalmente memorizzati nel distributore. Alcuni degli agenti di replicazione eseguiti dal distributore sono:
- Agente istantaneo
- Agente di distribuzione
- Agente di fusione
- Agente lettore di registro
- Agente lettore di codice
Vantaggi della replicazione dei dati
La replicazione dei dati è un ottimo modo per fornire un accesso coerente ai dati. Aumenta anche l'accesso ai dati per più utenti allo stesso tempo. Le ridondanze dei dati vengono rimosse unendo i database e aggiornando i database slave con dati incompleti. E con la replicazione dei dati, c'è naturalmente un accesso più veloce ai database.
Svantaggi della replicazione dei dati
La replicazione dei dati richiede un grande spazio di archiviazione e un'infrastruttura per mantenerla. La replicazione è costosa e mantenere l'infrastruttura per mantenere i dati coerenti richiede misure complesse. Inoltre apre più parti del software alla privacy e alle violazioni della sicurezza.
Migliori pratiche per la replicazione
Una volta che la rete di replicazione è configurata, è importante seguire alcune pratiche di amministrazione efficaci:
- Ci deve essere una strategia in atto per fare il backup di un database su base regolare. Ci dovrebbero essere anche dei test regolari per ripristinare questi backup.
- Nell'ambito del ripristino di emergenza, è essenziale fare lo script di tutti i componenti di replicazione e dei compiti ripetitivi, poiché gli script possono essere memorizzati e sottoposti a backup facilmente. Nel caso di un cambiamento nelle politiche, i componenti possono essere facilmente riscritti.
- È necessario stabilire i fattori che influenzano le prestazioni della replicazione. Questo include aspetti come l'hardware, il design del database, la configurazione della rete, la configurazione del server e i parametri dell'agente. Tutti questi devono essere messi in atto e monitorati per il carico di lavoro utilizzato dall'applicazione.
I seguenti cinque parametri devono essere monitorati per l'efficienza:
- Tempo necessario per la replicazione
- Replicazione sostenuta per un periodo di tempo
- Concorrenza o numero di attività di replicazione che possono avvenire allo stesso tempo
- Durata della sincronizzazione
- Consumo di risorse per la replicazione
- Per evitare disastri, è importante stabilire delle soglie per le prestazioni in modo che, quando vengono raggiunte, possano generare avvisi e inviarli agli amministratori. Gli avvisi possono anche essere stabiliti per le azioni degli agenti di replicazione o dei processi di replicazione.
- Monitorare la topologia di replicazione
- La convalida periodica dei dati per la replicazione transazionale e la replicazione a fusione deve essere fatta all'editore e all'abbonato per mantenere una replicazione di successo
La replicazione dei dati va oltre la creazione di un backup dei dati. Pur essendo uno dei componenti chiave nella gestione dei dati, può anche essere un processo costoso e complesso se non gestito correttamente. La chiave sta nello scegliere il giusto processo di replicazione per le proprie esigenze.