鉴于:使用Couchbase的旧Java项目1.运行时备份存在很大问题。两者,简单的复制文件和cbbackup方式都不起作用。获得的备份已损坏,Couchbase无法启动它们。获取数据快照的唯一方法是相对较长的应用程序关闭。
现在,我们正在迁移到Couchbase 2+。 cbbackup
失败了这样的事情(对我来说毫无意义的消息,Couchbase 1中没有任何设计文档):
/池/默认/桶/默认/ ddocs;原因:provide_design完成
但是,如果我们使用生成的文件,Couchbase似乎醒来并正常工作。
问题1:有关整个被破坏的备份情况的任何见解和帮助吗?
问题2:在我们的案例中,至少如何确保新数据库备份的一致性? (通过客户端为所有文档和字段编写一个巨大的检查包是非常昂贵的,也是最后一个选项。)
我感谢任何帮助,这对团队来说是一个模糊的遗留基础设施,谷歌搜索和Couchbase文档对我们没有多大帮助。
答案 0 :(得分:1)
问题1:有关整个被破坏的备份情况的任何见解和帮助吗?
Couchbase 1.x使用SQlite作为磁盘格式(每个Bucket IIRC共享4个文件),这有很多大问题。
Couchbase 2的一个主要变化是转移到自定义仅附加文件格式(couchstore),它更不容易受到任何损坏问题的影响(因为一旦写入块永远不会被修改),直到新的压缩稍后由自动作业创建文件。
至少,在我们的案例中,我们如何确保新数据库备份的一致性? (通过客户端为所有文档和字段编写一个巨大的支票包是非常昂贵的,也是最后一个选项。)
如果你想检查备份的一致性,你需要按照你提到的内容做一些事情。
但请注意,如果您要备份实时系统(与大多数人一样),那么实时系统可能会在备份和比较之间发生变化。
最后,我建议查看Couchbase网站上的1.8.x to 2.0 Upgrade Guide。请注意2.x现在已经很老了(3.x是写作时的最新版本,4.0是测试版)因此2.0文档位于网站的存档部分。