Couchbase Server 클러스터 또는 다른 종류의 서비스를 운영할 때는 매일, 매주, 매월 또는 다른 방식으로 백업을 유지하는 것이 중요합니다. 하지만 백업을 수행한 후에는 어디에 저장할까요? 클러스터 데이터를 서버 호스팅에 저장하기 카우치베이스 실패하면 백업을 잃게 되므로 좋은 생각이 아닐 수 있습니다.
다양한 원격 스토리지 솔루션을 사용할 수 있습니다. 예를 들면 다음과 같습니다. rsync
전용 백업 서버에 백업을 저장하거나 Amazon S3 또는 Amazon Glacier에 업로드할 수 있습니다. 가능성은 이 세 가지 솔루션으로 끝나지 않습니다.
오픈 소스를 사용해 본 적이 있습니다. 개체 스토리지 솔루션이라는 Minio 는 Amazon S3와 동일한 API를 기반으로 하지만 사내에서 배포할 수 있습니다.
Minio는 다른 오브젝트 스토리지 솔루션과 마찬가지로 삭제 코드를 사용해 하드웨어 오류와 조용한 데이터 손상을 방지하므로 백업 스토리지를 위한 견고한 솔루션입니다.
자체 분산 오브젝트 스토리지를 운영하는 경우 백업을 Minio로 이전하는 방법을 살펴보겠습니다. 먼저 백업을 만드는 것부터 시작하는 것이 좋습니다.
카우치베이스 서버 엔터프라이즈 에디션을 사용하는 경우 다음을 실행해야 합니다:
1 2 |
cbbackupmgr 구성 --아카이브 </경로/에/아카이브/디렉토리> --repo cbbackupmgr 백업 --클러스터 http://:8091 --사용자 이름 --password --아카이브 --repo |
위의 명령은 아카이브를 구성하고 특정 클러스터를 해당 아카이브에 백업합니다. 백업은 cbbackupmgr 는 점진적으로 증가하겠지만, 그렇다고 해서 백업을 중단할 수는 없습니다.
아직 실행하고 있지 않다면 미니오 서버를 클릭하고 플랫폼에 적합한 바이너리를 다운로드하세요. 카우치베이스 서버 노드 중 하나에서 미니오 서버를 실행해서는 안 됩니다. 터미널에서 다음을 실행합니다:
1 |
./미니오 서버 /경로/에/스토리지/위치 |
액세스 키와 비밀 키 값은 Minio 클라이언트 애플리케이션을 구성할 때 필요하므로 메모해 두세요.
이제 다운로드할 수 있습니다. 미니오 클라이언트 애플리케이션을 백업을 실행하려는 카우치베이스 서버 노드에 추가합니다.
백업을 푸시하기 전에 클라이언트가 Minio 서버에 연결하도록 구성해야 합니다. 터미널에서 다음을 실행하여 이를 가능하게 합니다:
1 |
./mc 구성 호스트 추가 백업 http://:9000 |
Minio를 새로 설치한 서버에는 개체 버킷이 없습니다. 데이터를 푸시하기 전에 다음을 실행하여 새 버킷을 만드세요:
1 |
./mc mb 백업/카우치베이스 |
이제 데이터를 푸시하는 몇 가지 방법이 있습니다. 카우치베이스 저장 버킷에 저장합니다. 다음을 수행하여 버킷에 변경 사항을 반영할 수 있습니다:
1 |
./mc mirror /경로/에/카우치베이스/아카이브 백업/카우치베이스 |
일부 온라인 자료에서는 오브젝트 스토리지를 한번 쓰기, 여러 번 읽기 솔루션으로 사용해야 한다고 제안합니다. 이 전략을 따르는 경우, 백업이 증분 방식으로 이루어지고 파일이 생성되는 것이 아니라 변경되므로 백업을 미러링하고 싶지 않을 것입니다. 대신 다음과 같은 방법을 사용할 수 있습니다:
1 |
타르 -czf - /경로/에/카우치베이스/아카이브 | ./mc 파이프 백업/카우치베이스/아카이브-`날짜 +%Y-%m-%d`.타르.gz |
위의 줄은 백업 아카이브를 TAR로 압축하여 Minio 서버로 파이프합니다. 푸시된 각 백업에는 날짜 스탬프가 찍히므로 백업 모음을 보관할 수 있습니다. 이 프로세스는 클라이언트 운영 체제에서 크론 작업을 생성하여 일정에 따라 수행할 수 있습니다.
Couchbase의 클러스터 백업 생성에 대한 자세한 내용은 다음 문서에서 확인할 수 있습니다. 카우치베이스 개발자 포털.