2017-06-02 1 views
2

Wir benutzen CouchDB 2.0 um Dateien zu speichern (.txt, .doc, .xls, .pdf, .mp3, .mp4, .zip). Dateien werden von unserer Webanwendung auf CouchDB hochgeladen und gespeichert. Die maximale Uploadgröße für eine hochgeladene Datei beträgt 500 MB.Replikation funktioniert nicht in CouchDB Datenbank mit Audio/Video Dateien

Wir möchten CouchDB regelmäßig vom Produktionsserver zum Backup-Server sichern, auf dem CouchDB installiert ist. Wir verwenden Replikationstechnik, die von CouchDB unterstützt wird, um die Daten zu sichern.

Nach curl Befehl funktioniert für Datenbank zu replizieren:

curl -H "Content-Type: application/json" -X POST "http://localhost:5984/_replicate" -d {"source":"http://user:[email protected]:5984/dbname","target":"sampledb","continuous":true} 

Obiger Befehl funktioniert gut für die Datenbank zu replizieren, die alle Dokumente mit Text Dateianlagen hat. Aber es funktioniert nicht für Datenbanken, die Dokumente mit Video- oder Audio- oder PDF-Dateien als Anhänge haben.

Hier sind Details zu diesem Problem - Wenn eine Textdatei bis 500MB Größe auf CouchDB hochgeladen wird, wird es mit komprimierter Größe viel weniger als 500MB gespeichert. Und wenn in CouchDB nur Textdateien gespeichert sind, funktioniert die Replikation ohne Probleme. Wenn jedoch eine Mediendatei, eine PDF-Datei oder eine Zip-Datei auf CouchDB hochgeladen wird, wird sie ohne Komprimierung gespeichert und CouchDB mit diesen Dateien wird nicht erfolgreich repliziert. Dies tritt normalerweise auf, wenn Mediendateien mit mehr als 5 MB hochgeladen werden.

Als eine Arbeit haben wir video/* in compressible_types Option von default.ini-Datei hinzugefügt. Die replizierte Datenbank mit Dokumenten mit Medienanhang funktioniert jedoch nicht.

Weiß jemand, wie man CouchDB in einem solchen Fall repliziert?

Jede Hilfe ist wirklich bemerkenswert.

Sie deinnkening,

Jaqen H'ghar

Antwort

1

Dieses Problem wird durch das Hinzufügen folgende Option in local.ini Einstellungsdatei für CouchDB gelöst. Diese Datei ist am Speicherort CouchDB \ etc vorhanden.

[Gewebe] request_timeout = unendlich

0

Wenn Sie ein Backup machen möchten Sie einfach ein CouchDB Knoten stoppen können und erstellen Sie eine Kopie der Datenbankverzeichnis (es ist gruppierten vorausgesetzt). Also wo auch immer database_dir Punkte in local.ini Datei.

Dies ist am besten geeignet, um eine Sicherung eines Knotens für die Wiederherstellung eines Knotens zu erstellen. Daher sollte jeder Knoten sein eigenes Backup haben.

Verwandte Themen