文章目录
  1. 1. 方案1:备份与恢复
    1. 1.0.1. cbback
      1. 1.0.1.0.1. cbbackup 命令参数选项:
      2. 1.0.1.0.2. 下面提供一些不同数据组合的例子:
  2. 1.0.2. cbrestore
    1. 1.0.2.0.1. cbrestore 命令参数选项
  • 1.0.3. 增量备份(亲测未达到预期)
  • 2. 方案2:XDCR跨集群复制
  • 今日碰到需要迁移couchbase数据的需求,做了相关调研,记录如下:

    方案1:备份与恢复

    cbback

    cbbackup 工具 是一个灵活的备份命令,使您可以备份本地数据和远程节点和涉及您的集群数据的不同组合:
    单节点单buckets
    单节点上所有buckets
    整个群集上单个buckets
    整个群集上所有buckets

    cbbackup 命令参数选项:
    1
    cbbackup [options] [source] [backup_dir]

    Options:用来配置连接群集的用户和密码信息,备份类型和bucket 选项

    • –single-node:备份单节点
    • –bucket-source or -b:备份特定名称的 bucket

    Source:本地数据目录参考或者是远程 节点/群集规范

    • 本地目录参考:本地目录规范是使用 couchstore-files 协议定义的 URL。举个栗子:
      couchstore-files:///opt/couchbase/var/lib/couchbase/data/default

      • 使用这种方法,您只需在单个节点上备份指定 bucket 的数据。如果在群集上备份全部 bucket 数据 或是 备份单个节点上的所有数据,这时你必须使用群集节点规范。这种方法在 bucket 中定义的设计文档不支持。
    • 群集 节点:这个一个节点或是群集中的一个节点,将 URL 指定为一个节点 或是 群集 服务。举个栗子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    http://HOST:8091

    // For distinction you can use the couchbase protocol prefix:
    couchbase://HOST:8091


    // The administrator and password can also be combined with both forms of the URL for authentication.
    If you have named data buckets (other than the default bucket) that you want to backup,
    specify an administrative name and password for the bucket:

    couchbase://Administrator:password@HOST:8091

    Backup_dir:执行 cbbackup 命令保存备份数据的目录

    • 这必须是一个绝对明确的目录,文件将直接存储在特定的目录;
    下面提供一些不同数据组合的例子:
    1. 备份所有节点上的所有bucket
    1
    2
    cbbackup http://HOST:8091 /backups/backup-20120501 \ 
    -u Administrator -p password
    1. 备份所有节点上的指定的bucket
    1
    2
    3
    cbbackup http://HOST:8091 /backups/backup-20120501 \
    -u Administrator -p password \
    -b default
    1. 备份单个节点 所有bucket
    1
    2
    3
    cbbackup http://HOST:8091 /backups/backup-20120501 \
    -u Administrator -p password \
    --single-node
    1. 备份单个节点 单个bucket
    1
    2
    3
    4
    cbbackup http://HOST:8091 /backups/backup-20120501 \
    -u Administrator -p password \
    --single-node \
    -b default

    5.在备份的时候过滤 Keys(以正则表达式的形式体现)

    1
    2
    3
    4
    cbbackup http://HOST:8091 /backups/backup-20120501 \
    -u Administrator -p password \
    -b default \
    -k '^object.*'

    参考:https://blog.csdn.net/weixin_34161032/article/details/91728682

    cbrestore

    cbrestore 命令参数选项
    1
    cbrestore   [options]  [source]  [destination]

    cbrestore 命令一次只能恢复一个单独的bucket的数据。如果你备份了这个群集的bucket,则必须还原每个bucket到集群。所有目的bucket必须已经存在,因为 cbrestore 不会帮你要恢复的节点中创建配置bucket。

    1. 恢复一个单独的bucket 到群集中去:
    1
    2
    3
    4
    cbrestore \
    /backups/backup-2012-05-10 \
    http://Administrator:password@HOST:8091 \
    --bucket-source=XXX
    1. 恢复bucket 到 群集中不同的 bucket 中:
    1
    2
    3
    4
    5
    cbrestore \
    /backups/backup-2012-05-10 \
    http://Administrator:password@HOST:8091 \
    --bucket-source=XXX \
    --bucket-destination=YYY
    1. 在恢复的时候过滤 key
      将以object开头的key的数据还原到一个bucket中:
      1
      2
      3
      4
      cbrestore /backups/backup-20120501 http://HOST:8091 \
      -u Administrator -p password \
      -b default \
      -k '^object.*'

    参考:http://suzf.net/thread-0902-1067.html

    增量备份(亲测未达到预期)

    1
    cbbackup -m diff

    参考:https://docs.couchbase.com/server/current/backup-restore/incremental-backup.html

    方案2:XDCR跨集群复制

    XDCR提供了多个有效vbucket的数据的复制,主要用于跨数据中心的多集群间的复制,可以跨版本复制。

    couchbase 界面 XDCR下 创建集群引用和复制,操作如下:
    image
    image
    image

    参考:https://blog.51cto.com/lhrbest/2690216

    文章目录
    1. 1. 方案1:备份与恢复
      1. 1.0.1. cbback
        1. 1.0.1.0.1. cbbackup 命令参数选项:
        2. 1.0.1.0.2. 下面提供一些不同数据组合的例子:
    2. 1.0.2. cbrestore
      1. 1.0.2.0.1. cbrestore 命令参数选项
  • 1.0.3. 增量备份(亲测未达到预期)
  • 2. 方案2:XDCR跨集群复制