Webinar: Opérations pour votre application - Session 7 - Sauvegarde et DR

Preview:

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 applications

Citation preview

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, tug@mongodb.com - @AlainHelaili, alain.helaili@mongodb.cm

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