webinar: opérations pour votre application - session 7 - sauvegarde et dr
DESCRIPTION
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 applicationsTRANSCRIPT
Tugdual Grall (@tgrall) Alain Hélaïli (@AlainHelaili)
#MongoDBBasics @MongoDB
Construire une application avec MongoDB
Sauvegarde et disaster recovery
2
• Résumé de l’épisode précédent
• Options de backup
• MMS
Agenda
3
• Virtual Genius Bar– Utilisez la fenêtre de chat
– Tug & Alain dispo pendant, et après…
• MUGs à Paris, Toulouse, Bordeaux, Rennes, Lyon
• Groupes LinkedIn « MongoDB France » et « MongoDB » sur Viadeo
Q & A
@tgrall, [email protected] - @AlainHelaili, [email protected]
Résumé de l’épisode précédent…
5
Stratégies de déploiement
• Taille du “working set”
• Durabilité de la donnée• Replica Sets
• Tags
• Préférences de lecture
6
Stratégies de déploiement
• Scalabilité horizontale
• Partitioning
• Distribution de la donnée
• Choix de la clé de sharding
• Sharding au moment opportun
Options de backup
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
• 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 articlesconnected to: myhost 2014-04-16T12:54:56.758+0100 DATABASE: cms to dump/cms2014-04-16T12:54:56.759+0100 cms.articles to dump/cms/articles.bson2014-04-16T12:54:56.816+0100 7 documents2014-04-16T12:54:56.817+0100 Metadata for cms.articles to dump/cms/articles.metadata.json
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
• 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
--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
• 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
• 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
• 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()
MMS Backup
17
• On premise
• In the cloud
What is MongoDB Management Service?
http://mms.mongodb.com
18
MMS Backup Architecture
• Replication Data piped into MMS Backup
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
• 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
Summary
22
• Choisissez la meilleure stratégie pour vous
• Les snapshots sont rapides
• Pensez à l’intégrité
• MMS Backup sur le cloud ou sur site
Résumé
23
– Monitoring– Tuning
– Outils
– Quelles sont les métriques importantes
Prochaine session – 3 juin