에서 이전 게시물를 통해 동등한 인덱스보다 인덱스 복제본을 사용할 때의 이점을 확인했습니다. Couchbase Server 4.x를 사용 중이고 3개의 노드에 다음과 같은 3개의 등가 인덱스가 분산되어 있으며, Couchbase 5.0 베타를 사용할 수 있게 되면서 이러한 등가 인덱스를 인덱스 복제본으로 마이그레이션하려고 한다고 가정해 보겠습니다.
|
1 2 3 4 5 6 |
//구형 4.x 등가 인덱스 create 색인 eq_index1 on 버킷(field1); create 색인 eq_index2 on 버킷(field1); create 색인 eq_index3 on 버킷(field1); |
참고: 동일한 노드를 사용하여 복제본을 생성하려는 경우, 인덱스 복제본과 동등한 인덱스가 공존하는 데 필요한 메모리와 컴퓨팅 리소스가 있는지 확인해야 합니다.
1단계: 앞서 인덱스의 복사본이 3개이고 동일한 인덱스 토폴로지를 유지하고자 하므로 num_replica 매개 변수를 2로 설정하여 다음 쿼리를 실행합니다.
|
1 |
create 색인 eq_index on 버킷(field1) 와 함께 {"숫자_replica":2} |
예를 들어 3개의 인덱스 노드로 구성된 새 인덱스 노드 세트를 가져오는 경우 'nodes' 매개변수 집합과 함께 'create index' 문을 지정하는 것이 좋습니다:
|
1 |
create 색인 eq_index on 버킷(field1) 와 함께 {"노드" ["10.10.10.1:9001", "10.10.10.2:9002", "10.10.10.3:9003"]} |
2단계: 1단계가 완료되고 모든 인덱스 복제본이 생성되어 온라인 상태가 되면(즉, 인덱스 빌드가 완료되면), 존재하는 이전 4.x 버전에 해당하는 인덱스를 삭제합니다.
|
1 2 3 |
drop 색인 eq_index1; drop 색인 eq_index2; drop 색인 eq_index3; |
짜잔!! N1QL 쿼리가 모두 인덱스 복제본을 사용하도록 설정되었으며, 이 과정에서 애플리케이션 다운타임도 발생하지 않았습니다. N1QL 쿼리에서 'USE INDEX' 지시문을 사용했다면, 새 인덱스 이름으로 동일하게 업데이트해야 합니다.
등가 인덱스는 여전히 Couchbase Server 5.0에서 지원되며 등가 인덱스와 복제 인덱스의 혼합도 작동합니다. 즉, N1QL 쿼리는 등가 인덱스와 복제 인덱스 간에 로드 밸런스를 맞추지만 효율적인 관리 효율성을 위해 등가 인덱스보다 인덱스 복제본을 권장합니다.
아직 가입하지 않으셨다면요, 여기를 클릭하세요 를 클릭하여 Couchbase Server 5.0을 다운로드하고 인덱스 복제본을 사용해 보세요.
좋은 블로그 벤캣입니다. 인덱스를 다시 만들지 않고 5.1에서 num_replica를 늘릴 수 있습니까?
감사합니다 헤만트. 현재로서는 불가능합니다. 5.5에 도입된 ALTER INDEX를 사용하면 인덱스 배치를 변경할 수 있습니다.