CouchDB备份和克隆数据库

时间:2020-03-06 14:36:15  来源:igfitidea点击:

我们正在为CMS-ish应用程序寻找CouchdDB。备份生产数据库有哪些常见的模式,最佳实践和工作流建议?

我对克隆数据库以供开发和测试使用的过程特别感兴趣。

仅从正在运行的实例下复制磁盘上的文件就足够了吗?我们可以在两个实时运行的实例之间克隆数据库数据吗?

我们所使用的技术的建议和描述将不胜感激。

解决方案

CouchDB支持复制,因此只需复制到CouchDB的另一个实例并从那里备份,就可以避免打扰我们将更改写入何处。

http://wiki.apache.org/couchdb/FrequentlyAskedQuestions#how_replication

我们从字面上发送POST请求到CouchDB实例,告诉它要复制到哪里,并且它可以工作(tm)

编辑:只要我们可以接受I / O命中,就可以从正在运行的数据库下cp文件。

要注意的另一件事是,我们可以从实时数据库下复制文件。假设我们可能有一个大型数据库,则可以将其OOB从测试/生产计算机复制到另一台计算机。

根据计算机的写入负载,建议在复制后触发复制以收集复制文件时正在进行的所有写入。但是复制几条记录仍然比复制整个数据库快。

有关参考,请参见:http://wiki.apache.org/couchdb/FilesystemBackups

我想听听Paul的建议:如果可以承受I / O负载,只需从实时服务器下" cp"数据库​​文件即可。如果仍然运行复制副本,则也可以从中安全地复制副本,而不会影响主数据库的性能。

CouchDB还可以与ZFS等现代文件系统提供的文件系统快照很好地配合使用。由于数据库文件始终处于一致状态,因此我们可以随时获取文件快照,而不会削弱CouchDB提供的完整性保证。

这样几乎没有I / O开销。如果我们有不小心从数据库中删除了一个文档,我们可以将快照移到另一台计算机上,并从中提取丢失的数据。我们甚至可以将其复制回生产数据库,但我从未尝试过。

但是在移动数据库文件时,请始终确保使用完全相同的沙发数据库修订版。磁盘格式仍在以不兼容的方式发展。