webinar back to basics - sessione 7 - backup e recovery
DESCRIPTION
Appuntamento numero 7 con il webinar Back To Basics. In questa puntata parleremo delle strategie di Backup e delle soluzioni usando tool interni ed esterni a MongoDB, senza perdere di vista la fase di recovery dei dati.TRANSCRIPT
![Page 1: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/1.jpg)
Serie Sviluppo di un’ApplicazioneBack to BasicsBackup & Disaster Recovery
Senior Solutions Architect, MongoDB Inc.
Massimo Brignoli
#MongoDBBasics
![Page 2: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/2.jpg)
Agenda
• Riassunto ultima sessione
• Opzioni di Backup
– Tecniche e Tools
– Consistenza
• Ambienti Sharded
• MMS Backup
• Recovery
![Page 3: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/3.jpg)
Q & A
• Virtual Genius Bar
– Usate la chat per fare
domande
– Support team è a
disposizione
– Usateli durante le
sessioni!
![Page 4: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/4.jpg)
Riassunto ultima puntata…
![Page 5: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/5.jpg)
Deployment Considerations
• Dimensioni
Working Set
• Durabilità dei Dati
• Replica Set
• Regole di Tag
• Opzioni di Read
![Page 6: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/6.jpg)
Considerazioni di Deployment
• Scale Out
• Partizionamento
• Distribuzione dei
Dati
• Scelta Shard Key
• Fate sharding
quando ne avete
bisogno
![Page 7: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/7.jpg)
Opzioni di Backup
![Page 8: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/8.jpg)
mongodump & mongorestore
Copia del Files system
Files system snapshot
Non usate mongoimport & mongoexport!
Tools & Tecniche
//mongodump Example
server> mongodump -h myhost -d cms -c articles
![Page 9: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/9.jpg)
Crea un .bson file – (e un file json di
metadati)
– Sulla rete o sul file
system.
Mongodump
>mongodump –h myhost -d cms -c articles
connected to: myhost
2014-04-16T12:54:56.758+0100 DATABASE: cms to dump/cms
2014-04-16T12:54:56.759+0100 cms.articles to
dump/cms/articles.bson
2014-04-16T12:54:56.816+0100 7 documents
2014-04-16T12:54:56.817+0100 Metadata for cms.articles to
dump/cms/articles.metadata.json
![Page 10: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/10.jpg)
Sulla rete può introdurre dei page faults
I nodi Primary eSecondary sono identici– A parte la latenza
Usate secondary per backup– Oppure hidden secondary
Da dove posso fare i backup?
mongodump
![Page 11: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/11.jpg)
I dati potenzialmente possono essere inconsistenti– mongodump legge i file del database sequenziale
– Per esempio, fate update di oggetti uno prima e uno dopo
il backup
2 opzioni per mantenere l’integrità dei dati– Usate il parametro –oplog switch sul mongodump.
– Lockate il database in scrittura durante il backup
Consistenza dei Dati di Backup
![Page 12: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/12.jpg)
Esempi di --oplog e --oplogReplay
//Backup with –oplog
//--oplog richiede di effettuare il backup di tutti I
database/collection di quel server
>mongodump –h myhost –oplog
//Per far eil restore usate mongorestore con il parametro --
oplogRelay switch
>mongorestore –h myhost –oplogReplay ./cms/dump
![Page 13: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/13.jpg)
Sia per I nodi primari che secondari– Fa il flish dei dati su disco e fa il lock di tutte le scritture
– Usate db.fsyncLock() & db.fsyncUnlock()
Lock del Database in Scrittura
//use fsync and lock from the mongo shell
> db.fsyncLock()
{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}
//Perform file system backup… then unlock with… unlocked
secondaries will catchup.
> db.fsyncUnlock()
{ "ok" : 1, "info" : "unlock completed" }
![Page 14: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/14.jpg)
• Copiate I file della vostra directory dei dati (e.g.
/data/db)– Da usare assieme a fsync+lock
• File system or block storage snapshot– Ad esempio snapshot LVM
• Metodo più veloce di backup/restore
• Considerazioni– Journal, Consistenza
– Granularità del Backup (whole file system back up?)
– Esperienza di Ops
– Dove memorizzare I backup o gli snapshopt?
Backup a livello di Storage-level
![Page 15: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/15.jpg)
Fermate il processo di bilanciamento– Aspettate le fine delle migrazioni in corso
– Fate il backup di ogni shard
– Non dimenticate di fare il backup del config!
Backup di un Cluster Sharded
//Switch the balancer off…
mongos> sh.setBalancerState(false)
//Check to see if the balance is currently doing any migrations.
mongos> sh.isBalancerRunning()
![Page 16: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/16.jpg)
Recovery
![Page 17: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/17.jpg)
In caso di una failure– Restore dal backup
• Snapshot / mongodump etc.
• Restart del nodo
– Re-sync da un altro nodo
• I file possono essere copiato da un membro di un replica
set all’altro.
• O I dati se non sono troppo grandi possono essere
sincronizzati via network
Recovery
![Page 18: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/18.jpg)
MMS Backup
![Page 19: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/19.jpg)
On premise
Nel Cloud
Cos’è il MongoDB Management Service?
http://mms.mongodb.com
![Page 20: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/20.jpg)
Architettura del Backup di MMS
• Replication Data
piped into MMS
Backup
![Page 21: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/21.jpg)
• Dal sync iniziale, ricostruiamo I vostri dati neinostri datacenters and periodicamente facciamouno snapshot
• Facciamo gli snapshot ogni 6 ore (on premise fino a 15 minuti)
• Oplog sono memorizzati per 48 ore
Come Funziona
![Page 22: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/22.jpg)
Il Balancer viene messo in pausa ogni 6 ore
Un token di no-op viene inserito in tutti gli shard, mongos e config
Oplog vengono applicati fino al punto di inserimento del token di no-op
Fornisce uno stato consistente del database anche attraverso gli shard
Backup dei Cluster Sharded
![Page 23: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/23.jpg)
Sommario
![Page 24: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/24.jpg)
– Scegliete la soluzione di backup giusta per
voi
– Gli Snapshot sono veloci
– Attenzione al livello di integrità dei dati
richiesto
– Recovery• Dal Backup o da un altro secondary
– MMS Backup ora disponibile• Onsite o nel cloud
Riassunto
![Page 25: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/25.jpg)
– Performance Monitoring– Tuning
– Tools
– Quali metriche sono importanti
Prossima Sessione- 17 Giugno
![Page 26: Webinar Back To Basics - Sessione 7 - Backup e Recovery](https://reader034.vdocuments.net/reader034/viewer/2022052622/55945bc51a28ab130c8b4628/html5/thumbnails/26.jpg)