0

我有一个生产服务器运行一个使用 CouchDB 作为其主数据库的应用程序。我想设置一个具有 CouchDB 实例的登台服务器,我可以始终同步备份到生产实例并获得一个干净的副本。

一个简单的解决方案是让登台服务器不断复制生产服务器的数据库,然后使用它。问题当然是在登台服务器上测试的过程中,我可能会做一些修改数据库的事情。

功能上正确的是我每次都删除数据库并从生产中重新复制;但显然,如果我每次都必须从头开始,这将需要很长时间。

我正在寻找类似的解决方案:1)在登台服务器上保留生产数据库的原始副本,不断重新索引其视图 2)将所有数据库文件(包括索引)复制到名为其他名称的数据库中 3)使用完成后将其吹走。

有没有人尝试过这样的事情,复制 db 文件并重命名它们是否工作顺利?如果是这样,哪些文件需要复制和不需要复制?

4

1 回答 1

2

你的方法是我推荐的。将数据库和索引文件复制到新名称可以按预期工作。

检查/_config/couchdb您的值database_dirview_index_dir然后

cd $database_dir
cp live_replica.couch local_copy_to_mess_with.couch

cd $view_index_dir # most likely the same dir
cp -r .live_replica_design .local_copy_to_mess_with_design

确保以这些目录中所有其他文件的所有者身份运行这些命令,例如couchbase,否则 couchdb 将无权使用您创建的文件。您可以使用 . 检查正确的所有者和组ls -alR

于 2011-08-01T18:38:30.633 回答