Domande frequenti
Come si esegue il backup di un database MongoDB attivo senza tempi di inattività?
Per i server autonomi e i replica set, il plugin Bacula Enterprise per MongoDB esegue mongodump su un database attivo senza interrompere le operazioni di lettura o scrittura, e il database rimane pienamente operativo per tutta la durata dei processi di backup. Detto questo, la garanzia di assenza di tempi di inattività non si applica ai backup dei cluster con partizionamento (sharded), poiché questi backup richiedono (1) l’arresto del bilanciatore di chunk tramite sh.stopBalancer(), (2) la successiva disabilitazione delle migrazioni di chunk pianificate e (3) il blocco delle operazioni di scrittura e delle trasformazioni dello schema per tutta la durata del dump. È prevedibile che le operazioni di scrittura vengano interrotte durante la finestra di backup. Eseguire prima il backup del replica set del server di configurazione, quindi acquisire ciascun replica set di shard a intervalli di tempo il più ravvicinati possibile.
Qual è la differenza tra un backup logico e uno fisico in MongoDB?
Un backup logico utilizza mongodump per esportare i documenti, gli indici e gli schemi del database in file di archivio BSON portabili. Questi archivi sono indipendenti dal motore di archiviazione sottostante e possono generalmente essere ripristinati su un server diverso, sebbene i ripristini tra versioni diverse dipendano dalla compatibilità tra le versioni di MongoDB, dalla versione di Database Tools e dalla Feature Compatibility Version (FCV). Pertanto, non è garantito che ogni combinazione funzioni. Un backup fisico, d’altra parte, copia i file di dati grezzi dal disco, il che è molto più veloce per set di dati molto grandi ma vincola l’archivio al motore di archiviazione e alla versione originali.
Come funziona il ripristino a un punto nel tempo (PITR) per i replica set di MongoDB?
Il ripristino a un punto nel tempo (PITR) è disponibile esclusivamente per i replica set. Quando è necessario un ripristino, il parametro `replay_to` interrompe la riproduzione dell’oplog in qualsiasi punto all’interno della finestra oplog disponibile e ripristina il replica set allo stato protetto più vicino all’interno di quella finestra prima che si verifichi un incidente. I server standalone e i cluster shardati non supportano il PITR tramite questo plugin perché non forniscono una catena di ripristino dell’oplog allo stesso modo dei set di replica. Se è necessario ripristinare una collezione specifica a un punto nel tempo, la procedura consigliata consiste nel ripristinare prima l’intera catena del set di replica su una destinazione non di produzione, quindi estrarre e riconciliare i dati richiesti a livello di applicazione.
È possibile ripristinare una singola collezione MongoDB senza ripristinare l’intero database?
Sì. Il plugin MongoDB di Bacula supporta filtri di inclusione ed esclusione a livello di database e di collezione, in modo che un’operazione di ripristino possa riguardare una collezione specifica senza intaccare il resto del database. Ciò consente di mantenere brevi le finestre di ripristino e limita il rischio di sovrascrivere dati integri insieme a quelli danneggiati che è necessario sostituire. Il ripristino completo del database è disponibile quando necessario, ma non è mai l’unica opzione.
Inoltre, si noti che il ripristino granulare a livello di collezione si applica agli artefatti logici completi e non può essere combinato con la riproduzione dell’oplog, il che significa che il ripristino a un punto nel tempo opera sempre sull’intero ambito del set di repliche. Se sono necessarie entrambe le operazioni, assicurarsi di ripristinare prima l’intera catena del set di repliche su una destinazione non di produzione, quindi estrarre i dati richiesti a livello di applicazione.
Perché utilizzare il plugin MongoDB di Bacula invece di eseguire mongodump manualmente?
mongodump di per sé è uno strumento valido per una singola esportazione logica. Detto questo, il suo limite è che non offre tutto ciò che viene dopo il dump (pianificazione centralizzata, conservazione automatizzata, convalida del checksum, metadati della catena di ripristino e l’elenco potrebbe continuare). Il plugin MongoDB di Bacula Enterprise integra mongodump e mongorestore all’interno del motore di policy di Bacula, in modo che ogni processo di backup di MongoDB sia opportunamente pianificato, catalogato, convalidato e recuperabile dalla stessa console che gestisce il resto dell’infrastruttura.