Création d'une sauvegarde
Ce tutoriel explique comment utiliser le Utilitaire CouchBackup pour sauvegarder et restaurer une instance CouchDB ou IBM® Cloudant® for IBM Cloud® . CouchBackup sauvegarde la base de données dans un fichier. En cas d'échec de défaillance de la base de données, vous pouvez utiliser le fichier de sauvegarde pour restaurer les informations dans une base de données existante.
Objectifs
- Installer CouchBackup.
- Créer un exemple de base de données contenant des documents.
- Configurer une variable d'environnement.
- Sauvegarder une base de données.
- Créer un fichier journal.
- Restaurer une sauvegarde à partir d'un fichier texte.
Installation de CouchBackup
Installez CouchBackup en exécutant la commande install
.
npm install -g @cloudant/couchbackup
Création d'une base de données exemple
Créez une base de données exemple couchbackup-demo
pour l'utiliser dans ce tutoriel.
-
Créez une base de données en exécutant la commande ci-dessous.
curl "https://username:password@myhost.cloudant.com/couchbackup-demo" -X PUT
-
Examinez les résultats.
{ "ok": true }
Création de documents dans la base de données exemple
Les documents que vous créez dans cet exercice contiennent les données que vous sauvegardez et restaurez ultérieurement.
-
Copiez le texte exemple dans un fichier de données nommé
bulkcreate.dat
pour créer les cinq documents.{ "docs": [ { "_id": "doc1", "firstname": "Sally", "lastname": "Brown", "age": 16, "location": "New York City, NY" }, { "_id": "doc2", "firstname": "John", "lastname": "Brown", "age": 21, "location": "New York City, NY" }, { "_id": "doc3", "firstname": "Greg", "lastname": "Greene", "age": 35, "location": "San Diego, CA" }, { "_id": "doc4", "firstname": "Anna", "lastname": "Greene", "age": 44, "location": "Baton Rouge, LA" }, { "_id": "doc5", "firstname": "Lois", "lastname": "Brown", "age": 33, "location": "Syracuse, NY" } ] }
-
Exécutez la commande ci-dessous pour créer les documents.
curl "https://username:password@myhost.cloudant.com/couchbackup-demo/_bulk_docs" -X POST -H "Content-Type: application/json" -d \@bulkcreate.dat
-
Examinez les résultats.
[ { "ok": true, "id": "doc1", "rev": "1-57a08e644ca8c1bb8d8931240427162e" }, { "ok": true, "id": "doc2", "rev": "1-bf51eef712165a9999a52a97e2209ac0" }, { "ok": true, "id": "doc3", "rev": "1-9c9f9b893fcdd1cbe09420bc4e62cc71" }, { "ok": true, "id": "doc4", "rev": "1-6aa4873443ddce569b27ab35d7bf78a2" }, { "ok": true, "id": "doc5", "rev": "1-d881d863052cd9681650773206c0d65a" } ]
Définition d'une variable d'environnement
Vous pouvez utiliser des variables d'environnement ou des options afin de spécifier l'URL et la base de données de l'instance CouchDB ou IBM Cloudant que vous souhaitez employer avec CouchBackup.
Dans ce tutoriel, vous définissez COUCH_URL
et spécifiez la base de données à l'aide du paramètre --db
.
Définissez la variable d'environnement COUCH_URL
pour spécifier l'URL de l'instance CouchDB ou IBM Cloudant.
export COUCH_URL=https://username:password@myhost.cloudant.com
Sauvegarde d'une base de données
L'utilitaire CouchBackup sauvegarde votre base de données dans un fichier texte afin de conserver vos données et faciliter leur restauration.
-
Exécutez la commande
couchbackup
pour acheminer le contenu de votre base de données vers un fichier texte.couchbackup --db couchbackup-demo > couchbackup-demo-backup.txt
-
Examinez les résultats.
================================================================================ Performing backup on https://****:****@myhost.cloudant.com/couchbackup-demo using configuration: { "bufferSize": 500, "log": "/var/folders/r7/vtctv4695hj_njxmr2hj4jyc0000gn/T/tmp-3132gHPWk9A9yGVe.tmp", "mode": "full", "parallelism": 5 } ================================================================================ Streaming changes to disk: batch 0 couchbackup:backup written 0 docs: 5 Time 0.604 +0ms couchbackup:backup finished { total: 5 } +4ms
-
Examinez le répertoire pour vérifier que le fichier
couchbackup-demo-backup.txt
a été créé. -
Ouvrez le fichier et examinez la liste des documents qui sont sauvegardés depuis la base de données.
[ { "_id": "doc2", "_rev": "1-2c5ee70689bb75af6f65b0335d1c92f4", "firstname": "John", "lastname": "Brown", "age": 21, "location": "New York City, NY", "_revisions": { "start": 1, "ids": [ "2c5ee70689bb75af6f65b0335d1c92f4" ] } }, { "_id": "doc3", "_rev": "1-f6055e3e09f215c522d45189208a1bdf", "firstname": "Greg", "lastname": "Greene", "age": 35, "location": "San Diego, CA", "_revisions": { "start": 1, "ids": [ "f6055e3e09f215c522d45189208a1bdf" ] } }, { "_id": "doc1", "_rev": "1-cce7796c7113c5498b07d8e11d7e0c12", "firstname": "Sally", "lastname": "Brown", "age": 16, "location": "New York City, NY", "_revisions": { "start": 1, "ids": [ "cce7796c7113c5498b07d8e11d7e0c12" ] } }, { "_id": "doc4", "_rev": "1-0923b723c62fe5c15531e0c33e015148", "firstname": "Anna", "lastname": "Greene", "age":44, "location": "Baton Rouge, LA", "_revisions": { "start": 1, "ids": [ "0923b723c62fe5c15531e0c33e015148" ] } }, { "_id": "doc5", "_rev": "1-19f7ecbc68090bc7b3aa4e289e363576", "firstname": "Lois", "lastname": "Brown", "age": 33, "location": "Syracuse, NY", "_revisions": { "start": 1, "ids": [ "19f7ecbc68090bc7b3aa4e289e363576" ] } } ]
Création d'un fichier journal
Un fichier journal enregistre la progression de votre sauvegarde. Dans CouchBackup, utilisez le paramètre --log
pour créer le fichier journal. Vous pouvez également l'employer pour redémarrer une sauvegarde là où elle s'était arrêtée
et spécifier le nom du fichier de sortie.
La commande couchbackup
utilise les paramètres suivants pour spécifier l'option de base de données, de fichier journal et de reprise.
--db
couchbackup-demo
--log
couchbackup-demo.log
--resume
true
-
Exécutez la commande
couchbackup
pour créer un fichier journal.couchbackup --db couchbackup-demo --log couchbackup-demo-backup.log > couchbackup-demo-backup-log.txt
-
Examinez les résultats.
================================================================================ Performing backup on https://****:****@myhost.cloudant.com/couchbackup-demo using configuration: { "bufferSize": 500, "log": "couchbackup-demo-backup.log", "mode": "full", "parallelism": 5 } ================================================================================ Streaming changes to disk: batch 0 [{"_id":"doc2","_rev":"1-2c5ee70689bb75af6f65b0335d1c92f4", "firstname":"John","lastname":"Brown","age":21, "location":"New York City, NY", "_revisions":{"start":1,"ids":["2c5ee70689bb75af6f65b0335d1c92f4"]}}, {"_id":"doc4","_rev":"1-0923b723c62fe5c15531e0c33e015148", "firstname":"Anna","lastname":"Greene","age":44, "location":"Baton Rouge, LA", "_revisions":{"start":1,"ids":["0923b723c62fe5c15531e0c33e015148"]}}, {"_id":"doc1","_rev":"1-cce7796c7113c5498b07d8e11d7e0c12", "firstname":"Sally","lastname":"Brown","age":16, "location":"New York City, NY", "_revisions":{"start":1,"ids":["cce7796c7113c5498b07d8e11d7e0c12"]}}, {"_id":"doc5","_rev":"1-19f7ecbc68090bc7b3aa4e289e363576", "firstname":"Lois","lastname":"Brown","age":33, "location":"Syracuse, NY", "_revisions":{"start":1,"ids":["19f7ecbc68090bc7b3aa4e289e363576"]}}, {"_id":"doc3","_rev":"1-f6055e3e09f215c522d45189208a1bdf", "firstname":"Greg","lastname":"Greene","age":35, "location":"San Diego, CA", "_revisions":{"start":1,"ids":["f6055e3e09f215c522d45189208a1bdf"]}}] couchbackup:backup written 0 docs: 5 Time 0.621 +0ms couchbackup:backup finished { total: 5 } +4ms
-
Ouvrez le fichier journal
couchbackup-demo-backup.log
et examinez les actions qui sont prises lors de la sauvegarde ou de la restauration.:t batch0 [ {"id":"doc1"}, {"id":"doc5"}, {"id":"doc3"}, {"id":"doc4"}, {"id":"doc2"} ] :changes_complete 5-g1AAAAXkeJyl1MFNwzAUBmBDk RAnugEc4Nji2ImTnOgGsAH4-dkqVZoi1J5hA9gANoA NYAPYADaADUqMEYlBIWl7caTI-l7e_-xkhJDusINkD 0FNLvQAIenDuKdUD2XWo7yvsskMZT7t53qaFbvXJYH t-Xw-GnYkGRcvNsM0lRwAydYsR23Oco2-GDWI0C1W2 PFQFCYwKf2N7v-gAWtSd6168K2ufaksoQwD3dbx2wi aClJb8NBvQyVIk6Q-m6a0YWDRIw8NKA85M_Vo2IQe W_TEi0YIGiETLZlFZ3FqC068LqgBpHFQ30Vj3ucWv fRQYTAGwZbPO98oVnJVPAr3uoSTIGYcw3qYt4JvHHx b-WIpIqpwhYPu5Dsn35eyxNRI-c-9bArYwQ8OfqwcFY ghEdCSWib_J1fz2dZcdxcpAh2lpiW1zGheXM3XMsBY CcHonxO68GjenPxeyopyrXW86mg-HFz9NZiQh1FUhUefOhzMIg :d batch0
Restauration à partir d'un fichier texte de sauvegarde
Le fichier couchbackup-demo-backup.txt
vous permet de restaurer vos données dans une nouvelle base de données vide à l'aide de la commande couchrestore
.
La restauration d'une sauvegarde n'est prise en charge que dans le cas d'une restauration dans une base de données vide. Si vous supprimez tous les documents d'une base de données, les enregistrements de suppression des documents sont toujours présents pour assurer une cohérence au niveau de la réplication. Une base de données contenant uniquement des documents supprimés n'est pas considérée comme vide et ne peut donc pas être utilisée comme cible lorsque vous restaurez une sauvegarde.
-
(Prérequis) Créez une nouvelle base de données vide dans laquelle vous pouvez restaurer vos données.
curl "https://username:password@myhost.cloudant.com/couchbackup-demo-restore" -X PUT
-
Exécutez la commande
couchrestore
.cat couchbackup-demo-backup.txt | couchrestore --db couchbackup-demo-restore
-
Examinez les résultats.
================================================================================ Performing restore on https://****:****@myhost.cloudant.com/couchbackup-demo-restore using configuration: { "bufferSize": 500, "parallelism": 5 } ================================================================================ couchbackup:restore restored 5 +0ms couchbackup:restore finished { total: 5 } +1ms
Vous avez effectué la sauvegarde et la restauration d'une base de données et créé un fichier journal. Pour plus d'informations, voir Reprise après incident et sauvegarde, Configuration d'IBM Cloudant pour la reprise après incident interrégionale et Sauvegarde et reprise d'IBM Cloudant.