Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 沙发床1->;2移徙。备份和一致性检查_Java_Web Applications_Couchbase_Database Migration_Database Backups - Fatal编程技术网

Java 沙发床1->;2移徙。备份和一致性检查

Java 沙发床1->;2移徙。备份和一致性检查,java,web-applications,couchbase,database-migration,database-backups,Java,Web Applications,Couchbase,Database Migration,Database Backups,给定:使用Couchbase 1的旧Java项目。运行时备份有一个大问题。简单的复制文件和cbbackup方法都不起作用。获取的备份已损坏,Couchbase无法启动它们。获取数据快照的唯一方法是较长时间的应用程序关闭 现在,我们要迁移到Couchbase 2+cbbackup失败的原因如下(对我来说,这是一条毫无意义的消息,Couchbase 1中没有任何设计文档): /池/默认/桶/默认/DDOC;原因:提供已完成的设计 但是,如果我们使用生成的文件,Couchbase似乎会醒来并正常工作

给定:使用Couchbase 1的旧Java项目。运行时备份有一个大问题。简单的复制文件和cbbackup方法都不起作用。获取的备份已损坏,Couchbase无法启动它们。获取数据快照的唯一方法是较长时间的应用程序关闭

现在,我们要迁移到Couchbase 2+
cbbackup
失败的原因如下(对我来说,这是一条毫无意义的消息,Couchbase 1中没有任何设计文档):

/池/默认/桶/默认/DDOC;原因:提供已完成的设计

但是,如果我们使用生成的文件,Couchbase似乎会醒来并正常工作

问题1:对于整个损坏备份的情况,有什么见解和帮助吗

问题2:在我们的案例中,我们至少如何确保新数据库备份的一致性? (通过客户端为所有文档和字段编写一个庞大的检查包是非常昂贵的,也是最后一个选择。)

我感谢任何帮助,这是一个模糊的遗留基础设施的团队,谷歌和Couchbase文件没有帮助我们太多

问题1:对于整个损坏备份的情况,您有什么见解和帮助吗

Couchbase 1.x使用SQlite作为磁盘格式(每个Bucket IIRC共享4个文件),这在规模上有很多问题

Couchbase 2的一个主要变化是采用了一种自定义的仅附加文件格式(couchstore),这种格式不易受到任何损坏问题的影响(因为一旦写入块,就永远不会修改),直到后来通过自动化作业创建了一个新的压缩文件

至少,在我们的案例中,我们如何确保新数据库备份的一致性?(通过客户端为所有文档和字段编写一个庞大的检查包是非常昂贵的,也是最后一个选择。)


如果您想检查备份的一致性,您需要按照您提到的内容做一些事情

但是请注意,如果您正在备份一个实时系统(大多数人都是这样),那么在进行备份和比较时,实时系统可能会发生变化


最后,我建议大家看看Couchbase网站上的。请注意,2.x现在已经很老了(3.x在编写时是最新版本,4.0是beta版),因此2.0文档位于网站的存档部分。

谢谢。请你翻译一下这些文件好吗;原因:是否完成了设计?这真的不是一个错误,只是来自“pump_tap.py”的一条消息,但它总是在cbbackup失败(即使在详细模式下也没有解释)后出现。“如果你想检查一致性…”我希望,在这个数据库中存在一些内置诊断,如mysql、psql,甚至在设置备份时的SQLite中,可能需要检查所有文档或字段是否可读,或者生成的JSON是否为有效的JSON,或者类似的内容。手动我们应该只检查我们的限制,因为基地不知道这个广告,他们是由应用程序管理的。