Nous sommes à la recherche à CouchdDB pour un CMS-ish application. Quels sont certains des modèles communs, les meilleures pratiques et les flux de travail des conseils entourant 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 pour une utilisation dans le développement et les tests.
Est-il suffisant de simplement copier les fichiers sur le disque sous un live instance en cours d'exécution? Pouvez-vous clone données de base de données entre les deux instances en cours d'exécution?
Des conseils et une description des techniques que vous utilisez sera grandement apprécié.
Réponses
Trop de publicités?Une autre chose à prendre en compte est que vous pouvez copier des fichiers de la vertu d'une base de données. Étant donné que vous pouvez avoir une grande base de données, vous pouvez simplement copier OOB de votre test/production machine à l'autre.
Selon l'écriture, à la charge de la machine, il peut être conseillé de déclencher une réplication d'après la copie de rassembler toutes les écritures qui ont été en cours lorsque le fichier a été copié. Mais la réplication de quelques enregistrements serait encore plus rapide que la réplication de la base de données entière.
Pour référence, voir: http://wiki.apache.org/couchdb/FilesystemBackups
CouchDB prend en charge la réplication, il suffit donc de répliquer à une autre instance de CouchDB et de sauvegarde à partir de là, éviter de perturber où vous écrire les changements sur le.
http://wiki.apache.org/couchdb/FrequentlyAskedQuestions#how_replication
Vous avez littéralement envoyer une requête POST à votre instance de CouchDB dire où à reproduire à, et ça marche(tm)
EDIT: Vous pouvez simplement cp les fichiers de sous la base de données aussi longtemps que vous pouvez accepter les I/O hit.
J'aimerais deuxième Paul suggestion: juste cp
vos fichiers de base de données sous le serveur live si vous pouvez prendre l'i/o-charge de frapper. Si vous exécutez une copie répliquée de toute façon, vous pouvez en toute sécurité copie de cette trop, sans impact sur votre maîtrise de la performance.
CouchDB fonctionne aussi très bien avec le système de fichiers instantanés offerd par les systèmes de fichiers modernes comme ZFS. Depuis 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 l'intégrité des garanties fournies par couchdb.
Il en résulte presque pas d'e/s. Dans le cas où vous avez par exemple acidentially supprimé un document à partir de la base de données, vous pouvez déplacer l'instantané d'une autre machine et extracty les données manquantes là. Vous pourriez même être en mesure de reproduire de retour à la base de données de production, mais je n'ai jamais essayé.
Mais assurez-vous toujours que vous utilisez exactement le même couchdb révisions lors du déplacement de la base de données des fichiers. Le format du disque est encore en évolution incompatibles façons.