[译] Couchbase 使用 cbbackup 备份

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

单节点单buckets
单节点上所有buckets
整个群集上单个buckets
整个群集上所有buckets

备份可以在一个单独的节点直接拷贝文件,也可以通过连接远程群集然后通过数据流的形式保存到备份位置。备份可以运行在运行的节点或集群或脱机节点上执行。

cbbackup 命令可以以一种容易恢复的格式储存数据。当需要恢复的时候使用 cbrestore,你可以还原数据到任何配置的群集。源和目的群集不需要满足你使用 cbbackup 命令时保存的信息。

cbbackup 命令将从源定义的每个项中拷贝数据到目的备份目录。备份文件的格式是Couchbase所特有的并且能够使你在打算将数据还原到群集时恢复所有或部分备份数据  。

可以选择在一个关键上(通过正则表达式)或所有的数据存储在一个特定的vbucket ID,您也可以选择从一个 bucket 中将源数据复制到这个群集中一个不同名字的 bucket 。

cbbackup 命令参数选项:

cbbackup [options] [source] [backup_dir]

Note: cbbackup工具位于Couchbase标准命令行目录。

要知道 cbbackup 不支持外部IP地址。如果你安装了Couchbase服务器使用默认的IP地址,不能使用外部主机访问它。

接下来是 cbbackup 可选参数:

下面选项是用来配置连接群集的用户和密码信息,备份类型和bucket 选项。

你可以使用一个或多个选项。主要的选项包括:

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

接下来是 cbbackup 的必选参数:

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

  • 本地目录参考
  • 本地目录规范是使用 couchstore-files 协议定义的 URL。举个栗子:
    couchstore-files:///opt/couchbase/var/lib/couchbase/data/default
  • 使用这种方法,您只需在单个节点上备份指定 bucket 的数据。如果在群集上备份全部 bucket 数据 或是 备份单个节点上的所有数据,这时你必须使用群集节点规范。这种方法在 bucket 中定义的设计文档不支持。
  • 群集 节点
  • 这个一个节点或是群集中的一个节点,将 URL 指定为一个节点 或是 群集 服务。

    举个栗子:

  • 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:[email protected]:8091

其他选项的组合所提供的URL是否指的是整个群集、单节点、或者是一个单独的bucket (节点或者是群集)。其中节点和群集可以使远程的也可以是本地的。这种方法也用于备份定义视图和索引的设计文档。

cbbackup [backup_dir] 参数是执行 cbbackup 命令保存备份数据的目录。这必须是一个绝对明确的目录,文件将直接存储在特定的目录;没有额外的目录结构被创建用来区分备份数据不同组件。你所指定的那个备份目录应该是不存在的,或者是存在的空目录。如果目录不存在,它将被创建,但是如果父目录已经存在。备份目录总是在本地节点创建,即使你正在备份的远程节点或是一个群集。备份文件存储在本地指定的特定目录中。备份可以运行在一个正在运行的集群中或是一个对应ip的节点

使用这种基本结构,你可以从源集群中备份不同的数据组合。下面提供一些不同数据组合的例子:

备份所有节点上的所有bucket

备份整个群集的数据包含所有bucket、所有节点数据:

cbbackup http://HOST:8091 /backups/backup-20120501 \ 
    -u Administrator -p password 
    [####################] 100.0% (231726/231718 msgs) 
bucket: default, msgs transferred... 
          : 
               total |     last | per sec 
    batch :     5298 |     5298 | 617.1 
    byte  : 10247683 | 10247683 | 1193705.5 
    msg   :   231726 |   231726 | 26992.7 
done 
    [####################] 100.0% (11458/11458 msgs) 
bucket: loggin, msgs transferred... 
          : 
               total |     last | per sec 
    batch :     5943 |     5943 | 15731.0 
    byte  : 11474121 | 11474121 | 30371673.5 
    msg   :       84 |       84 | 643701.2 
done

其他选项的组合所提供的URL是否指的是整个群集、单节点、或者是一个单独的bucket (节点或者是群集)。其中节点和群集可以使远程的也可以是本地的。这种方法也用于备份定义视图和索引的设计文档。

cbbackup [backup_dir] 参数是执行 cbbackup 命令保存备份数据的目录。这必须是一个绝对明确的目录,文件将直接存储在特定的目录;没有额外的目录结构被创建用来区分备份数据不同组件。你所指定的那个备份目录应该是不存在的,或者是存在的空目录。如果目录不存在,它将被创建,但是如果父目录已经存在。备份目录总是在本地节点创建,即使你正在备份的远程节点或是一个群集。备份文件存储在本地指定的特定目录中。备份可以运行在一个正在运行的集群中或是一个对应ip的节点

使用这种基本结构,你可以从源集群中备份不同的数据组合。下面提供一些不同数据组合的例子:

备份所有节点上的所有bucket

备份整个群集的数据包含所有bucket、所有节点数据:

cbbackup http://HOST:8091 /backups/backup-20120501       -u Administrator -p password       -b default
      [####################] 100.0% (231726/231718 msgs)
    bucket: default, msgs transferred...
           :                total |       last |    per sec
     batch :                 5294 |       5294 |      617.0
     byte  :             10247683 |   10247683 |  1194346.7
     msg   :               231726 |     231726 |    27007.2
    done

-b 选项用来指定你所想要备份的bucket. 如果bucket的名字是bucket,你必须提供管理员的账号和密码。如果你想要备份整个群集的数据,你必须执行对群集中每个bucket执行相同的备份操作。

备份单个节点 所有bucket

备份单个节点所有bucket所有数据:

cbbackup http://HOST:8091 /backups/backup-20120501       -u Administrator -p password       --single-node

使用这种方法,数据源必须指定你想要备份的节点名称。

使用这种方法备份真个群集的数据,你应该单独的备份群集中的每个节点。

备份单个节点 单个bucket

在单个节点上备份单个bucket:

cbbackup http://HOST:8091 /backups/backup-20120501       -u Administrator -p password       --single-node       -b default

使用这种方法,数据源必须指定你想要备份的节点名称。

备份单个节点,单个bucket; 备份文件存储在同一台节点

这里有两种方法可以备份单个bucket 单个节点,同时备份数据存储在源数据节点。

需要指定节点名称和数据备份路径,举个栗子:

ssh [email protected]
    remote-> sudo su - couchbase
    remote-> cbbackup http://127.0.0.1:8091 /mnt/backup-20120501       -u Administrator -p password       --single-node       -b default

使用这种方法,数据源必须指定你想要备份的节点名称。

备份单个节点,单个bucket; 备份文件存储在同一台节点

这里有两种方法可以备份单个bucket 单个节点,同时备份数据存储在源数据节点。

需要指定节点名称和数据备份路径,举个栗子:

ssh [email protected]
    remote-> sudo su - couchbase
    remote-> cbbackup couchstore-files:///opt/couchbase/var/lib/couchbase/data/default /mnt/backup-20120501

使用这种方法备份整个群集数据,你需要备份群集中每个节点每个bucket的数据。

注意: 选择合适的备份解决方案取决于您的要求,和你期望数据恢复到集群方法。

在备份的时候过滤 Keys

cbbackup 支持过滤 keys 备份。 这将是一个很有用的功能,如果你想备份部分数据或者是你想要将部分数据迁到到不同的 bucket 中。

这种格式是以正则表达式的形式体现,并在cbbackup工具中的客户端进行的。例如,从一个桶,该键有一个前缀对象的信息备份:

cbbackup http://HOST:8091 /backups/backup-20120501   -u Administrator -p password   -b default   -k ‘^object.*‘

上面的备份只是将正则匹配到的数据存储到备份文件中了。当数据备份了,只有记录在备份文件的key恢复。

重要提示:

正则表达式匹配在客户端执行。这就意味着真个 bucket 的内容 cbbackup 必须能够访问,如果不匹配数据将丢弃。

基于key的正则表达式同样适用于恢复数据的时候。你可以备份真个bucket,在你使用cbrestore 恢复的时候选择期望恢复的keys.

通过拷贝文件的形式进行备份

您也可以备份数据通过使用cbbackup并指定其中数据存储在本地目录,

或者直接拷贝数据文件 比如:cp、tar …。

举个例子

使用 cbbackup:

      cbbackup     couchstore-files:///opt/couchbase/var/lib/couchbase/data/default     /mnt/backup-20120501

使用 cp 命令实现同样的备份效果 :

cp -R /opt/couchbase/var/lib/couchbase/data/default       /mnt/copy-20120501

使用这种方法备份书受限制的。在相同的集群配置中数据只能恢复到离线的节点,要使其中相同的vBucket地图运作,

你也应该CONFIG.DAT配置文件从每个节点复制。

父主题: Backup and restore

源文: backup-cbbackup

License: Attribution-NonCommercial-ShareAlike 4.0 International
 本文出自 Suzf Blog。 如未注明,均为 SUZF.NET 原创。
 转载请注明:http://suzf.net/thread-0823-1051.html

时间: 2024-10-15 13:31:18

[译] Couchbase 使用 cbbackup 备份的相关文章

Couchbase IV(管理与维护)

Couchbase IV(管理与维护) 管理 常用命令 Command Description server-list List all servers in a cluster server-info Show details on one server server-add Add one or more servers to the cluster server-readd Readd a server that was failed over rebalance Start a clus

Couchbase进阶-集群与版本升级

最近在负责公司Couchbase版本升级工作,之前只有一台Cache服务器,使用Couchbase Enterprise Edition 1.8,为避免单点故障现在需要新增加一台Cache服务器做负载,并对老版本couchbase进行升级.(以下均在windows系统下操作) 在进行主题之前先提一下Couchbase一些基本概念:在Couchbase的集群架构中,没有中心节点和Router的概念,这些工作是由Smartclient完成的,在客户端与couchbase server交互时,Couc

couchbase的简单介绍

couchbase作为新兴的NOSQL数据库,可堪使用的资料少的可怜,更别提中文资料了,基本上就是在官网的手册和论坛上查询所需资料,所以这要求有一定的英语基础,词汇量不是问题,不认识的直接百度,关键是语法和耐心要过关,我从刚接触couchbase开始天天啃英文手册也是读得烦躁不安,所以耐心十分重要.现在使用的是couchbase 2.2 community版本的,所以手册是这个:http://docs.couchbase.com/couchbase-manual-2.2/.这个手册中,Best

Couchbase学习笔记(1)——概述

在移动互联网时代,我们面对的是更多的客户端,更低的请求延迟,这当然需要对数据做大量的 Cache 以提高读写速度. 术语 节点:指集群里的一台服务器. 现有 Cache 系统的特点 目前业界使用得最多的 Cache 系统主要是 memcached 和 redis. 这两个 Cache 系统都有都有很大的用户群,可以说是比较成熟的解决方案,也是很多系统当然的选择. 不过,在使用 memcached 和 redis 过程中,还是碰到了不少的问题和局限: Cluster 支持不够.在扩容.负载均衡.高

[译]SSAS下玩转PowerShell(二)

上一篇中简单的介绍了SSAS下的PowerShell,这一篇会演示更多的操作,比如根据当前时间创建备份,使用变量去指定处理哪一个分区,以及用XMLA脚本去创建分区,和在PowerShell中调用PowerShell脚本. 原文地址: http://www.mssqltips.com/sqlservertip/2939/automate-sql-server-analysis-services-tasks-with-powershell--part-2/?utm_source=dailynewsl

[译]作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的

前日在cnblogs上看到一遍文章<每个程序员都必读的12篇文章>,其中大多数是E文的. 先译其中一篇web相关的"每个程序员必知之WEB开发". 原文: http://programmers.stackexchange.com/questions/46716/what-technical-details-should-a-programmer-of-a-web-application-consider-before 问:对于一个web开发人员来说,在发布一个站点之前,他需

【译】 AWK教程指南 1前言

前面的话: 这几天写了一个程序,在同一个目录里生成了很多文件,需要统计其中部分文件的总大小,发现经常用到的ls.du等命令都无济于事,我甚至都想到了最笨的方法,写一个脚本:mkdir一个新目录,把要统计总大小的文件mv过去,然后du或者ls -lh新目录.诚然,这个办法又笨又不精确,于是求助万能的网络,找到的都是同一篇用了3个很长的循环来统计的脚本,还是自己先苦读"经书"吧.鸟哥的书第十二章就有现成的示例,就用到了马上要出场的awk工具,用法如下(统计目录下所有tmp*文件的总大小,以

(转)Couchbase介绍,更好的Cache系统

在移动互联网时代,我们面对的是更多的客户端,更低的请求延迟,这当然需要对数据做大量的 Cache 以提高读写速度. 术语 节点:指集群里的一台服务器. 现有 Cache 系统的特点 目前业界使用得最多的 Cache 系统主要是 memcached 和 redis. 这两个 Cache 系统都有都有很大的用户群,可以说是比较成熟的解决方案,也是很多系统当然的选择. 不过,在使用 memcached 和 redis 过程中,还是碰到了不少的问题和局限: Cluster 支持不够.在扩容.负载均衡.高

Couchbase:更好的Cache系统

原文:http://zhang.hu/couchbase/ 二手转载原文:http://kb.cnblogs.com/page/509630/ 在移动互联网时代,我们面对的是更多的客户端,更低的请求延迟,这当然需要对数据做大量的 Cache 以提高读写速度. 术语 节点:指集群里的一台服务器. 现有 Cache 系统的特点 目前业界使用得最多的 Cache 系统主要是 memcached 和 redis. 这两个 Cache 系统都有都有很大的用户群,可以说是比较成熟的解决方案,也是很多系统当然