复制不适用于包含音频/视频文件的CouchDB数据库

时间:2017-06-02 16:34:59

标签: couchdb database-replication

我们使用CouchDB 2.0存储文件(.txt,.doc,.xls,.pdf,.mp3,.mp4,.zip)。文件从我们的Web应用程序上传并存储在CouchDB上。正在上载的文件的最大上载大小为500 MB。

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

以下curl命令适用于复制数据库:

curl -H "Content-Type: application/json" -X POST "http://localhost:5984/_replicate" -d {"source":"http://user:password@targetIP:5984/dbname","target":"sampledb","continuous":true} 

上述命令适用于复制具有文本文件附件的所有文档的数据库。但是对于包含带有视频或音频或pdf文件作为附件的文档的数据库,它不起作用。

以下是有关此问题的详细信息 - 如果在CouchDB上上传了最大500MB大小的文本文件,则会以压缩大小存储小于500MB的文件。如果CouchDB只存储了文本文件,那么复制可以正常运行而不会出现任何问题。但是如果在CouchDB上上传任何媒体文件,pdf或zip文件,它将被存储但没有任何压缩,并且具有这些文件的CouchDB不能成功复制。这通常发生在上传超过5mb的媒体文件时。

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

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

任何帮助都非常明显。

感谢你,

Jaqen H' ghar

2 个答案:

答案 0 :(得分:2)

通过在couchDB的local.ini设置文件中添加以下选项可以解决此问题。此文件位于CouchDB \ etc。

位置

[织物] request_timeout =无穷大

答案 1 :(得分:0)

如果要进行备份,只需停止一个CouchDB节点(假设它是群集的)并创建数据库目录的副本。因此database_dir指向local.ini文件的任何地方。

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