When reading the Couchbase server documentation as well as topics on this forum, there seems to be some confusion regarding how to best transfer data (a complete bucket) from one environment to another. My setup in this case is as follows:
Couchbase version: 5.0.1 community edition
Source: a Couchbase server cluster
Target: a different Couchbase server cluster
By ‘different’, I mean that the source and target clusters are located in different networks. The number of nodes in the clusters might not be identical. The bucket names are most likely identical, but might not be.
As I understand it, these are my options:
- cbexport and cbimport
These tools seems to be made for this exact purpose, but as far as I understand it, they are not available in community edition (as also indicated in Cbimport missing from Community Edition).
I could also probably use XDCR to transfer the bucket, but it’s not really a replication I’m after, but a complete replacement of the bucket. In which case ‘clear bucket’ + ‘XDCR’ could be used, I guess.
While the description of the cbtransfer tool is not really clear on what it can and cannot be used for (see https://developer.couchbase.com/documentation/server/5.0/cli/cbtransfer-tool.html), I’ve successfully used it to transfer a bucket from a cluster install in AWS to my local development installation (single node). Seems to work fine.
- cbbackup and cbrestore
As far as I understand these tools from the documentation (https://developer.couchbase.com/documentation/server/5.1/backup-restore/backup-restore.html), I should be able to use these for this purpose, correct? The page actually says “The cbbackup tool enables you to backup a single node, single buckets, or the entire cluster into a flexible backup structure. The cbrestore tool restores data into the same or different clusters and buckets.”.
Have I missed anything? I’m hearing from other places that only enterprise edition contains good tools for this, but the above options seems like they should all work?