Couchbase社区服务器从CE5.1.1 / CE6.0.0升级到CE6.5.1失败

时间:2020-08-28 08:34:19

标签: docker upgrade couchbase

我正在带有官方docker映像的benchbase服务器CE5.1.1(社区版)下运行一个单节点开发系统。我现在想升级到CE6.5.1。按照升级指南,我首先升级到CE6.0.0,然后又升级到CE6.5.1。我确实通过关闭容器,再次更改容器版本和启动容器来升级单个节点。

从CE5.1.1到CE6.0.0的第一步工作正常,所有现有的存储桶都已迁移。但是启动CE6.5.1映像后,从CE6.0.0到CE6.5.1的第二步在预热时失败。 babysitter.log中的消息显示:

memcached<0.114.0>: 2020-06-27T13:00:56.812806+00:00 CRITICAL () Warmup::createVBuckets aborting warmup as vb:2 datafile is unusable, name-spacing is not enabled.

所有存储桶多次。我看了看kvengine的源代码,只发现了一条注释,即集合和repl需要“命名空间”作为vBucket中的属性。

那么有什么办法可以在保留现有存储桶的同时升级到CE6.5.1?如何在CE5.1.1或CE6.0.0的存储桶中添加“命名空间”?还是我必须对CE6.0.0进行完整备份并对CE6.5.1进行还原?

1 个答案:

答案 0 :(得分:0)

详细研究了这个问题之后,我终于找到了解决方案:

关闭数据库容器并备份数据:slight_smile:

使用新的6.5.1 CE Docker映像启动数据库。 数据库将不会启动,因为有一个名为“命名空间”的新事物,需要在您的数据中进行更新。因此,我们手动执行此操作。

将docker插入运行容器 docker exec -it bash

使用以下命令停止正在运行的实例 / opt / couchbase / bin / install / systemd-ctl停止

使用以下命令启动更新过程 / opt / couchbase / bin / cbupgrade -c / opt / couchbase / var / lib / couchbase / config / 这将以交互方式启动更新。只需回答“是”,更新就会运行。

升级完成后,退出外壳并使用以下命令重新启动容器 docker restart

数据库服务器现在可以正常启动,并且应该照常进行预热。