我们使用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
答案 0 :(得分:2)
通过在couchDB的local.ini设置文件中添加以下选项可以解决此问题。此文件位于CouchDB \ etc。
位置[织物] request_timeout =无穷大
答案 1 :(得分:0)
如果要进行备份,只需停止一个CouchDB节点(假设它是群集的)并创建数据库目录的副本。因此database_dir
指向local.ini
文件的任何地方。
这最适合创建一个节点的备份以恢复一个节点。所以每个节点都应该有自己的备份。