2017-06-02 76 views
2

我们使用CouchDB 2.0来存储文件(.txt,.doc,.xls,.pdf,.mp3,.mp4,.zip)。文件上传并存储在我们的Web应用程序的CouchDB中。上传文件的最大上传大小为500 MB。复制不适用于包含音频/视频文件的CouchDB数据库

我们希望定期将CouchDB从生产服务器备份到安装了CouchDB的备份服务器计算机。我们使用CouchDB支持的复制技术来备份数据。用于复制数据库

继curl命令作品:

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

上面的命令行之有效的复制具有与文本文件附件中的所有文档数据库。但它不适用于具有视频或音频或PDF文件作为附件的文档的数据库。

以下是有关此问题的详细信息 - 如果CouchDB上传的文件大小高达500MB,则它会以小于500MB的压缩大小进行存储。如果CouchDB只有文本文件存储,复制工作正常,没有任何问题。但是,如果任何媒体文件,pdf或zip文件上传到CouchDB,它将被存储但没有任何压缩,并且带有这些文件的CouchDB不能成功复制。上传超过5MB的媒体文件时,通常会发生这种情况。

作为解决方法,我们在default.ini文件中添加了compressible_types选项中的视频/ *。但仍然复制数据库与文件有媒体附件不起作用。

有没有人知道如何在这种情况下复制CouchDB?

任何帮助真的很明显。

感谢你,

Jaqen H'ghar

回答

1

此问题是由添加在CouchDB的local.ini设置文件下列选项来解决。该文件位于CouchDB \ etc位置。

[面料] request_timeout =无穷大

0

如果你想要做一个备份,你可以简单地停止一个CouchDB的节点(假设它的集群),并创建数据库目录的副本。所以database_dir指向local.ini文件。

这最适合创建一个节点的备份以恢复一个节点。所以每个节点都应该有自己的备份。