复制不适用于包含 audio/video 个文件的 CouchDB 数据库

Replication not working for CouchDB database containing audio/video files

我们使用 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 文件作为附件的文档的数据库。

以下是有关此问题的详细信息 - 如果将大小高达 500MB 的文本文件上传到 CouchDB,则它会以远小于 500MB 的压缩大小存储。如果 CouchDB 只存储了文本文件,那么复制就不会出现任何问题。但是,如果任何媒体文件、pdf 或 zip 文件上传到 CouchDB,它会被存储但没有任何压缩,并且包含这些文件的 CouchDB 无法成功复制。当上传超过 5mb 的媒体文件时,通常会发生这种情况。

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

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

非常感谢任何帮助。

谢谢你,

贾昆·赫加尔

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

位置

[面料] request_timeout = 无限

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

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