분류

rm -rf *에서 파일을 분실하셨나요? 문제없습니다. 백업이 있으니까요.

최근에 토이 스토리 2 영화 제작 중에 누군가 실수로 'rm *' 리눅스 명령을 입력해 모든 그래픽, 아트 워크, 스크립트가 '사라졌다'는 내용의 동영상을 보게 되었습니다. 다행히도 데이터 백업이 있었기 때문에 파일은 다시 복원되었습니다. 아래 동영상을 보시면 이 이야기에서 몇 가지 교훈을 얻을 수 있을 것입니다(실제 있었던 일입니다). 하지만 제가 말씀드리고 싶은 가장 중요한 것은 "데이터 백업하기"입니다. 

동영상을 보려면 위 사진을 클릭하세요!

많은 분들과 마찬가지로 저도 실수로 잘못된 명령을 내리거나 더 나쁜 상황으로 인해 데이터를 몇 번 잃어버린 적이 있습니다. 이 블로그에서는 심각한 하드웨어, 설치 실패 또는 우발적인 '실수' 시나리오로 인해 정보를 잃지 않도록 Couchbase Server에서 온라인 백업 및 복원(cbbackup 및 cbrestore)을 사용하는 방법을 보여드리고자 합니다.

cbbackup

cbbackup 명령을 사용하면 전체 Couchbase 클러스터, 단일 노드 또는 단일 버킷을 파일로 백업하여 필요할 때 Couchbase 클러스터로 복원할 수 있습니다. 백업 및 복원 작업은 라이브 Couchbase 클러스터에서 수행할 수 있습니다.

cbbackup 도구를 사용하여 파일에 데이터 백업하기
 

모든 버킷과 모든 노드 데이터로 구성된 전체 클러스터를 백업합니다:

shell> cbbackup https://HOST:8091 ~/backups
-u 관리자 -p 비밀번호

'~/backups'는 백업 경로이고, '관리자'와 '비밀번호'는 서버 자격증명입니다.

Couchbase 클러스터에 3개의 버킷(기본, gamesim-sample, beer-sample)이 있다고 가정할 때, cbbackup의 출력은 다음과 같습니다:

백업 루트 폴더 내부의 폴더 구조는 다음과 같습니다:

각 카우치베이스 서버 버킷에 해당하는 폴더가 있습니다(버킷-맥주 샘플, 버킷-기본값, 버킷-게임심 샘플). design.json은 각 카우치베이스 버킷에 있는 디자인 문서를 캡처합니다. .cbb 파일은 내보낸 원시 데이터로 구성됩니다.

전체 클러스터의 모든 정보를 포함하는 단일 버킷의 모든 데이터를 백업합니다:

shell> cbbackup https://HOST:8091 /backups/backup-20120501
  -u 관리자 -p 비밀번호
  -b 기본값

'/backups/backup-20120501'은 백업 경로, '관리자'와 '비밀번호'는 서버 자격증명, 'default'는 버킷 이름입니다.

단일 노드에 저장된 모든 데이터를 모든 다른 버킷에 백업합니다:

shell> cbbackup https://HOST:8091 /backups/
  -u 관리자 -p 비밀번호
  -단일 노드

'/backups'는 백업 경로, '관리자'와 '비밀번호'는 서버 자격 증명, -단일 노드는 플래그입니다.

cbbackup의 여러 인스턴스를 사용하여 서로 다른 백업 파일을 병렬로 쓰기

데이터 세트가 큰 경우, 카우치베이스 서버당 1개의 cbbackup 프로세스를 사용하여 백업을 병렬화하고 속도를 높일 수 있습니다.

단일 노드에 있는 단일 버킷에서 데이터를 백업합니다:

shell> cbbackup https://HOST:8091 /backups
  -u 관리자 -p 비밀번호
  -단일 노드
  -b 기본값

'/backups'는 백업 경로, '관리자'와 '비밀번호'는 서버 자격증명, 'default'는 버킷 이름입니다.

이제 데이터를 백업했으니 어떻게 다시 복원할 수 있나요?

cbrestore

그리고 cbrestore 명령은 cbbackup을 사용하여 백업한 정보를 가져와서 저장된 데이터를 클러스터로 스트리밍하여 데이터를 다시 복원합니다.

단일 데이터 버킷을 클러스터로 복원하려면 다음과 같이 하세요:

shell> cbrestore
    ~/백업
    https://Administrator:password@HOST:8091
    -버킷 소스=XXX

버킷 데이터를 클러스터의 다른 버킷으로 복원하려면 다음과 같이 하세요:

shell> cbrestore
    ~/백업
    https://Administrator:password@HOST:8091
    -버킷 소스=XXX
    -버킷-대상=YYYY

'/backups'는 백업 경로, '관리자'와 '비밀번호'는 서버 자격증명, bucket-source와 bucket-destination은 소스 및 대상 버킷 이름입니다.

cbrestore의 여러 인스턴스를 사용하여 Couchbase Server에서 여러 파일 복원하기

유의해야 할 사항 

  • 데이터를 자주 백업하세요.
  • 라이브 카우치베이스 클러스터의 부담을 줄이려면 데이터 백업에 별도의 컴퓨터를 사용하세요. 시스템이 온라인 상태일 때 백업/복원 명령을 실행할 수 있지만, 부하가 적은 시간에는 별도의 컴퓨터에서 이러한 명령을 실행하는 것이 좋습니다.

이것이 성능에 중요한 이유는 무엇인가요?  

백업은 TAP 프로토콜을 기반으로 합니다. 사용 가능한 메모리 양과 상주 문서 비율에 따라 디스크에서 전체 데이터 세트를 읽어야 할 수 있으며 시스템에 더 많은 부담을 줄 수 있습니다.

  • 마지막으로, 백업 전략을 테스트하여 데이터 복구가 필요할 때 백업이 제대로 작동하는지 확인하는 것을 잊지 마세요.
  • 디자인 문서만 백업 및 복원되고 인덱스는 복원되지 않습니다. 인덱스는 데이터가 복원된 후 점진적으로 재구축됩니다.
  • 복원하는 동안 기존 항목을 덮어쓰지 않도록 cbrestore에서 -a 옵션을 지정할 수 있습니다. 이렇게 하면 항목이 이미 존재하지 않는 경우에만 항목이 삽입됩니다. 
  • 백업 옵션 -k를 사용하여 백업되는 키를 필터링할 수 있습니다. 예를 들어 키의 접두사가 'object'인 버킷의 정보를 백업하는 것입니다:

shell> cbbackup https://HOST:8091 /backups/backup-20120501
  -u 관리자 -p 비밀번호
  -b 기본값
  -k '^객체.*'

즐기세요!

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 제니퍼 가르시아

의 선임 웹 관리자입니다. 웹 사이트 관리자로서 디자인, 구현, 콘텐츠 및 성능을 포함한 웹 사이트 자산에 대한 전반적인 책임을 맡고 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.