IBM Cloudant 복제
IBM® Cloudant® for IBM Cloud® 복제는 두 데이터베이스의 상태를 동기화하는 프로세스입니다.
소스 데이터베이스에서 발생한 변경사항은 모두 대상 데이터베이스에서 재생성됩니다. 연속적으로 또는 "일회성" 태스크로 임의 숫자의 데이터베이스 간에 복제를 작성할 수 있습니다.
애플리케이션 요구사항에 따라 복제를 사용하여 상태 및 컨텐츠를 공유하고 집계할 수 있습니다.
복제는 단방향으로만 수행됩니다. 두 데이터베이스가 서로 동기화 상태를 유지하도록 하려면 양방향으로 복제해야 합니다.
database1에서 database2로 복제한 후 개별적으로 database2에서 database1로 복제하여 이 프로세스를 완료하십시오.
먼저 복제가 완료되면 소스 데이터베이스의 모든 활성 문서가 "대상" 데이터베이스에도 존재하게 됩니다. 두 번째로, 소스 데이터베이스에서 삭제된 문서도 대상 데이터베이스에서 제거됩니다(해당 경우).
복제 오퍼레이션
복제의 양식은 두 가지입니다(푸시 또는 풀 복제).
- 푸시 복제 - 여기서 소스는 로컬 데이터베이스이고 대상은 원격 데이터베이스입니다.
- 복제 가져오기 - 여기서 소스는 원격 데이터베이스 인스턴스이고 대상은 로컬 데이터베이스입니다.
풀 복제는 소스 데이터베이스에 영구 IP 주소가 있으며, 대상 데이터베이스가 로컬이고 동적으로 IP 주소가 지정된 경우(예: DHCP를 통해 얻음)에 유용합니다. 복제 가져오기는 중앙 서버에서 모바일 또는 기타 디바이스로 복제하는 경우 적합합니다.
모든 경우에 소스 및 대상 스펙에 요청된 데이터베이스가 존재해야 합니다. 존재하지 않을 경우 JSON 오브젝트 내에서 오류가 리턴됩니다.
소스 서버 example.com의 데이터베이스와 IBM Cloudant의 대상 데이터베이스 간에 복제하려면 다음 요청 예를 참조하십시오.
POST /_replicate
Content-Type: application/json
Accept: application/json
{
"source" : "https://$USERNAME1:$PASSWORD1@example.com/db",
"target" : "https://$USERNAME2:$PASSWORD2@$ACCOUNT2.cloudant.com/db",
}
복제에 대해 요청된 데이터베이스 중 하나가 존재하지 않는 경우 다음 오류 응답 예를 참조하십시오.
{
"error" : "db_not_found",
"reason" : "could not open https://example.com/db/"
}
연속 복제
기본적으로 복제 요청이 작성되면 복제 중에 데이터베이스의 동기화가 한 번 발생합니다. 소스 데이터베이스에서 대상 데이터베이스로의 복제가 연속적으로 수행되도록 하려면 요청 내에서 JSON 오브젝트의 continuous 필드를 true로 설정하십시오.
연속 복제를 사용하는 경우 명확하게 복제를 취소할 때까지 영구적으로 소스 데이터베이스의 변경사항이 대상 데이터베이스로 복제됩니다.
두 개의 인스턴스 사이에서 네트워크 연결을 사용할 수 있는 동안 두 개의 데이터베이스 사이에서 변경사항이 복제됩니다.
운영 시 현재의 모든 업데이트 처리를 완료해도 복제 프로세스는 중지되지 않습니다. 대신 복제 프로세스는 소스 데이터베이스에 대한 추가 업데이트를 계속 기다렸다가 대상에 적용합니다.
연속 복제의 경우 소스 데이터베이스에서 지속적으로 검사가 수행되도록 강제합니다. 이러한 검사로 인해 소스 데이터베이스 컨텐츠가 변경되지 않은 경우에도 데이터베이스 액세스 수가 증가하게 됩니다. 데이터베이스 액세스는 멀티 테넌트 데이터베이스 구성 내에서 수행되는 작업의 일부로 계수됩니다.
_replicator 데이터베이스
_replicator 데이터베이스는 원하는 복제를 지정하기 위해 복제 문서를 밀어넣거나(PUT) 게시(POST)할 수 있는 사용자 계정 내의 특수 데이터베이스입니다.
복제를 시작하려면 먼저 _replicator 데이터베이스를 작성해야 합니다. 데이터베이스를 작성하려면 다음 위치로 PUT 요청을 전송하십시오.
https://$ACCOUNT.cloudant.com/_replicator
자세한 정보는 데이터베이스를 참조하십시오.
복제를 취소하려면 복제 문서를 삭제(DELETE)하십시오. 복제 문서에 포함된 필드에 대한 설명은 복제 작업 생성 또는 수정 설명서의 ‘요청 정보’ 항목에서 확인할 수 있습니다
_local 데이터베이스에 추가된 모든 디자인 문서 및 /_replicator 문서는 무시됩니다.
중요한 참고사항
- 복제는 IBM Cloudant 인스턴스의 성능에 심각한 영향을 미칠 수 있습니다. 성능 테스트를 통해 동시 복제 수의 증가가 사용자 환경에 미치는 영향을 파악할 수 있습니다.
- 연속 복제를 사용하는 경우 대량의 내부 호출이 발생할 수 있습니다. 대량의 호출을 요구하는 경우 IBM Cloudant 시스템의 멀티 테넌트 사용자에 대한 비용에 영향을 미칠 수 있습니다. 기본적으로 연속 복제는 사용 안함으로 설정되어 있습니다.
- 대상 데이터베이스는 반드시 존재해야 합니다. 존재하지 않을 경우 자동으로 작성되지 않습니다. 복제 전에 대상 데이터베이스가 존재하지 않을 경우 복제에 대해 설명하는 JSON 문서에
"create_target":true를 추가하십시오. 자세한 정보는 복제 중 대상 데이터베이스 작성을 참조하십시오. - 복제 데이터베이스도 다른 중요한 데이터 저장소와 마찬가지로 유지보수하고 관리해야 합니다. 자세한 정보는 복제 데이터베이스 유지보수를 참조하십시오.
보안을 이유로 IBM Cloudant 팀에서는 복제 작업을 위해 계정 레벨 인증 정보가 아닌 IAM API 키 또는 IBM Cloudant 레거시 인증 API 키를 사용할 것을 권장합니다. 자세한 정보는 IAM 안내서 또는 레거시 인증 API 문서 및 레거시 권한 부여 API 문서를 참조하십시오.