Frage

Wir suchen auf CouchdDB für eine CMS-ish Anwendung. Was sind einige gemeinsame Muster, Best Practices und Workflow-Beratung unserer Produktionsdatenbank rund um die Sicherung?

Ich interessiere mich besonders für das Verfahren zur Verwendung in der Entwicklung und Tests, um die Datenbank des Klonens.

Ist es ausreichend, kopieren Sie einfach die Dateien auf der Festplatte aus unter einem Live laufenden Instanz? Können Sie Datenbankdaten zwischen zwei Live laufenden Instanzen klonen?

Beratung und Beschreibung der Techniken, die Sie sehr geschätzt verwenden wird.

War es hilfreich?

Lösung

CouchDB unterstützt die Replikation, so replizieren nur auf eine andere Instanz von CouchDB und Sicherung von dort, die Vermeidung störender, wo Sie Änderungen zu schreiben.

http://wiki.apache.org/couchdb/FrequentlyAskedQuestions#how_replication

Sie buchstäblich eine POST-Anfrage an Ihrer CouchDB-Instanz sendet es zu sagen, wo zu replizieren, und es funktioniert (tm)

EDIT:. Sie können nur die Dateien unter der laufenden Datenbank cp aus, solange Sie den I / O-Hit akzeptieren

Andere Tipps

Eine andere Sache zu beachten ist, dass Sie Dateien aus unter einer Live-Datenbank kopieren. Vorausgesetzt, dass Sie eine möglicherweise große Datenbank haben, können Sie kopieren es nur OOB von Ihrem Test / Produktionsmaschine auf eine andere Maschine.

In Abhängigkeit von der Schreiblast der Maschinen kann es ratsam sein, eine Replikation nach der Kopie auslösen alle Schreibvorgänge zu sammeln, die im Gang waren, wenn die Datei kopiert wurde. Aber die Replikation von wenigen Aufzeichnungen würden noch schneller sein als die gesamte Datenbank-Replikation.

Als Referenz finden Sie unter: http://wiki.apache.org/couchdb/FilesystemBackups

CouchDB funktioniert auch sehr gut mit Dateisystem-Snapshots von modernen Dateisystemen wie ZFS . Da die Datenbankdatei von CouchDB immer in einem konsistenten Zustand ist, können Sie die Integrität garantiert jederzeit die Momentaufnahme der Datei nehmen zur Verfügung gestellt, ohne zu schwächen.

Dies führt zu fast ohne I / O-Overhead. Falls Sie zum Beispiel versehentlich gelöscht, ein Dokument aus der Datenbank können Sie den Schnappschuss auf einem anderen Rechner verschieben und die fehlenden Daten dort extrahieren. Man könnte sogar in der Lage sein, wieder in die Produktionsdatenbank zu replizieren, aber ich habe nie versucht.

Aber immer sicherstellen, dass Sie verwenden genau die gleichen couchdb Revisionen, wenn sie um Datenbankdateien verschieben. Das On-Disk-Format ist immer noch in inkompatiblen Weise weiterentwickelt.

Ich mag an zweiter Stelle zu Pauls Vorschlag: Sie Ihre Datenbankdateien unter dem Live-Server cp, wenn Sie den I / O-Last Hit nehmen. Wenn Sie eine replizierte Kopie trotzdem ausführen, können Sie sicher von diesem kopieren, ohne die Master-Leistung zu beeinträchtigen.

CouchDB-Replikation ist schrecklich. Ich mache im Allgemeinen tar das ist viel besser.

  1. Stoppen Sie den CouchDB-Dienst auf der Quell-Host
  2. tar.gz die Datendateien.
  3. Auf meinem Ubuntu-Server dies ist in der Regel im Verzeichnis / var / lib / couchdb (manchmal in einem Unterverzeichnis auf der Couch Version basiert). Wenn Sie nicht sicher sind, wo diese Dateien vorhanden sind, können Sie den Pfad in Ihren CouchDB Konfigurationsdateien zu finden, oder oft durch ein ps -A tun w den vollständigen Befehl, um zu sehen, die CouchDB gestartet. Stellen Sie sicher, dass Sie die Unterverzeichnisse erhalten, die mit . starten, wenn Sie die Dateien archiviert werden.
  4. Starten Sie den couchdb Dienst auf der Quell-Host.
  5. scp die tar.gz-Datei auf dem Zielhost und entpacken Sie sie in einem temporären Speicherort gibt.
  6. chown die Dateien auf den Benutzer und die Gruppe, die die Dateien bereits in dem Datenbank-Verzeichnis auf dem Ziel besitzt. Dies ist wahrscheinlich couchdb: couchdb. Dies ist wichtig, da die Dateiberechtigungen vermasselt ist die einzige Art, wie ich diesen Prozess zu vermasseln bisher geschaffen habe.
  7. Stop CouchDB auf dem Zielhost.
  8. cp die Dateien in das Zielverzeichnis. Wieder auf meinem Rechner dies wurde / var / lib / couchdb.
  9. Doppel der Dateiberechtigungen in ihrer neuen Heimat überprüfen.
  10. Starten Sie CouchDB auf dem Zielhost.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top