Rejoignez notre série de webinaires en huit parties sur «Construire une application avec MongoDB » pour apprendre les meilleures pratiques, trucs et astuces de nos Solutions Architects et découvrir à quel point il est facile de commencer à construire des applications avec MongoDB. Cette session couvre les fonctionnalités clés de MongoDB et définit le cadre de création d'une application. Toutes ces sessions seront exclusivement en français.
Opérations pour votre application - Session 7 - Sauvegarde et DR:
Ce webinaire couvre les options de sauvegarde et de restauration des données. Apprenez ce que vous devez faire en cas de panne et comment effectuer une sauvegarde et récupération des données dans vos applications
5. 5
Stratégies de déploiement
• Taille du “working
set”
• Durabilité de la donnée
• Replica Sets
• Tags
• Préférences de lecture
6. 6
Stratégies de déploiement
• Scalabilité horizontale
• Partitioning
• Distribution de la
donnée
• Choix de la clé de
sharding
• Sharding au
moment opportun
8. 8
• mongodump & mongorestore
• Copie du système de fichiers
• Snapshot du système de fichiers
• Replique cachée avec slaveDelay
• mongoimport & mongoexport n’est pas une
solution de backup!
Outils & Approches
9. 9
• Crée un fichier de données bson plus un fichier
de métadonneées JSON
• Fonctionne à travers le réseau ou directement
sur le système de fichiers
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
10. 10
• Back up réseau peut introduire des page faults
• Primaire et Secondaire identiques
– A la latence près
• Préférer les secondaires
– Eventuellement cachés
Où faire ce backup
mongodump
11. 11
• Inconsistence potentielle des données
– mongodump lit les fichiers de manière séquentielle
– Déplacement de document suite à update, objets liés…
• 3 options pour maintenir la consistence
– Option –oplog de mongodump.
– Verrouiller la DB pour empêcher les écritures
– Isoler un noeud secondaire
Consistence des données
12. 12
--oplog & --oplogRestore
//Backup with –oplog
//--oplog requires that you backup all databases / collections on
the server
>mongodump –h myhost –oplog
//To restore use mongorestore with the –oplogRelay switch for
example
>mongorestore –h myhost –oplogReplay ./cms/dump
13. 13
• Pour les primaires or secondaires
– Déverse la données sur le disque et verrouille
– db.fsyncLock() & db.fsyncUnlock()
Verrouiller la DB en écriture
//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" }
14. 14
• Copie des fichiers du dbpath (e.g. /data/db)
– Utiliser fsync+lock
• Snpashot au niveau système de fichiers ou
stockage bloc
– Par example LVM snapshots
– Backup/restore le plus rapide
• Considérations
– Journal, Consistence
– Granularité (système complet ou DB individuelle)
– Ops expertise
– Stockage des snapshots et fichiers de données
Backup niveau système de fichiers
15. 15
• Arrêter le process balancer
– Attendre la fin des migrations en cours
– Backup de chaque shard
– Ne pas oublier les config servers!
Backup d’un cluster shardé
//Switch the balancer off…
mongos> sh.setBalancerState(false)
//Check to see if the balance is currently doing any migrations.
mongos> sh.isBalancerRunning()
19. 19
• From the initial sync, we rebuild your data in our
datacenters and take a snapshot
• We take snapshots every 6 hours
• Oplog is stored for 48 hours
How it works
20. 20
• Balancer paused every 6 hours
• A no-op token is inserted across all shards,
mongoses and config servers
• Oplog applied to replica sets until point in which
token was inserted
• Provides a consistent state of database across
shards
Sharded Clusters