我使用下面的命令从Couchbase 5.5集群中备份了数据。
$ cbbackup http://couchbase:8091 ~/cbbackup -u *** -p ***
然后,我复制了 ~/cbbackup
我有一个新的Couchbase 6.5集群,我想把数据迁移到这个集群上。~/cbbackup
到新的集群中。
然而,当我试图在Couchbase 6.5集群中还原它时,就会发生这种情况。
$ cbrestore ~/cbbackup http://couchbase:8091 -u *** -p ***
2020-05-23 14:11:47,209: s0 error: async operation: error: conn.sendall() exception: [Errno 104] Connection reset by peer on sink: http://couchbase:8091(b'default'@b'couchbase-0001.couchbase.couchbase.svc:8091')
2020-05-23 14:11:47,221: s2 error: async operation: error: conn.sendall() exception: [Errno 104] Connection reset by peer on sink: http://couchbase:8091(b'default'@b'couchbase-0003.couchbase.couchbase.svc:8091')
2020-05-23 14:11:47,226: s1 error: async operation: error: conn.sendall() exception: [Errno 104] Connection reset by peer on sink: http://couchbase:8091(b'default'@b'couchbase-0002.couchbase.couchbase.svc:8091')
error: conn.sendall() exception: [Errno 104] Connection reset by peer
如何将Couchbase 5.5中的备份还原到Couchbase 6.5集群中?
幸运的是,我知道你需要什么!
根据 本图 的版本兼容性,Couchbase 6.5应该可以从一直恢复到Couchbase 5.0的备份。
不过失败的原因,我不清楚。根据 这条 在Couchbase论坛上,可能是由于处理xattrs的一些问题。[MB-31224] 由Sync Gateway制作;但我又不确定。
然而,经过多次试验和错误,对我来说有效的方法是使用 cbbackup
从6.5开始对5.5集群进行备份。那么它就不是 cbbackup
从5.5和 cbrestore
从6.5开始,而是都从6.5开始。而且它成功了!
我的设置是在Kubernetes中运行的,所以我做了这样的事情。
$ kubectl run -i -t couchbase-migrate --image=couchbase/server:6.5.1 --restart=Never --rm=true --command -- /bin/bash
root@couchbase-migrate:/# cbbackup http://couchbase:8091 ~/cbbackup -u *** -p ***
...
然后我把备份从 couchbase-migrate
pod和到我的本地机器。
之后,我也同样进行了还原。
$ kubectl run -i -t couchbase-migrate --image=couchbase/server:6.5.1 --restart=Never --rm=true --command -- /bin/bash
...
root@couchbase-migrate:/# cbrestore ~/cbbackup http://couchbase:8091 -u *** -p ***
...