java - Couchbase 1 -> 2 迁移。备份获取及一致性检查

标签 java web-applications couchbase database-migration database-backups

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

现在,我们正在迁移到 Couchbase 2+。 cbbackup 失败并出现类似的情况(对我来说毫无意义,Couchbase 1 中没有任何设计文档):

/pools/default/buckets/default/ddocs; reason: provide_design done

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

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

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

我感谢任何帮助,这对团队来说是一个模糊的遗留基础设施,谷歌搜索和 Couchbase 文档对我们没有多大帮助。

最佳答案

Question 1: Any insights and help with the whole spoiled backups' situation?

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

Couchbase 2 的主要变化之一是转向自定义的仅追加文件格式 (couchstore),这种格式更不容易受到任何损坏问题的影响(因为一旦写入 block 就永远不会被修改),直到新的压缩文件稍后由自动化作业创建。

How, at least, we could assure a consistency of the new database backups in our case? (Writing a huge check pack for all docs and fields through the client is very expensive and the last option.)

如果您想检查备份的一致性,您需要按照您提到的方式执行一些操作。

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

最后,我建议查看 1.8.x to 2.0 Upgrade Guide在 Couchbase 网站上。请注意,2.x 现在已经相当老了(截至撰写本文时 3.x 是当前版本,4.0 处于测试阶段),因此 2.0 文档位于网站的存档部分中。

关于java - Couchbase 1 -> 2 迁移。备份获取及一致性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115220/

相关文章:

python - 基于Python的Web可视化编程接口(interface),用于数据可视化

php - 将我的 Codeigniter 站点从实时服务器移动到本地主机时出现问题

couchbase - 我可以在 couchbase 中为 2 个存储桶创建相同的索引吗?

java - 尝试将字符串写入 Android 应用程序上的文件,打开时崩溃

java - Json 解析器 - 需要跳过几个字符并解析 - java

html - 构建整页 Web 应用程序

multithreading - Spring data Couchbase生成的查询方法不是线程安全的

nosql - Couchbase startkey 作为文字值

java - Chromium - 在 Android Studio 中构建 Chome_public_apk 时出错

java - 我可以在不安装 Ask 工具栏的情况下静默安装 Java JRE 吗?