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



我们正在使用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仅存储文本文件,则复制效果很好,没有任何问题。但是,如果将任何媒体文件,PDF或ZIP文件上传到CouchDB上,则将存储但没有任何压缩,并且使用这些文件的CouchDB不会成功复制。当上传超过5MB的媒体文件时,通常会发生这种情况。

作为解决方案,我们在 compressible_types 中添加了视频/*来自default.ini文件的选项。但是,仍在使用具有媒体附件的文档复制DB不起作用。

有人知道如何在这种情况下复制couchdb吗?

任何帮助真的很明显。

谢谢你,

jaqen h'ghar

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

[织物]request_timeout = infinity

如果要进行备份,则只需停止一个couchdb节点(假设其群集(并创建数据库目录的副本。因此,无论 database_dirlocal.ini文件中指向任何地方。

这最适合创建一个节点的备份,用于还原一个节点。因此,每个节点都应该有自己的备份。

最新更新