Nous examinons CouchDDB pour une application CMS-ISH. Quels sont les modèles courants, les meilleures pratiques et les conseils de flux de travail sur la sauvegarde de notre base de données de production?
Je suis particulièrement intéressé par le processus de clonage de la base de données à utiliser dans le développement et les tests.
Est-il suffisant de simplement copier les fichiers sur le disque de sous une instance d'exécution en direct? Pouvez-vous cloner des données de base de données entre deux instances d'exécution en direct?
Des conseils et description des techniques que vous utilisez seront grandement appréciées.
CouchDB prend en charge la réplication, alors répliquez simplement à une autre instance de Couchdb et de sauvegarde à partir de là, évitant de déranger l'endroit où vous écrivez des modifications.
http://wiki.apache.org/couchdb/frequenteraskedquestions#how_replication
Vous envoyez littéralement un POST Demande à votre instance CouchDB lui indiquant où se répliquer et fonctionne (TM)
Edit: Vous pouvez simplement céder les fichiers sous la base de données d'exécution tant que vous pouvez accepter les E/S HIT.
Une autre chose à conscience est que vous pouvez copier des fichiers de sous une base de données en direct. Étant donné que vous pouvez avoir une base de données éventuellement importante, vous pouvez simplement le copier OOB de votre machine de test/production à une autre machine.
Selon la charge d'écriture des machines, il peut être conseillé de déclencher une réplication après la collecte des écrivies qui étions en cours lorsque le fichier a été copié. Mais la réplication de quelques enregistrements serait toujours plus rapide que la réplication de l'ensemble de la base de données.
Pour référence, voir: http://wiki.apache.org/couchdb/filesystembackup
J'aimerais que la suggestion de Paul de Paul: juste cp
Vos fichiers de base de données de sous le serveur en direct Si vous pouvez prendre le HIT I/O-CHARD. Si vous exécutez une copie répliquée de toute façon, vous pouvez copier en toute sécurité de cela aussi, sans avoir un impact sur la performance de votre maîtrise.
Couchdb fonctionne également très bien avec des instantanés de système de fichiers proposés par des systèmes de fichiers modernes tels que ZFS . Étant donné que le fichier de base de données est toujours dans un état cohérent, vous pouvez prendre l'instantané du fichier à tout moment sans affaiblir les garanties d'intégrité fournies par CouchDB.
Cela se traduit par presque pas d'i/O sur le dessus. Au cas où vous auriez E.G. a accidentellement supprimé un document de la base de données que vous pouvez déplacer l'instantané sur une autre machine et extraire les données manquantes là-bas. Vous pourriez même être capable de reproduire la base de données de production, mais je n'ai jamais essayé cela.
Mais assurez-vous toujours que vous utilisez exactement les mêmes révisions CouchDB lors de la déplacement des fichiers de base de données. Le format sur disque évolue toujours de manière incompatible.
La réplication CouchDB est horrible. Je fais généralement goudron ce qui est beaucoup mieux.
.
Lorsque vous archivez les fichiers.scp
le fichier tar.gz à l'hôte de destination et décompressez-les dans un emplacement temporaire.chown
Les fichiers à l'utilisateur et groupe qui possèdent les fichiers déjà dans le répertoire de la base de données de la destination. Ceci est probable COUCHDB: COUCHDB. Ceci est important, car de gâcher les autorisations de fichier est la seule façon dont j'ai réussi à gâcher ce processus jusqu'à présent.cp
les fichiers dans le répertoire de destination. Encore une fois sur mes hôtes, cela a été/var/lib/couchdb.