完全に停止しているノードからデータのコピーを作成するためにこのツールを使え、稼働しているクラスタにデータをロードすることができます。cbbackupとは異なり、このツールは、もう動いていないノードからデータのコピーを作成することができます。このツールは上にcbbackupとcbrestoreが構築されていることをベースとした一般的なデータ転送ツールです。これは、送信元から宛先へデータを移すことができ、軽量な抽出・変換・ロード(ETL)ツールです。送信元および宛先のパラメータは、URLやファイルパスに似ています。
Linux |
/opt/couchbase/bin/
|
Windows |
C:\Program Files\Couchbase\Server\bin\
|
Mac OS X |
/Applications/Couchbase Server.app/Contents/Resources/couchbase-core/bin/
|
標準的なコマンドの形式は次のとおりです:
Usage: cbtransfer [options] source destination Transfer couchbase cluster data from source to destination. Examples: cbtransfer http://SOURCE:8091 /backups/backup-42 cbtransfer /backups/backup-42 http://DEST:8091 cbtransfer /backups/backup-42 couchbase://DEST:8091 cbtransfer http://SOURCE:8091 http://DEST:8091 Options: -h, --help show this help message and exit -b BUCKET_SOURCE, --bucket-source=BUCKET_SOURCE single bucket from source to transfer -B BUCKET_DESTINATION, --bucket-destination=BUCKET_DESTINATION when --bucket-source is specified, overrides the destination bucket name; this allows you to transfer to a different bucket; defaults to the same as the bucket-source -i ID, --id=ID allow only items that match a vbucketID -k KEY, --key=KEY allow only items with keys that match a regexp -n, --dry-run no actual work; just validate parameters, files, connectivity and configurations -u USERNAME, --username=USERNAME REST username for cluster or server node -p PASSWORD, --password=PASSWORD REST password for cluster or server node -t THREADS, --threads=THREADS number of concurrent workers -v, --verbose verbose logging; more -v's provide more verbosity -x EXTRA, --extra=EXTRA extra, uncommon config parameters; comma-separated key=val(,key=val)* pairs --single-node use a single server node from the source only, not all server nodes from the entire cluster; this single server node is defined by the source URL --source-vbucket-state=SOURCE_VBUCKET_STATE only transfer from source vbuckets in this state, such as 'active' (default) or 'replica', if supported by the source class --destination-vbucket-state=DESTINATION_VBUCKET_STATE only transfer to destination vbuckets in this state, such as 'active' (default) or 'replica', if supported by the destination class --destination-operation=DESTINATION_OPERATION use a given operation (set, add, get) on the destination, if supported Available extra config parameters (-x): batch_max_bytes=400000 (max # of msg value bytes per batch); batch_max_size=1000 (max # msgs per batch); cbb_max_mb=100000 (max # of msg value MB per *.cbb file); max_retry=10 (max # of sequential retries); nmv_retry=1 (1 to retry after NOT_MY_VBUCKET replies); recv_min_bytes=4096 (amount of bytes for every recv() call); report=5 (# batches before updating progress bar); report_full=2000 (# batches before emitting progress info); try_xwm=1 (1 to first try XXX-WITH- META commands)
このツールを使う上で最も重要なことは、障害が発生したCouchbaseのノードから、機能しているノードまたはクラスタにデータを転送できるということです:
./cbtransfer \ couchstore-files://COUCHSTORE_BUCKET_DIR \ couchbase://HOST:PORT \ --bucket-destination=DESTINATION_BUCKET ./cbtransfer \ couchstore-files:///opt/couchbase/var/lib/couchbase/data/default \ couchbase://10.5.3.121:8091 \ --bucket-destination=foo
次の例では、あるノードから標準出力へすべてのデータを送る方法を示しています。
shell> ./cbtransfer http://10.5.2.37:8091/ stdout:
次のような出力が生成されます:
set pymc40 0 0 10 0000000000 set pymc16 0 0 10 0000000000 set pymc9 0 0 10 0000000000 set pymc53 0 0 10 0000000000 set pymc34 0 0 10 0000000000
Couchbase Serverは、関連したデザインドキュメントではなく、バケット、ノードやクラスタの全てのデータを保存します。そのためには、明示的に情報を格納するcbbackupと、メモリに読み戻すcbrestoreをを使用する必要があります。