# 로컬(mac 기준) couchbase 앱 설치
# 6.0 에는 cbxxx 툴이 없다.
# 6.0 실행후 6.5 로 업데이트해야 툴이 생긴다.
brew cask install couchbase-server-community
# cli 툴 위치로 이동
cd '/Applications/Couchbase Server.app/Contents/Resources/couchbase-core/bin'
#####
# bucket 이동(자세한 설명은 ./cbtransfer -h 참고)
# destination 에 dest_bucket1 버킷을 생성해둬야 한다.
./cbtransfer http://ysoftman-cb1:8091 http://ysoftman-cb2:8091 -u ysoftman -p password -b src_bucket1 -B dest_bucket1
# bucket 단위로 export/import
# cbexport(자세한 설명은 ./cbexport json -h 참고)
# document id 는 디폴트로 export 되지 않아
# --include-key 옵션으로 doc___id 필드에 document id 저장
# --include-key 를 사용하면 value {} 필드안에 값이 저장된다.
./cbexport json -c couchbase://ysoftman-cb1 -u ysoftman -p password -b bucket1 -o bucket1.json -f lines -t 4 --include-key doc___id
# cbimport(자세한 설명은 ./cbimport json -h 참고)
# 신규 cb 에 버킷이 존재해야 한다.
# doc___id 필드의 값을 document id 로 사용
./cbimport json -c couchbase://ysoftman-cb2 -u ysoftman -p password -b bucket1 -d file:///Applications/Couchbase\ Server.app/Contents/Resources/couchbase-core/bin/bucket1.json -f lines -t 4 -g %doc___id%
# 필드 삭제
# --include-key doc___id 를 사용시
# 다음과 같이 import 하기 때문에 필요시 doc___id, value 부분을 삭제해야 한다.
doc___id : "문서id"
value : {
문서내용
}
# 필드 쿼리를 위해 버킷1 에 대한 query 메뉴에서 인덱스 추가
create primary index `#primary` on `bucket1`
# 필드 제거 query
update bucket1 unset doc___id
# 필드 제거 확인 query
select * from bucket1
./cbtransfer http://ysoftman-cb1:8091 http://ysoftman-cb2:8091 -u ysoftman -p password -b src_bucket1 -B dest_bucket1
# 로컬에 백업 받아 이동하기
# /Users/ysoftman/workspace/zzz 디렉토리를 생성해둬야 한다.
./cbtransfer http://ysoftman-cb1:8091/ couchstore-files:////Users/ysoftman/workspace/zzz -u ysoftman -p password -b src_bucket1 -B dest_bucket1
./cbtransfer couchstore-files:////Users/ysoftman/workspace/zzz http://ysoftman-cb2:8091/ -u ysoftman -p password -b src_bucket1 -B dest_bucket1
# 만약 local -> ysoftman-cb2 바로 접근이 되지 않는 상황이라면
# (ysoftman-cb2:11210 포트로 접근이 되어야 한다.)
# ysoftman-cb2 장비에 백업 파일을 올리고
rsync -avz ./zzz/ ysoftman@ysoftman-cb2:~/zzz
# ysoftman-cb2 장비에 접속해
ssh ysoftman@ysoftman-cb2
# 백업 파일을 ysoftman-cb2 로 올린다.
/opt/couchbase/bin/cbtransfer couchstore-files:////home/ysoftman/zzz http://ysoftman-cb2:8091/ -u ysoftman -p password -b src_bucket1 -B dest_bucket1
#####
# cbexport(자세한 설명은 ./cbexport json -h 참고)
# document id 는 디폴트로 export 되지 않아
# --include-key 옵션으로 doc___id 필드에 document id 저장
# --include-key 를 사용하면 value {} 필드안에 값이 저장된다.
./cbexport json -c couchbase://ysoftman-cb1 -u ysoftman -p password -b bucket1 -o bucket1.json -f lines -t 4 --include-key doc___id
# cbimport(자세한 설명은 ./cbimport json -h 참고)
# 신규 cb 에 버킷이 존재해야 한다.
# doc___id 필드의 값을 document id 로 사용
./cbimport json -c couchbase://ysoftman-cb2 -u ysoftman -p password -b bucket1 -d file:///Applications/Couchbase\ Server.app/Contents/Resources/couchbase-core/bin/bucket1.json -f lines -t 4 -g %doc___id%
# 필드 삭제
# --include-key doc___id 를 사용시
# 다음과 같이 import 하기 때문에 필요시 doc___id, value 부분을 삭제해야 한다.
doc___id : "문서id"
value : {
문서내용
}
# 필드 쿼리를 위해 버킷1 에 대한 query 메뉴에서 인덱스 추가
create primary index `#primary` on `bucket1`
# 필드 제거 query
update bucket1 unset doc___id
# 필드 제거 확인 query
select * from bucket1
comments:
댓글 쓰기